본문 바로가기
Security/etc

KVM, VM과 Container

by curious week 2026. 3. 14.

1. KVM이 무엇인가

KVM

KVM은 Linux 커널 안에 들어있는 가상화 기술입니다.

즉 별도의 VM 프로그램이 아니라 Linux kernel 자체가 hypervisor가 됩니다.

구조

Hardware
   ↓
Linux Kernel (KVM module)
   ↓
QEMU
   ↓
Virtual Machine

여기서 역할이 나뉩니다.

KVM

CPU virtualization
memory virtualization

QEMU

device emulation
disk
network

즉,

KVM = 가상 CPU
QEMU = 가상 하드웨어

입니다.

CPU 가상화

KVM이 가능한 이유는 CPU 기능 때문입니다.

Intel

VT-x

AMD

AMD-V

CPU가 가상 머신을 직접 지원합니다.

그래서 VM 성능이 실제 컴퓨터에 매우 가깝습니다.


2. 왜 AWS / GCP에서 KVM을 쓰는가

클라우드에서는 VM을 수백만 개 돌립니다.

그래서 필요한 조건이 있습니다.

1. 성능

KVM은 거의 네이티브 성능입니다.

VM 성능 ≈ 실제 서버

그래서 대규모 데이터센터에 적합합니다.

2. Linux와 완전 통합

KVM은 Linux 커널 기능입니다.

kernel scheduler
memory manager
network stack

을 그대로 사용합니다.

그래서 관리가 쉽습니다.

3. 오픈소스

KVM은 GPL 라이센스입니다.

클라우드 회사 입장에서 매우 중요합니다.

왜냐하면 VMware의 라이센스 비용이 엄청나게 비싸기 때문입니다.

4. 확장성

AWS 서버 구조

Physical server
   ↓
KVM hypervisor
   ↓
hundreds of VMs

대규모 VM 관리에 매우 유리합니다.

실제 사용

AWS

Nitro Hypervisor
(KVM 기반)

GCP

KVM 기반

OpenStack

KVM 기본

3. VM vs Container 구조

이 차이는 클라우드 / DevOps의 핵심 개념입니다.

VM 구조

Hardware
   ↓
Hypervisor
   ↓
Guest OS
   ↓
Application

VM마다 OS가 존재

예를 들어,

VM1
 └ Ubuntu

VM2
 └ Debian

VM3
 └ Windows

 

Container 구조

대표 기술: Docker

구조

Hardware
   ↓
Host OS
   ↓
Container Runtime
   ↓
Containers

여기서 중요한 점 OS 공유입니다. Container는 프로세스가 격리되는 구조입니다.

비교

VM

VM
 └ OS
 └ App

Container

Container
 └ App

 

특징 비교

VM

장점

  • 완전 격리
  • 다른 OS 가능

단점

  • 무겁다
  • 부팅 느림

Container

장점

  • 가볍다
  • 빠르다
  • 대량 배포

단점

  • 커널 공유
  • 격리 약함