본문 바로가기

컨테이너 vs 가상머신(Container vs VM)

인포꿀팁 발행일 : 2022-02-07

컨테이너란? container

컨테이너는 나머지 시스템에서 격리된 하나 이상의 프로세스 집합입니다. 컨테이너는 보안, 스토리지 및 네트워크 격리와 같은 가상 시스템과 동일한 이점을 많이 제공합니다. 컨테이너는 하드웨어 리소스가 훨씬 적게 필요하며, 신속하게 시작하고 종료할 수 있습니다.

Virtual Machine :

  • app을 동작시키기 위한 runtime 환경
  • 개별적인 os(vm)에서 application running 구현
  • 격리된 독립적인 가상 환경
  • 호스트 os ⇒ 하이퍼바이저 ⇒ guest os ⇒ application

container :

  • app을 동작시키기 위한 독립적인 가상환경 구성( vm과 공통점)
  • 호스트 os ⇒ docker/podman 컨테이너 플랫폼 ⇒ application
  • 가장 큰 핵심 : guest os 존재 유무

 

컨테이너의 특징

  • 적은 하드웨어 풋프린트
    • 컨테이너는 OS 내부 기능을 사용하여 네임스페이스, cGroups 등의 OS 기능을 통해 리소스가 관리되는
      격리된 환경을 생성합니다. 이 접근법은 가상 시스템 하이퍼바이저와 비교하여 CPU와 메모리 오버헤드
      의 양을 최소화합니다.
  • 환경 격리
    • 컨테이너는 호스트 OS 또는 기타 애플리케이션의 변경 사항이 컨테이너에 영향을 미치지 않는 폐쇄된
      환경에서 작업합니다. 컨테이너에서 필요로 하는 라이브러리가 자체 포함되어 있으므로 애플리케이션
      은 중단 없이 실행할 수 있습니다. 예를 들어 각 애플리케이션은 자체 라이브러리 집합이 포함된 자체 컨
      테이너에 있을 수 있습니다. 한 컨테이너의 업데이트는 다른 컨테이너에 영향을 미치지 않습니다.
  • 빠른 배포
    • 전체 기본 운영 체제를 설치할 필요가 없으므로 컨테이너가 빠르게 배포됩니다. 일반적으로 격리를 지원
      하기 위해 새로운 OS 설치가 물리적 호스트 또는 VM에 필요하며 간단한 업데이트 때문에 전체 OS 재시
      작이 필요할 수 있습니다. 컨테이너를 재시작할 때 호스트 OS의 서비스를 중지하지 않아도 됩니다.
  • 다중 환경 배포
    • 단일 호스트를 사용하는 기존의 배포 시나리오에서는 환경의 차이로 인해 애플리케이션이 중단될 수 있
      습니다. 그러나 컨테이너를 사용하면 모든 애플리케이션 종속성 및 환경 설정이 컨테이너 이미지에 캡슐
      화됩니다.
  • 재사용성
    • 전체 OS를 설치할 필요 없이 동일한 컨테이너를 재사용할 수 있습니다. 예를 들어 프로덕션 데이터베이
      스 서비스를 제공하는 동일한 데이터베이스 컨테이너를 각 개발자가 사용하여 애플리케이션 개발 중에
      개발 데이터베이스를 생성할 수 있습니다. 컨테이너를 사용하면 더 이상 별도의 프로덕션 및 개발 데이
      터베이스 서버를 유지 관리할 필요가 없습니다.

댓글