가상화

하나의 물리적인 컴퓨팅 리소스를 논리적으로 분리해 여러 개의 가상 리소스를 만들어 사용하는 기술입니다.

왜 필요한가

서버 가상화와 하이퍼바이저

물리 서버를 여러 개의 가상 머신(VM, Virtual Machine) 으로 나누어 사용하는, 가장 일반적인 가상화 형태입니다. 하나의 물리 서버(호스트)에서 여러 게스트 OS를 독립적으로 실행할 수 있습니다.

하이퍼바이저(Hypervisor) 는 하드웨어의 CPU·메모리 등 리소스를 VM에 할당하고, VM들이 서로 격리되어 동작하도록 관리하는 가상화 소프트웨어입니다.

구분Type 1 (Native / Bare Metal)Type 2 (Hosted)
실행 위치하드웨어에서 직접 실행호스트 OS 위에서 애플리케이션으로 실행
호스트 OS불필요필요
주 사용처엔터프라이즈 데이터 센터개인 PC, 개발 환경
예시KVM, Hyper-VVirtualBox, VMware Workstation

VM vs 컨테이너

VM은 하이퍼바이저를 통해 게스트 OS를 통째로 실행하므로 다양한 OS를 돌릴 수 있고 격리 수준이 높지만, 게스트 OS를 포함해 무겁고 부팅이 느립니다.

반면 Docker 컨테이너는 호스트 OS의 커널을 공유하며 애플리케이션만 격리해 실행하므로 가볍고 빠르지만, 커널을 공유하는 만큼 격리 수준은 VM보다 낮고 호스트 OS와 동일한 환경으로 구성해야 합니다.

다양한 OS나 높은 격리 수준이 필요하면 VM을, 빠른 배포·확장이 필요한 클라우드 네이티브·MSA 환경이면 컨테이너를 선택합니다. 서로 대체 관계가 아니라 VM 위에서 컨테이너를 실행하는 등 목적에 따라 함께 사용되기도 합니다.

핵심 정리

→ 가상화에 대해 설명해 주세요

CSLOG에서 보기