Tenma

[CS] 가상머신 (Virtual Machine) vs 컨테이너 (Container) 본문

Computer Science

[CS] 가상머신 (Virtual Machine) vs 컨테이너 (Container)

Tenma2 2025. 11. 19. 15:52

 

안녕하세요!

가상머신 vs 컨테이너에 대해

알아보겠습니다!


 

 

목차

1. 가상머신과 컨테이너 구조
2. 가상머신 vs 컨테이너 성능 
3. 장단점 
4. 언제 사용할까?

 


1. 가상머신과 컨테이너 구조

가상머신 vs 컨테이너

 

가상머신 (Virtual Machine)

  • 하이퍼바이저(KVM, virtualBox, Zen, Hyper-v)를 이용해 Guest OS를 설치해 커널로 개별적인 자원(CPU,memory 등) 관리
  • 각각의 VM은 독립적인 운영체제 Guest OS를 가짐
  • 하드웨어를 가상화하기 때문에 안정적이고 격리 수준이 높음
  • 하지만 무겁고 OS까지 포함되므로 리소스 사용량이 큼

 

컨테이너 (Container)

 

  • 운영체제 커널을 공유
  • 필요한 라이브러리만 포함 → 가볍고 빠름
  • 초 단위 배포·롤백 가능 → DevOps·CI/CD 최적화

 

 


2. 가상머신 vs 컨테이너 성능

항목 Virtual Machine (가상머신)  Container (컨테이너)
부팅 속도 수십 초~수 분 수 밀리초~수 초
이미지 크기 수 GB 수 MB~수백 MB
리소스 사용량 무거움 (OS 포함) 매우 가벼움
확장성 느림 매우 빠름
격리 수준 강함 비교적 약함
실행 환경 일관성 매우 안정적 이미지 기반이라 안정적
관리가 필요한 부분 OS patch, package 관리 이미지 관리 중심

 

 


3. 장단점

✔ 가상머신(VM)의 장점

  • 강력한 격리 (OS 단위로 보호됨)
  • 서로 다른 OS 실행 가능 (예: Windows + Linux 혼용)
  • 전통적 애플리케이션 호환성 좋음
  • 안정성과 보안 요구가 높은 환경에 적합

❌ VM의 단점

  • OS가 포함되어 무거움
  • 배포와 확장에 시간이 걸림
  • 리소스 오버헤드가 큼(Boot Time ↑, Memory ↑)

✔ 컨테이너(Container)의 장점

  • 매우 가벼움 (OS 없음)
  • 밀리초 단위로 빠른 실행
  • 동일한 환경을 재현하는 데 최강 (이미지 기반)
  • DevOps와 CI/CD 파이프라인에 최적
  • 고밀도(Hyper-Density) 배치 가능 → 비용 절감

❌ 컨테이너의 단점

  • 커널 공유VM보다 격리 약함
  • 호스트 OS와 커널이 달라질 수 없음
  • 운영 중 악성 컨테이너가 영향을 미칠 가능성
  • Stateful workload(데이터 요구)엔 여전히 VM이 유리할 때도 있음

 

 

 


4. 언제 사용할까?

<가상머신이 더 적합한 경우>

  • 보안·안정성이 가장 중요할 때
  • 서로 다른 OS가 필요할 때
  • 전통적/레거시 애플리케이션 운영
  • Kubernetes 등의 오케스트레이션 계층을 구축하려는 경우 (노드용으로 VM 사용)

 

<컨테이너가 더 적합한 경우>

  • 마이크로서비스 아키텍처(MSA)
  • 빠른 배포·롤백이 중요한 서비스
  • DevOps 자동화 환경
  • 일관된 개발/운영 환경이 필요한 경우
  • 글로벌 확장 및 오토스케일링 환경

 

현대 인프라에서 VM과 컨테이너는
대체 관계가 아니라 보완 관계라는 생각이 듭니다!

<QUIZ>

1. 컨테이너가 VM보다 빠르게 시작되는 이유는 무엇인가?

2. Windows와 Linux처럼 서로 다른 OS를 동시에 실행해야 한다면 어떤 환경이 더 적합한가?

3. 컨테이너가 VM에 비해 가지는 주요 단점 한 가지는?