스물두줄

컴퓨터시스템응용기술사 · 클라우드 및 분산 컴퓨팅

가상머신과 컨테이너

가상머신과 컨테이너는 둘 다 자원을 나눠 쓰는 격리 실행 환경이다. 가상머신은 하이퍼바이저 위에 게스트 OS를 포함한 독립 환경을 만든다. 컨테이너는 호스트 OS 커널을 공유하며 프로세스와 파일시스템을 격리하는 OS 수준 가상화다. 구조를 그림으로 보자. VM은 하이…

주요 장면

  1. 0:02 정의
  2. 0:21 계층 구조
  3. 0:41 방식 비교표
  4. 1:07 격리와 기동 특성
  5. 1:29 보완 방향과 정답
  6. 1:53 정리

대본

정의

가상머신과 컨테이너는 둘 다 자원을 나눠 쓰는 격리 실행 환경이다.

가상머신은 하이퍼바이저 위에 게스트 OS를 포함한 독립 환경을 만든다.

컨테이너는 호스트 OS 커널을 공유하며 프로세스와 파일시스템을 격리하는 OS 수준 가상화다.

계층 구조

구조를 그림으로 보자. VM은 하이퍼바이저가 하드웨어를 나눠 게스트 OS를 각자 실행한다.

컨테이너는 Guest OS 없이 호스트 커널을 공유한다.

커널 공유 덕분에 OS 부팅이 필요 없고 자원 오버헤드가 작다.

방식 비교표

가상머신과 컨테이너는 가상화 계층과 격리 단위가 다르다.

가상머신은 하이퍼바이저가 하드웨어를 가상화하고, 격리 단위는 독립 Guest OS다.

컨테이너는 OS 커널의 네임스페이스와 cgroups로 프로세스와 파일시스템을 격리한다.

오케스트레이션은 VM은 OpenStack 등, 컨테이너는 쿠버네티스가 맡는다.

격리와 기동 특성

기출은 정의와 구조 차이, 공통점과 차이점 비교 형태로 반복 출제됐다.

커널을 공유하는 컨테이너는 VM보다 격리가 약하다고 써야 한다.

반면 VM은 이미지가 수 GB에 이르고 부팅이 분 단위로 걸린다.

보완 방향과 정답

정답은 더 약하다. 커널을 공유하므로 취약점이 여러 컨테이너로 번질 수 있다.

보완 방법은 셋이다. 샌드박스 런타임은 gVisor와 Kata Containers로 커널 접근면을 줄인다.

하이브리드는 VM 위에 컨테이너를 올리고, 경량 VM은 Firecracker로 격리와 기동 속도를 절충한다.

정리

지금까지 내용을 정리한다. 가상머신은 하드웨어 수준 가상화로 Guest OS를 포함한다.

컨테이너는 호스트 커널을 공유하는 OS 수준 가상화이며 Docker가 대표 기술이다.

두 기술은 대체 관계가 아니라 목적이 다른 격리 수단이다.

정답은 가상머신이다. 게스트 OS 포함 여부가 두 기술을 가르는 기준이다.

같은 장의 영상