스물두줄

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

가상머신과 컨테이너

설명 영상 가상머신과 컨테이너 · 2:17

왜 배우는가: 가상머신과 컨테이너는 클라우드 인프라의 기본 실행 단위이며, 두 기술의 격리 수준·자원 사용·이식성 차이는 기술사 시험에서 거의 매회 비교형으로 반복 출제된다. 실무에서 워크로드를 어디에 배치할지 판단하려면 두 방식의 구조적 차이를 먼저 알아야 한다.

출제 이력: 제132회 3교시 2번, 제128회 1교시 3번, 제119회 2교시 6번

1. 한 줄 정의와 핵심 키워드

가상머신은 하이퍼바이저가 물리 하드웨어를 가상화해 게스트 OS를 포함한 독립 컴퓨팅 환경을 제공하고, 컨테이너는 호스트 OS 커널을 공유하며 프로세스·파일시스템·네트워크를 격리하는 OS 수준 가상화다.

  • 가상머신(VM)
  • 하이퍼바이저(Hypervisor)
  • 게스트 OS
  • 컨테이너(Container)
  • OS 수준 가상화
  • 커널 공유
  • 이미지·이식성

2. 개념 풀이

쉽게 말하면 가상머신은 컴퓨터 한 대 안에 또 다른 컴퓨터를 만드는 방식이다. 각 가상머신은 자기만의 운영체제를 설치하고 부팅한다. 컨테이너는 같은 운영체제 위에서 앱 묶음을 따로 격리해 실행하는 방식이다. 운영체제를 새로 설치하지 않으므로 가볍다.

정식 정의로 가상머신은 하나의 물리 컴퓨터(호스트)를 여러 가상 컴퓨터(게스트)로 나누어 쓰는 소프트웨어 기술이다. 각 가상머신은 자체 OS와 CPU·메모리·스토리지·네트워크 자원을 가진다. 하이퍼바이저는 하드웨어를 공유·관리하며 여러 독립 환경을 같은 물리 기계에서 실행하게 해 주는 계층이다.

하이퍼바이저는 가상머신 모니터(VMM)라고도 부른다. 베어메탈형(Type 1)은 하드웨어 위에서 직접 실행되고, 호스팅형(Type 2)은 일반 OS 위의 프로그램으로 실행된다. 게스트 OS는 하이퍼바이저가 제공하는 가상 하드웨어 위에서 동작하는 운영체제다.

컨테이너는 OS 수준 가상화다. 커널이 하나의 사용자 공간 인스턴스 대신 여러 개의 격리된 사용자 공간 인스턴스를 갖게 하는 서버 가상화 방식이다. 이 인스턴스를 컨테이너라고 부르며, 유닉스 계열에서는 chroot의 고급 구현으로 볼 수 있다.

커널 공유는 컨테이너 구조의 핵심이다. 모든 컨테이너는 호스트 커널을 함께 쓴다. 그래서 OS 부팅이 필요 없고 자원 오버헤드가 작다. 대신 호스트 커널 취약점이 모든 컨테이너에 영향을 줄 수 있다.

이미지는 애플리케이션과 실행에 필요한 라이브러리를 묶은 실행 패키지다. 이미지가 런타임에 컨테이너로 바뀌어 실행된다. 이미지를 어느 환경에서든 같은 방식으로 실행할 수 있어 이식성이 높다.

3. 등장 배경과 필요성

서버 가상화의 출발점은 물리 서버 활용률 문제였다. 한 대의 서버에 한 애플리케이션만 두면 자원이 대부분 놀았다. 가상머신은 한 서버를 여러 독립 서버로 나눠 활용률을 높이고 하드웨어 비용을 줄이는 해법이 되었다. 가상화는 컴퓨팅 자원을 추상화하는 개념이며, 이후 클라우드 1세대 기반이 되었다.

가상머신의 한계도 분명했다. 가상머신마다 OS 전체를 설치하므로 이미지가 수 GB에 이르고 부팅이 오래 걸린다. 같은 OS가 여러 번 복제되어 메모리와 디스크가 낭비된다. 이 문제로 빠른 확장과 잦은 배포가 요구되는 환경에서 부담이 커졌다.

이어지는 내용

로그인하면 하루 5페이지까지 무료로 전체를 읽을 수 있습니다.

앱에서 이 단원 읽기