VM ?
- Hypervisor를 사용하여 자체 OS를 갖는 가상환경을 VM이라 한다.
- VM 내에는 Guest OS가 포함되어 있어 크기가 Container에 비해 용량이 크다.
- VM의 일반적인 크기는 GB 단위이다.
Hypervisor
- Host Computer에서 다수의 OS를 동시에 실행하기 위한 논리적 플랫폼이다.
Container ?
- 하나의 운영 체제 커널에서 다른 프로세스에 영향 받지 않고 독집적으로 실행되는 프로세스 상태이다.
- VM과 다르게 Guest OS가 없어 VM에 비해 용량이 작다.
- Container의 일반적인 크기는 MB 단위이다.
Container 사용이 적합한 경우
- 클라우드 네이티브 어플리케이션 빌드
- 마이크로서비스 패키징
- DevOps or CI/CD 구축
- 동일한 OS를 공유하는 다양한 IT 설치 공간에서 확장 가능한 IT 프로젝트로 전환
VM vs Container
- VM과 Container는 내가 사용하는 OS와 격리한 패키징 컴퓨팅 환경이다.
- VM의 경우 두 개의 OS를 사용하기 때문에 Container에 비해 오버헤드가 크다.
- VM의 경우 자체 OS가 있어 리소스 집약적인 기능 여러 개를 동시에 수행 할 수 있다.
- Container는 경량화와 공유 운영 체제로 인해 여러 환경을 쉬벡 이동한다. (확장성이 용이하다.)
오버헤드?
- 가상화시 사용되는 리소스로 CPU, 메모리, 디스크 사용량을 말한다.
정리
VM과 Container를 사용하는 이유는 Host computer와 격리된 공간에서 애플리케이션을 실행시키는 것이 목적이라 생각한다.
요즘 VM보다 Conatiner를 선호하는 이유는 리소스 절약이 가장 큰이유 같다.
VM의 경우 Host OS와 Guest OS 두 개의 OS가 실행되므로 오버헤드가 커진다. 반면 Container의 경우 Host OS를 공유하므로 VM에 비해 오버헤드가 작다.
오버헤드?
가상화시 사용되는 리소스로 CPU, 메모리, 디스크 사용량을 말한다.
참고 문서
컨테이너와 VM 비교
Hypervisor
컨테이너 VS 가상머신