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