Linux Container VS Virtual Machine

Virtual Machine (VM)

가상 virtual, 假想 실제로 존재하는 것이 아닌, 상상하여 만들어진 상황이나 물체를 가리키기 위해 사용하는 용어.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/2b045421-3579-4004-9155-04e7db7a289f/Untitled.png

가상 머신(Virtual Machine, VM)은 물리적 하드웨어 시스템에 구축되어 자체 CPU, 메모리, 네트워크 인터페이스 및 스토리지를 갖추고 가상 컴퓨터 시스템으로 작동하는 가상 환경입니다.

하이퍼바이저(Hypervisor)라 불리는 소프트웨어는 하드웨어에서 가상 머신의 리소스를 분리하고 적절히 프로비저닝하여 VM에서 사용할 수 있도록 합니다.더 쉽게 설명을 하면 NOX, VMware, VirtualBox와 같이 HostOS위에 Guest OS를 가상화 하는 방식입니다.

<aside> 😶 프로비저닝(provisioning)은 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말한다.

</aside>

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/46d50d47-0de7-46c4-a4b3-aa48c97681c4/Untitled.png

Linux Container

VM과 같이 가상화하는 방식은 무겁고 성능 문제가 발생하기에 프로세스를 격리하는 방안이 등장 하였습니다. 리눅스 컨테이너는 운영체제 수준의 가상화 기술로 리눅스 커널을 공유하면서 프로세스를 격리된 환경에서 실행하는 기술입니다.

Virtual Machine VS Linux Container

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/1f5f61b6-0f71-400d-b3d7-1b76f98cf0bf/Untitled.png

Virtual Machine

  1. VM은 하이퍼바이저 위에 Guest OS가 올라가는데 그 위에 Binary와 라이브러리 등을 모두 구성해야 하기에 무겁고 성능저하가 발생합니다. (오버헤드 발생)