[CS] 클라우드

팔랑이·2024년 12월 19일
0

CS

목록 보기
1/19
post-thumbnail

⛳️ 인프런 - cs 지식의 정석 강의를 듣고 학습한 내용입니다.


클라우드

1. 가상머신

전통적 배포방식

물리적인 컴퓨터 한 대에 하나의 OS를 깔고 여러가지 프로그램을 설치. 계정을 여러개 만들어 이용할 수 있지만, 한 계정에서 프로그램 설치 시 다른 계정에도 영향을 미친다.

가상화 배포방식

가상머신이란 컴퓨터의 하드웨어를 소프트웨어적으로 구현한 것을 말하는데, 이 가상머신을 기반으로 배포한다. 계정을 여러 개 나누는 것이 아니라 하나의 컴퓨터 위에 여러 OS를 구동할 수 있다.

컴퓨터 위에 Hypervisor 라는 중간계층이 있고, 이 위로 여러개의 가상머신을 구축할 수 있다. 서로 상호작용하지 않는 각각의 가상머신 위로 OS를 올리고 그 위에 앱이 올라가는 형태이다.

클라우드

클라우드는, 이런 가상화라는 기술로 하나의 하드웨어로 여러명의 사용자들에게 독립적으로 서비스하는 것을 말한다. 다만 OS가 공유되지 않으므로 가상머신에 일일히 OS를 설치해야 한다는 단점이 있다.

2. 온프레미스, 오프프레미스

오프프레미스

이런 클라우드 서비스를 이용하면 직접 서버나 소프트웨어를 설치하고 관리하지 않고, 인터넷을 통해 어플리케이션이나 리소스에 접근할 수 있는데, 이를 오프프레미스(off-premise) 방식이라고도 한다. 오프프레미스 방식을 사용하면 서버 운영 전력, 세팅, 확장성 등 여러 조건을 고려하지 않고 서비스 운영에만 집중할 수 있다.

온프레미스

반대로, 서버를 기업이나 개인이 자체 시절에서 보유하고 직접 관리하는 것을 온프레미스(on-premise) 라고 한다.

위 사진은 춘천에 자리한 네이버의 데이터센터로, 춘천의 기후를 이용해 최대 6개월까지 프리쿨링이 가능하다고 한다.

3. IaaS, PaaS, Saas

정보처리기사 공부하면서 기출로 봤던 용어인데 반갑구만.
클라우드 서비스의 다양한 형태.

IaaS(Infrastructure-as-a-Service)

  • 클라우드가 서버, 스토리지, 네트워크 같은 기본 인프라만을 제공한다.
  • 이 위에 사용자가 원하는 OS, 소프트웨어를 설치해서 사용한다.
  • 특정 서비스에 종속되지 않는다.
  • ex) AWS의 EC2, NCP 등

PaaS(Platform-as-a-Service)

  • 애플리케이션 개발에 필요한 플랫폼 환경을 제공한다.
  • Node.js, MongoDB 등이 설치되어 있으며 모니터링, CI/CD가 제공된다.
  • 서버 설정이나 관리 대신, 개발자가 코드 작성과 앱 개발에만 집중할 수 있다.
  • ex) Heroku 등

SaaS(Software-as-a-Service)

  • 설치 없이 바로 이용할 수 있는 완전한 소프트웨어 제공
  • 클라우드에 호스팅된 소프트웨어를 브라우저를 통해 사용
  • ex) Google Workspace, Dropbox 등

IaaS와 PaaS 비교

IaasPaaS
유연하며 플랫폼에 종속되지 않음유연하지 않으며 플랫폼에 종속
이식성이 높다(다른 서버로 이식이 쉬움)이식성이 낮다(다른 서버로 이식이 상대적으로 어려움)
운영자원 사용에 있어 비효율적운영자원 사용에 있어 효율적

4. 컨테이너와 도커

컨테이너

컨테이너는 독립적이고 일관된 환경에서 애플리케이션이 빠르고 안정적으로 실행되도록 코드와 모든 종속성을 패키징하는 소프트웨어의 표준 단위이다.

오른쪽은 위에서 설명했던 가상머신 그림으로, Hypervisor 계층 위에 Guest가 각각의 OS를 설치한다.
왼쪽은 컨테이너 방식으로, 호스트가 제공하는 공유된 OS 위에 도커를 깔고, 그 위에 도커로 포장된 어플리케이션이 올라간다.

컨테이너 방식은,

  • OS가 공유되어 일일이 설치할 필요가 없으므로 보다 빠르고 경량화
  • 컨테이너로 포장되어있어 격리성도 보장
  • 그러나 OS에 문제가 생기면 다른 앱들에 영향을 미칠 수 있다는 단점

도커

도커는 이 컨테이너에 필요한 기능을 거의 모두 제공하는 플랫폼이다.

도커는 다음과 같은 과정을 거쳐 컨테이너를 만든다.

  • 도커 파일: 패키지, 환경변수 설정 등을 기록한 파일로, 이를 빌드해 도커 이미지로 변환한다.
  • 도커 이미지: 컨테이너 실행에 필요한 파일과 설정값, 데이터 등을 포함한 불변하는 상태값이다. 하나의 도커 이미지에서 여러개의 컨테이너를 생성할 수 있으며, 컨테이너의 상태와는 무관하게 이미지는 존재한다.
  • 도커 컨테이너: 컨테이너가 실행되면 도커 이미지에 설정된 프로그램, 데이터 등이 실제 컴퓨팅 자원과 연결된다.
profile
정체되지 않는 성장

0개의 댓글