컨테이너와 가상 머신 비교

완료됨

하드웨어 가상화를 통해 동일한 물리적 하드웨어에서 여러 개의 격리된 운영 체제 인스턴스를 동시에 실행할 수 있습니다. 컨테이너는 컴퓨팅 리소스 가상화에서 다음 단계를 나타냅니다.

컨테이너 기반 가상화를 사용하면 운영 체제를 가상화할 수 있습니다. 이러한 방식으로 애플리케이션 간의 격리를 유지하면서 운영 체제의 동일한 인스턴스 내에서 여러 애플리케이션을 실행할 수 있습니다. 가상 머신 내의 컨테이너는 물리적 서버 내의 가상 머신과 유사한 기능을 제공합니다.

컨테이너와 가상 머신에 대해 알아야 할 사항

컨테이너 기반 가상화를 더 잘 이해하기 위해 컨테이너와 가상 머신을 비교해 보겠습니다.

비교 컨테이너 가상 머신
격리 컨테이너는 일반적으로 호스트 및 기타 컨테이너로부터 어느 정도 격리하지만, 가상 머신처럼 강력한 보안 경계를 제공하지는 않습니다. 가상 머신은 호스트 운영 체제와 다른 가상 머신으로부터 완벽하게 격리합니다. 이러한 격리는 동일한 서버나 클러스터에서 경쟁 회사의 앱을 호스팅하는 것과 같이 강력한 보안 경계가 중요한 경우에 유용합니다.
운영 체제 컨테이너는 운영 체제의 사용자 모드 부분을 실행하며 앱에 필요한 서비스만 포함하도록 조정할 수 있습니다. 이 방식은 사용되는 시스템 리소스를 줄이는 데 도움이 됩니다. 가상 머신은 커널 등의 전체 운영 체제를 실행하며, 여기에는 더 많은 시스템 리소스(CPU, 메모리, 스토리지)가 필요합니다.
배포 명령줄을 통해 Docker를 사용하면 개별 컨테이너를 배포할 수 있습니다. Azure Kubernetes Service 같은 오케스트레이터를 사용하면 여러 컨테이너를 배포할 수 있습니다. Windows Admin Center 또는 Hyper-V 관리자를 사용하여 개별 가상 머신을 배포할 수 있습니다. PowerShell 또는 System Center Virtual Machine Manager를 사용하면 여러 가상 머신을 배포할 수 있습니다.
영구 스토리지 컨테이너는 단일 노드에는 로컬 스토리지용 Azure 디스크를 사용하고, 여러 노드나 서버에서 공유하는 스토리지에는 Azure Files(SMB 공유)를 사용합니다. 가상 머신은 단일 가상 머신의 로컬 스토리지에 VHD(가상 하드 디스크)를 사용하고, 여러 서버에서 공유하는 스토리지에는 SMB 파일 공유를 사용합니다.
내결함성 클러스터 노드에 장애가 발생하면 다른 클러스터 노드의 오케스트레이터가 해당 노드에서 실행 중인 모든 컨테이너를 빠르게 다시 만듭니다. 가상 머신은 클러스터의 다른 서버에 대해 장애 조치(failover)를 취할 수 있으며, 이때 가상 머신의 운영 체제는 새로운 서버에서 다시 시작됩니다.

컨테이너를 사용할 때 고려해야 할 사항

컨테이너는 물리 및 가상 머신에 비해 몇 가지 이점을 제공합니다. 다음 이점을 검토하고 회사의 내부 앱에 대한 컨테이너를 구현하는 방법을 고려합니다.

  • 유연성과 속도를 고려합니다. 컨테이너화된 애플리케이션 코드를 개발하고 공유할 때 유연성과 속도를 높입니다.

  • 테스트를 고려합니다. 구성에 대한 컨테이너를 선택하여 앱 테스트를 간소화합니다.

  • 앱 배포를 고려합니다. 컨테이너를 구현하여 앱의 배포를 간소화하고 가속화합니다.

  • 워크로드 밀도를 고려합니다. 컨테이너를 사용하여 더 높은 워크로드 밀도를 지원하고 리소스 사용률을 개선합니다.