2023년 3월 18일
가상머신(VM)과 컨테이너(Container) 비교
1. 가상머신(VM)과 컨테이너(Container) 개념 비교
비교 항목 | 가상머신(Virtual Machine) | 컨테이너(Container) |
---|---|---|
개념도 | ||
개념 | 하이퍼바이저를 통해 물리적인 자원을 재구성하여 논리적인 자원으로 제공하는 가상 컴퓨팅 환경 | 컨테이너 엔진을 통해 물리적인 자원을 격리하여 논리적인 자원으로 제공하는 가상 컴퓨팅 환경 |
- 가상머신은 Guest OS로 완전격리되어 Host OS에 종속성이 낮지만 오버헤드가 발생하고, 컨테이너는 APP 단위 격리로 성능저하 방지 가능하나 Host OS에 종속성 존재
2. 가상머신과 컨테이너 상세 비교
비교 항목 | 가상머신(Virtual Machine) | 컨테이너(Container) |
---|---|---|
구성도 | ||
구성요소 | 하이퍼바이저, Host OS, Guest OS | LXC, Namespace, Cgroups, Libvirt |
가상화 방식 | 전가상화, 반가상화 | LXC 기반 컨테이너 기술 |
OS 지원 환경 | 다양한 OS 지원 | 단일 OS 지원 (Host OS) |
실행 환경 | Guest OS 기반 | Container 기반 |
APP 종속성 | 완전 격리로 종속성 낮음 | Host OS에 종속 |
오버헤드 | Guest OS (오버헤드) | 오버헤드 낮음 |
성능 | 오버헤드로 성능저하 | 성능 저하 낮음 |
H/W 관리 | Type-1(Bare Metal): 베어메탈 서버에 하이퍼바이저 기동 Type-2(Hosted): Host OS에서 하이퍼바이저 기동 | Namespace: 운영 환경을 고립시켜, 독립적인 공간을 제공하는 기능 Cgroups: 프로세스 그룹에 대한 자원 제한, 격리, 모니터링 수행 |
주요 제품 | VMWare, Hyper-V, KVM, Xen | LXC, Docker, Kubernetes |
- Linux Container 기반 기술은 개발 용이, 성능 장점, Hypervisor 기반 기술은 독립성이 높아 개별 서버 운영에 적합
3. 시스템 유형 별 가상화 기술 선택 기준
선택 기준 | 세부 내용 | 가상화 기술 |
---|---|---|
서버 별 역할에 차이 | – WAS서버와 DB서버 – 서로 다른 APP 서버 | Hypervisor |
서버 역할 동일 | – 개발서버와 운용서버 – 동일 APP 서버 | Linux Container |
- 동일 Driver 필요 시 Linux Container 방식 권장, 다른 Driver 필요 시 Hypervisor 방식 권장
[참고]
- 소프트웨어정책연구소(SPRi), 클라우드 가상화 기술의 변화