메뉴

컨테이너와 가상 머신(VM): 차이점은 무엇일까요?

Doug Jones
Doug Jones
451 Research의 최근 연구에 따르면, 애플리케이션 컨테이너 도입은 2020년까지 매년 40%씩 증가할 것으로 예상됩니다. 컨테이너는 전례 없이 빠르고 민첩한 개발을 가능하게 합니다. 하지만 컨테이너의 기본 사항에 대한 의문은 여전히 남아 있으며, 대표적으로 다음과 같습니다.
  • 가상 시스템과 어떻게 다른가요?
  • 컨테이너는 본질적으로 일시적이고 일회용인데, 어떻게 영구 스토리지와 함께 사용할 수 있나요?
  • 컨테이너는 기존 가상화 및 오케스트레이션 솔루션을 어떻게 보완하나요?

가상 시스템 – VM과 컨테이너

이 블로그 게시물에서는 첫 번째 질문인 VM(가상 머신)이 컨테이너와 어떻게 다른지 살펴보겠습니다. 가상 머신(VM)이란 무엇인가요? 과거에는 서버 처리 능력과 용량이 증가함에 따라 베어 메탈 애플리케이션은 새로운 리소스를 활용할 수 없었습니다. 따라서 특정 하드웨어 시스템을 에뮬레이션하기 위해 물리적 서버 위에서 소프트웨어를 실행하도록 설계된 VM이 탄생했습니다. 하이퍼바이저, 즉 가상 머신 모니터는 VM을 만들고 실행하는 소프트웨어, 펌웨어 또는 하드웨어입니다. 하이퍼바이저는 하드웨어와 가상 머신 사이에 위치하며 서버를 가상화하는 데 필요합니다.

각 가상 머신 내에서는 고유한 게스트 운영 체제가 실행됩니다. 서로 다른 운영 체제를 사용하는 VM이 같은 물리적 서버에서 실행될 수 있습니다. 예를 들어, UNIX VM이 Linux VM과 나란히 배치될 수 있습니다. 각 VM에는 자체 바이너리, 라이브러리 및 애플리케이션이 있으며, VM의 크기는 수 기가바이트에 달할 수 있습니다. 

머신 가상화와 컨테이너 비교 인포그래픽

서버 가상화는 다양한 이점을 제공했는데, 그중 가장 큰 이점은 단일 시스템에 애플리케이션을 통합할 수 있다는 점입니다. 단일 서버에서 단일 애플리케이션을 실행하는 시대는 지났습니다. 더 이상 DR 사이트 하드웨어가 기본 데이터 센터를 미러링할 필요가 없기 때문에 가상화는 설치 공간 감소, 서버 프로비저닝 속도 향상 및 DR(재해 복구) 개선을 통해 비용을 절감할 수 있게 해주었습니다.

더 크고 빠른 서버의 활용도가 높아짐에 따라 사용하지 않는 서버를 확보하여 QA, 개발 또는 실험실 장비로 용도를 변경할 수 있기 때문에 개발 팀도 이러한 물리적 통합의 이점을 누릴 수 있었습니다.   하지만 이 접근 방식에는 단점도 있었습니다. 각 VM에는 별도의 운영 체제 이미지가 포함되어 있어 메모리와 스토리지 공간에 오버헤드가 추가됩니다. 이 문제는 개발 및 테스트에서 운영 및 재해 복구까지 소프트웨어 개발 라이프사이클의 모든 단계에 복잡성을 가중시킵니다. 또한, 이 접근 방식은 퍼블릭 클라우드, 프라이빗 클라우드, 기존 데이터 센터 간의 애플리케이션 이동성을 심각하게 제한합니다. 컨테이너란 무엇일까요? 운영 체제(OS) 가상화는 한 서버 환경에서 다른 서버 환경으로 이동할 때 소프트웨어가 예측 가능하고 원활하게 실행되도록 하기 위해 지난 10년 동안 널리 사용되었습니다. 하지만 컨테이너는 이러한 격리된 시스템을 단일 서버 또는 호스트 OS에서 실행할 수 있는 방법을 제공합니다.

컨테이너는 물리적 서버와 해당 호스트 OS(예: Linux 또는 Windows) 위에 위치합니다. 각 컨테이너는 호스트 OS 커널을 공유하며, 일반적으로 바이너리와 라이브러리도 공유합니다. 공유 구성 요소는 읽기 전용입니다. 따라서 컨테이너는 크기가 메가바이트에 불과하고 시작하는 데 몇 초밖에 걸리지 않습니다. 반면 VM은 크기가 기가바이트에 달하고 시작되는 데 몇 분씩 걸립니다.

또한, 컨테이너는 관리 오버헤드도 줄여줍니다. 공통된 운영 체제를 공유하기 때문에 버그 수정, 패치 등을 위해 단일 운영 체제만 집중적으로 관리하면 됩니다. 이 개념은 하이퍼바이저 호스트에서 경험하는 것과 비슷합니다. 즉, 관리 지점은 더 적지만 장애 영역은 약간 더 많습니다. 컨테이너는 VM보다 가볍고 휴대성이 뛰어납니다. 결론적으로, 가상 머신과 컨테이너는 여러 가지 면에서 다르지만, 가장 큰 차이점은 컨테이너가 OS를 가상화하여 단일 OS 인스턴스에서 여러 워크로드를 실행할 수 있는 방법을 제공한다는 점입니다. VM을 사용하면 하드웨어를 가상화하여 여러 OS 인스턴스를 실행할 수 있습니다. 컨테이너의 속도, 민첩성, 휴대성은 소프트웨어 개발을 간소화하는 데 도움이 되는 또 다른 도구입니다.

NetApp®은 컨테이너 기술을 믿고 있으며, 소프트웨어 개발의 속도와 민첩성을 더욱 향상할 수 있는 혁신을 제공하기 위해 노력하고 있습니다. NetApp은 영구 스토리지를 자동화하고 원활하게 만들기 위해 Trident를 개발했습니다. GitHub에서 Trident의 최신 릴리즈를 확인하십시오. 컨테이너 솔루션 페이지에서도 확인할 수 있습니다. 자세한 내용이나 궁금한 사항이 있는 경우netapp.io에서 thePub을 참조하십시오.

Doug Jones

Doug Jones는 NetApp의 수석 제품 서비스 관리자로, 마이그레이션 서비스의 포트폴리오 전략을 이끌고 있습니다. 듀크대학교 후쿠아경영대학원에서 경영학 석사 학위, 플로리다 애틀랜틱 대학교에서 컴퓨터 공학 학사 학위를 취득했습니다. 현재 노스캐롤라이나주 애슈빌에 거주하고 있습니다.

Doug Jones의 모든 게시물 보기

다음 단계

Drift chat loading