컨테이너 기술 vs 가상화 기술 | 비교와 장단점
컨테이너 기술과 가상화 기술의 차이점과 장단점을 비교하여 이해하기 쉽게 설명합니다.
어떤 기술이 더 적합한지 알아보세요.
가상화 기술은 하이퍼바이저를 통해 하드웨어를 에뮬레이션하는 방법으로 가상 이미지마다 게스트OS를 사용해야 합니다.
반면 컨테이너는 커널을 공유하는 방법으로 호스트 OS 하나에서 여러 OS를 가상화합니다.
가상화 기술의 고질적인 문제점
가상 머신은 Guest OS에 BIOS, 가상 CPU, 가상 메모리, 가상 디스크, 가상 NIC 등을 제공하여 마치 물리서버에서 실행되는 것처럼 보입니다.
이 때문에, Guest OS 입장에서는 OS 시작과 정지등의 운영에 있어서 물리서버와 아무런 차이점 없이 운용이 가능합니다.
가상화 기술은 가상머신 이미지마다 OS(게스트 OS)가 필요합니다. 이로 인하여 OS에 대한 라이선스가 필요합니다.
또한 운영하면서 가상머신의 OS별로 차이점이 발생하게 되고 이로 인하여 운영 관리의 어려움이 증가하게 됩니다.
시간에 따라 이미지 사이즈가 증가하면서 마이그레이션에 대한 부담도 커지게 됩니다.
컨테이너를 통한 가상화 기술의 문제점 해결
컨테이너는 이와 달리 OS를 가상화하여 여러개의 컨테이너를 OS커널에서 직접 실행합니다.
컨테이너는 기존의 가상화 기술보다 훨씬 가볍게 동작하며, OS커널을 공유하고, 시작 시간이나 종료 시간이 빠르고, 메모리를 훨씬 적게 차지합니다.
컨테이너는 가상 머신과 마찬가지로 애플리케이션을 관련 라이브러리 및 종속 항목과 함께 패키지로 묶어 소프트웨어 서비스를 위한 환경을 분리할 수 있도록 해줍니다. 가상화 기술과 컨테이너 기술이 유사점은 여기까지입니다.
컨테이너를 사용하면 개발자와 IT운영팀이 훨씬 작은 단위로 업무를 수행할 수 있어 이점이 훨씬 많습니다.
표로 정리한 가상화와 컨테이너 비교
하이퍼바이저 가상화 | 컨테이너 가상화 | |
시작 시간 | 몇 분 | 몇 초 |
이미지 크기 | 수 GB ∼ 수백 GB
OS를 포함한 애플리케이션과 필요한 런타임 소프트웨어 |
∼ 수백 MB
애플리케이션과 런타임 소프트웨어만 |
Guest OS | Windows/Linux등 다양한 선택 가능 | 호스트 OS와 동일한 OS |
이식성 | 대부분 가상 이미지에 대한 변환이 필요함 | 컨테이너 이미지 그대로 사용 가능 |
데이터 관리 | VM 내부 또는 연결된 스토리지에 저장 | 컨테이너 내부에 있는 데이터는 종료시 소멸되며, 필요에 따라 스토리지를 이용하여 저장 |
Guest OS와의 관계 | Guest OS는 하드웨어(가상)로 인식 | Host OS를 커널 수준으로 분리하여 OS를 가상화 형태로 사용하여 필요에 따라 호스트와 리소스 공유 가능 |
하이퍼바이저 가상화와, 컨테이너 가상화 기술을 비교하면, 컨테이너는 OS가 포함되지 않아 크기가 작고, 고속으로 시작과 정지합니다.
가상화 기술과 컨테이너 기술 비교
하드웨어를 가상화한 “가상머신”이 커널을 공유한 “컨테이너”로 바뀌고 있습니다.
컨테이너는 커널이 공유화 됨으로써 OS 부팅은 불필요하고 가상 환경을 구성하는 스택이 간단합니다.
- 컨테이너는 일반적으로 크기가 메가바이트 단위입니다. 앱보다 크거나 실행하는데 필수적인 모든 파일이 컨테이너에 패키징되는 것은 아니며, 특정 작업을 수행하는 단일 기능(마이크로서비스라고 함)이 컨테이너에 패키징되는 경우가 많습니다. 컨테이너는 경량화 속성과 공유 운영체제(OS)로 인해 여러 환경간에 매우 쉽게 이동할 수 있습니다.
- VM은 일반적으로 크기가 기가바이트 단위입니다. 일반적으로 VM은 자체 OS를 포함하고 있어 리소스 집약적인 기능 여러개를 동시에 수행할 수 있습니다. VM에서 사용할 수 있는 리소스가 늘어남에 따라 VM은 전체 서버, OS, 데스크탑, 데이터베이스, 네트워크를 추상화 분할, 복제, 에뮬레이션 할 수 있습니다.
쿠버네티스 개념 뽀개기와 데모 그리고 무료 체험 신청
최근 코로나19로 인한 비대면 솔루션의 수요가 늘면서, 클라우드 네이티브 앱 개발과 클라우드 네이티브 컴퓨팅 환경에 대한 요구사항들이 급증하고 있습니다.
그러나 COVID-19라는 재난으로 인해 디지털 트랜스포메이션, 클라우드 전환 등은 반강제적으로 그리고 빠르게 산업에 침투하고 있습니다.
고객 직접 대면이 어려운 지금, 비대면으로 고객들이 PoC(Proof of Concept)를 체험할 수 있도록 그 활용 가이드를 제안해 드립니다.
하이브리드 클라우드 환경을 준비한다면, 어떤 기술을 사용해야 할까요?
컨테이너와 VM을 비교하는 것은 기술적 차이를 넘어 새로운 IT 프랙티스와 기존 IT 아키텍처 간의 프록시를 비교하는 것입니다.
컨테이너 기술 소개
IT 분야에서 “컨테이너”도 일종의 박스의 의미이며, 물류분야에서 처럼 Portability(이동성)을 실현하기 위해 만들어진 기술입니다.
이동성은 IT 시스템(플랫폼 또는 인프라) 상에서 다른 IT 시스템으로 이동을 쉽게 허용하는 성질을 의미하는 것입니다.
물리서버, 가상화를 넘어 컨테이너까지
컨테이너 기술이 등장하기 전까지 IT 역사를 되돌아 보겠습니다.
가상화 기술이 출현하기 전에는 하나의 물리적 서버에서 다양한 애플리케이션을 올려 사용하는 시대였습니다.
Docker 그리고 컨테이너 기술의 역사
컨테이너 기술의 시작과 현재까지 발전해온 역사를 살펴봅니다.
1972년 IBM VM / 370 (OS) 최초 가상화 기능 구현 , 1979 년 UNIX V7 에 chroot 시스템 콜 도입, 1999년 Virtuozzo 출시 컨테이너 가상화의 새로운 방향을 제시하였습니다.
컨테이너를 들으면 무엇이 떠오르나요?
항구나 공항 등에서 보는 직 물류 업계에서 사용되는 컨테이너가 떠오르실 것입니다.
컨테이너는 내용물을 하나씩 이동하는 것이 아니라 박스에 수하물을 담아 통째로 이동하기 때문에 편리한 물류 수단입니다.
컨테이너 장점
가상머신은 하드웨어 스택을 가상화합니다. 컨테이너는 이와 달리 OS를 가상화하여 여러개의 컨테이너를 OS 커널에서 직접 실행합니다. 컨테이너는 기존의 가상화 기술보다 훨씬 가볍게 동작하며, OS 커널을 공유하고, 시작 시간이나 종료 시간이 빠르고, 메모리를 훨씬 적게 차지합니다.
References & Related Links
- 컨테이너와 VM 비교 – https://www.redhat.com/ko/topics/containers/containers-vs-vms
- 컨테이너와 VM의 차이는 무엇인가요? – https://www.alibabacloud.com/ko/knowledge/difference-between-container-and-virtual-machine
JBoss EAP 시작 파라미터 살펴보기: Command Line 파라미터 설명
/in JBoss, Tech Talk/by 오픈마루 마케팅0JBoss EAP 6에서 인스턴스 시작 시, 참조되는 바인딩 주소와 각종 디렉터리를 지정하는 시작 파라미터들에 대해 설명한다.
Drools 6.0 성능 비교: Phreak와 Rete 알고리즘 비교
/in Tech Talk/by 오픈마루 마케팅0Drools 6.0에서는 지금까지의 ReteOO 대신 Phreak ( Lazy Matching)라는 새로운 룰 엔진 알고리즘이 도입되었다.
Apache httpd 비교 – Prefork MPM vs. Worker MPM
/in JBoss, OPENMARU/by 오픈마루 마케팅0Apache HTTPD 2.0 버전에 추가된 MPM 중 가장 많이 사용하는 Prefork MPM과 worker MPM의 차이점을 간단하게 설명합니다.