가성 머신(VM)과 컨테이너 설명을 접하고 드는 생각이 있습니다. 두 개가 비슷한 개념인가 하는 생각이죠. 하지만 두 기술의 차이점은 확연이 다릅니다. 우선 비교 설명을 하기 전에 베어메탈(Bare metal)이라는 단어부터 알아야 합니다. 그 다음 그 차이점을 알아보도록 하겠습니다.
Bare Metal(베어메탈)
베어메탈은 멀티 테넌트가 아닌 단일 테넌트 서버입니다. 이는 가상화되지 않은 물리 서버를 말합니다. 즉, 다른 사용자와 서버를 공유하지 않고도 전체를 모두 사용할 수 있습니다.
쉽게말해 우리가 구매한 ’서버‘입니다. 이를 가상화 입장에서 ‘베어메탈’이라는 용어를 사용 할뿐이죠.
특징은 내 전용 하드웨어를 사용하므로 같이 사용하는 번거로움이 없습니다. 가상화 오버헤드 없이 물리서버 최대 성능을 낼 수 있다는 이야기죠. 이는 리소스 집약적인 애플리케이션에 이상적입니다. 직접 필요한 운영 체제, 애플리케이션 스택을 설치할 수 있습니다.
베어메탈 서버는 다른 테넌트와 하드웨어를 공유하지 않기 때문에 높은 수준의 보안을 제공합니다. 이렇게 하면 잠재적인 보안 침해 위험이 줄어듭니다. 베어메탈은 하이퍼바이저 계층이 없기 때문에 일반적으로 안정적이죠.
가상 머신(vritual machine, VM)
물리적 서버가 아니라 논리적으로 분할된 ‘가상 서버(Virtual Machine)’을 의미합니다. 이는 하이퍼바이저 기술를 통해 단일 물리적 서버에서 여러 VM을 생성하고 관리합니다. 하이퍼바이저로는 VMware, Hyper-V, KVM 등이 있습니다.
특징은 리소스(CPU, 메모리, 스토리지)를 여러 VM 간에 공유하게 됩니다. 하드웨어를 더욱 효율적으로 활용할 수 있습니다. 또 대부분의 과정이 자동화되어 있어 웹 콘솔에서 간편하게 ‘가상 서버’를 생성/삭제할 수 있습니다. 즉 신속하게 용량을 증설/축소할 수 있다는 이야기입니다.
하드웨어 리소스를 공유하는 ’가상 머신‘이 ‘베어메탈’보다 더 비용 효율적입니다. VM 기반 호스팅이 많은 기업에서 인기가 있는 이유가 바로 이부분입니다.
컨테이너(Container)
컨테이너는 VM(가상 머신)의 단점을 개선할 목적으로 탄생했습니다. 가상 머신은 무시할 수 없는 오버헤드 있습니다. OS가 VM마다 있기 때문에 부팅 속도가 느리고 VM 환경 간의 불일치가 발생합니다.
이 문제를 개선하기 위해 하나의 호스트의 운영체제(OS) 위에 컨테이너 엔진을 설치하는 방식을 생각해 냈습니다. 이는 각각의 공간을 컨테이너화 시켜 가상화하는 방식입니다.
컨테이너 소프트웨어 코드와 그 실행에 필요한 모든 요소들을 하나의 패키지로 묶습니다. 이 패키지에는 코드뿐만 아니라 라이브러리, 설정 파일, 종속성 등이 포함되어 있습니다. 그 이점은 어디서나 일관되게 소프트웨어를 실행할 수 있도록 합니다.
컨테이너의 좋은점은 개발 환경과 테스트 환경, 그리고 운영 환경 사이의 차이를 없애줍니다. 개발자가 컨테이너에서 만든 애플리케이션은 동일한 컨테이너 환경에서 실행되기 때문에, "내 컴퓨터에서는 잘 되는데 서버에서는 안 돼요"라는 문제가 사라집니다.
마무리
현재 클라우드는 가상화와 컨테이너를 모두 지원하고 거의 대세 트랜드가 되었습니다. 그만큼 효율적인 방식이라는 이야기입니다. 인터넷 교육에서 설명하는 예제들도 대부분 도커 컨테이너 환경으로 제공하는 경우가 많아졌습니다. 이제 많은 사람들이 익숙해지고 있다는 말입니다. 여러분도 꼭 이해하시고 넘어가시길 바라겠습니다.
'빅데이터,클라우드' 카테고리의 다른 글
EC2 보안 그룹 인바운드 아웃바운드 3단계 설정 방법 (0) | 2024.07.01 |
---|---|
AWS의 키페어 이해: EC2 접속 Key Pair로 하는 이유 (0) | 2024.06.09 |
AWS EC2 인스턴스 개념 및 유형, 어떤 EC2가 유리한가? (0) | 2024.06.03 |
클라우드 유형 3가지, IaaS vs PaaS vs SaaS (0) | 2024.05.29 |
클라우드 개념: 온프레미스, 퍼블릭, 프라이빗, 하이브리드 차이 (1) | 2024.05.23 |