가상 머신이란?

가상 머신(VM)은 호스트 하드웨어에서 격리된 환경을 제공하는 소프트웨어 기반 컴퓨터입니다. 가상 머신은 프로그램과 운영체제를 실행하고 데이터를 저장하고 네트워크에 연결하며 기타 컴퓨팅 기능을 수행할 수 있습니다. 클라우드 컴퓨팅인공지능과 같이 오늘날 우리가 활용하는 기술의 대부분은 운영체제와 소프트웨어를 물리적 기계에서 분리할 수 있는 가상 머신이라는 개념에 뿌리를 두고 있습니다. 예를 들어 클라우드 컴퓨팅의 VM은 클라우드 서비스 제공업체 서버 리소스를 가상화하는 데 사용되며 이를 통해 고객이 서로 격리된 상태에서 리소스를 공유할 수 있는 멀티 테넌트 클라우드 아키텍처를 지원합니다.

가상 머신은 어떻게 작동하나요?

가상 머신은 가상화 기술을 사용하여 물리적 머신에 가상 하드웨어나 가상 버전의 컴퓨터를 만듭니다. VM이 실행되는 물리적 머신을 호스트라고 하고 호스트에서 실행되는 VM을 게스트라고 합니다. 

각 게스트 VM은 다른 게스트와 완전히 분리된 호스트의 격리된 파티션에서 실행됩니다. 하이퍼바이저라고 하는 소프트웨어 레이어에서 실행되는 단일 호스트 머신(주로 서버)에서 VM 여러 개를 호스팅할 수 있습니다.

하이퍼바이저는 CPU, GPU, TPU, 메모리, 스토리지, 네트워크와 같은 호스트 머신의 물리적 리소스를 필요에 따라 프로비저닝하고 게스트 VM에 동적으로 할당할 수 있는 풀로 추상화하여 유연성 및 전반적인 효율성을 높입니다.

하이퍼바이저의 두 가지 주요 유형

  • 유형 1: 베어메탈 하이퍼바이저: 호스트의 물리적 하드웨어에서 직접 실행됩니다. 높은 성능과 효율성으로 인해 엔터프라이즈 데이터 센터에서 널리 사용됩니다. 예를 들어 Google Cloud는 KVM 기반 하이퍼바이저를 사용하여 Compute Engine 가상 머신을 구동합니다.
  • 유형 2: 호스팅된 하이퍼바이저: 기존 운영체제 위에서 애플리케이션으로 실행되므로 데스크톱 사용에 적합합니다. 이러한 키의 가장 일반적인 사용 사례는 개발 및 테스트입니다.

가상 머신 유형

일반적으로 가상 머신에는 프로세스 VM 및 시스템 VM의 두 가지 유형이 있습니다.

프로세스 VM(애플리케이션 가상 머신 또는 관리형 런타임 환경(MRE)이라고도 함)은 앱 또는 단일 프로세스가 실행되는 동안 OS의 가상 환경을 만들고 종료하는 이를 즉시 삭제합니다. 프로세스 VM을 사용하면 앱이나 프로세스가 모든 플랫폼에서 같은 방식으로 실행될 수 있는 플랫폼에 종속되지 않는 환경을 만들 수 있습니다. 구체적인 예로 App Engine의 Node.js 런타임을 들 수 있습니다. 이 런타임은 기본 운영체제와 관계없이 Node.js 프로그램이 Google Cloud의 관리형 환경에서 실행되도록 합니다.

시스템 VM(하드웨어 가상 머신이라고도 함)은 완전한 운영체제를 시뮬레이션하여 동일한 머신에 여러 OS 환경이 상주할 수 있도록 합니다. 일반적으로 사람들이 '가상 머신'을 언급할 때 말하는 VM 유형입니다. 시스템 VM은 자체 OS 및 애플리케이션을 실행할 수 있으며 하이퍼바이저는 물리적 호스트 머신의 리소스를 모니터링하고 시스템 VM 간에 분산합니다.

최근에는 클라우드의 가상 머신 또는 클라우드 VM라는 용어도 들어보셨을 텐데요. 클라우드 가상 머신은 클라우드의 가상 서버에서 실행되는 가상 머신입니다. 많은 클라우드 서비스 제공업체의 인프라에 클라우드 가상 머신을 만들고 실행할 수 있으므로 강력한 서버를 호스트 머신으로 사용하고 메모리 및 네트워크 스토리지와 같은 다른 소프트웨어 정의 서비스를 활용할 수 있습니다. 이러한 클라우드 VM은 일반적으로 리소스 최적화에 따라 다음과 같이 분류됩니다.

  • 범용 VM은 다양한 작업과 워크로드에 적합합니다.
  • 컴퓨팅 최적화 VM은 고성능 컴퓨팅(HPC) 및 컴퓨팅 집약적 애플리케이션을 위해 설계되었습니다.
  • 메모리 최적화 VM은 대규모 엔터프라이즈 데이터베이스와 대량의 메모리가 필요한 워크로드에 적합합니다.
  • 특수 VM은 AI/ML 및 고급 과학 컴퓨팅을 위해 GPU와 같은 특정 고급 리소스로 구성됩니다.
  • 컨피덴셜 VM은 메모리에서 처리되는 동안에도 데이터를 보호하는 안전한 유형입니다.

VM 및 컨테이너 비교

VM과 컨테이너는 모두 애플리케이션을 격리하는 데 사용되지만 근본적으로 다른 방식으로 격리합니다. 가상 머신은 운영체제를 포함한 전체 물리적 하드웨어 스택을 가상화합니다. 이러한 방식은 각 VM을 자체 포함된 격리된 환경으로 만들지만, VM이 더 커지고 더 많은 리소스를 차지하는 경향이 있다는 의미이기도 합니다.

반면 컨테이너는 OS 레이어만 가상화하므로 더 가볍습니다. 컨테이너는 각 애플리케이션과 함께 전체 운영체제를 번들링하는 대신 호스트의 OS 커널을 공유합니다. 이를 통해 컨테이너는 VM보다 적은 리소스를 사용하고 격리된 상태를 유지하면서 더 빠르게 시작할 수 있습니다. 이러한 특징 덕분에 컨테이너는 새로운 애플리케이션 개발에 매력적인 선택지가 되었습니다. 지난 10년간 개발된 많은 애플리케이션이 컨테이너용으로 작성되었기 때문에 전자상거래, 백오피스, AI를 포함한 많은 워크로드가 '컨테이너 네이티브'입니다.

가상 머신은 어떻게 사용되나요?

VM은 가상화된 컴퓨팅 리소스의 기본 구성요소이며 클라우드 또는 온프레미스 모두에서 애플리케이션, 도구 또는 환경을 만드는 데 중요한 역할을 합니다.

기업에서 가상 머신을 사용하는 보다 일반적인 방법은 다음과 같습니다.

여러 물리적 머신을 VM으로 재구성하고 다른 VM과 함께 호스트에서 실행할 수 있으므로 조직에서 무분별한 확산을 줄일 수 있습니다. VM은 시간이 지남에 따라 가장 성능에 민감한 애플리케이션까지 실행할 수 있는 것으로 입증되었습니다.

중앙 IT 조직은 각 비즈니스 단위 및 기능 영역에 VM을 프로비저닝하고 관리하여 리소스에 대한 액세스 속도를 높이는 동시에 기업 가시성을 개선할 수 있습니다.

VM은 전체 기능을 포함하지만 주변 인프라에 영향을 미치지 않는 테스트 및 개발을 위한 격리된 환경으로 작동할 수 있습니다.

VM은 쉽게 사용 설정 또는 사용 중지할 수 있고 마이그레이션 및 조정할 수 있으므로 개발 및 배포에 최대한의 유연성을 제공합니다.

VM이 제공하는 유연성과 이동성은 마이그레이션 이니셔티브 속도를 높이는 데 중요합니다.

VM을 사용하여 클라우드 환경에서 시스템을 복제하면 보안 및 확실성을 한층 더 강화할 수 있습니다. 클라우드 환경도 지속적으로 업데이트할 수 있습니다.

VM은 온프레미스 환경과 함께 클라우드 환경을 만들기 위한 기반을 제공하므로 레거시 시스템을 그대로 유지한 상태에서도 유연성을 높일 수 있습니다.

가상 머신의 이점

가상 머신은 특히 클라우드 VM을 선택하는 경우 다음을 비롯한 많은 이점을 제공합니다. 

확장성

클라우드 기반 VM을 사용하면 애플리케이션을 더 쉽게 확장하여 가용성과 성능을 높일 수 있습니다. 자체 물리적 서버에 투자하지 않고도 수요에 따라 용량을 늘릴 수 있습니다. 

이식성 

가상 머신은 하드웨어 리소스, 운영체제, 모든 애플리케이션을 갖춘 단일 소프트웨어 패키지입니다. VM을 한 서버에서 다른 서버로, 심지어 온프레미스 하드웨어에서 클라우드 환경으로 쉽게 이동할 수 있습니다. 

사용 공간 및 비용 감소

VM을 사용하면 단일 머신에서 여러 가상 환경을 실행할 수 있으므로 물리적 인프라 규모, 전기 요금, 유지보수 및 관리 비용을 절감할 수 있습니다. 

신속한 프로비저닝 

VM은 쉽게 복제할 수 있으므로 비즈니스에서 처음부터 설정할 필요 없이 동일한 새 환경을 빠르게 가동할 수 있습니다.

안정성

가상 머신과 가상 머신의 구성요소는 가상으로 존재하며 다른 게스트 VM과 격리된 상태로 유지됩니다. VM이 비정상 종료되어도 다른 게스트 VM은 계속 작동하며 물리적 호스트 머신은 영향을 받지 않습니다. 

보안 강화

가상 머신을 사용하면 호스트 운영체제에 영향을 주지 않고 여러 운영체제를 실행할 수 있습니다. VM을 사용하면 호스트 머신에 큰 위험을 주지 않고도 안전한 가상 환경을 만들어 앱을 테스트하거나 보안 취약점을 연구할 수 있습니다. Google Cloud의 컨피덴셜 VM과 같은 최신 VM 제품은 하드웨어 기반의 신뢰할 수 있는 실행 환경(TEE)을 통해 메모리에서 처리되는 데이터에 대한 사용 중 암호화를 제공합니다.

가상 머신의 잠재적 과제

하지만 VM을 실행할 때 유의해야 할 몇 가지 고려사항이 있습니다. 가상 머신의 가장 큰 잠재적 문제 중 하나는 호스트 머신이 충분히 강력하지 않은 경우 여러 운영체제와 하이퍼바이저 레이어를 실행하면 성능 비용이 발생할 수 있다는 점입니다. 또한 가상 하드웨어는 물리적 머신의 물리적 하드웨어만큼 효율적이지 않을 수 있습니다. 마지막으로, 대부분의 클라우드 제공업체는 제공하는 CPU와 메모리가 고정된 가상 머신을 제공하므로 리소스가 비효율적으로 사용됩니다.

하지만 클라우드 서비스 제공업체에서 제공하는 VM을 사용하면 이러한 우려를 대부분 해결할 수 있습니다. 클라우드 VM은 조직에서 단일 머신이 아닌 전체 데이터 센터 컴퓨터의 컴퓨팅 성능에 액세스할 수 있다는 점에서 기존 VM에 비해 많은 이점을 제공합니다. 또한 Google Compute Engine 가상 머신 크기는 커스텀 머신 유형을 제공합니다. 초과 용량이 포함될 수 있는 사전 정의된 머신 유형 중에서 선택하는 대신 워크로드에 맞게 CPU-메모리 비율을 조정하여 실제로 사용하는 리소스에 대해서만 비용을 지불할 수 있습니다. 이러한 타겟팅된 접근방식은 낭비를 최소화하고 클라우드 비용을 크게 절감할 수 있으며, 특히 온프레미스에서 Google Cloud로 또는 다른 클라우드 제공업체에서 Google Cloud로 마이그레이션할 때 효과적입니다. 또한 Compute Engine은 엔터프라이즈 워크로드, 고성능 메모리 구성 또는 머신러닝이나 고성능 컴퓨팅과 같은 까다로운 워크로드에 대한 고객의 구체적인 니즈에 맞게 최적화된 가상 머신 유형을 제공합니다.

Google Cloud는 VM 인스턴스의 보안 및 확인 가능한 무결성을 한층 더 강화하기 위해 보안 가상 머신도 제공합니다. Google Cloud 보안 가상 머신은 고급 플랫폼 보안 기능과 제어 기능을 활용하여 원격 공격, 권한 에스컬레이션, 악의적인 내부 사용자와 같은 위협으로부터 엔터프라이즈 워크로드를 보호합니다. 

일부 애플리케이션의 경우 개발자가 기존 VM을 완전히 우회하도록 선택할 수 있습니다. 컨테이너 조정(Google Kubernetes Engine - GKE) 및 서버리스 컴퓨팅(Cloud Run)과 같은 최신 배포 모델은 특정 사용 사례에 대한 강력한 대안으로, 팀이 VM 운영체제 관리를 우회하고 배포 속도를 개선하며 종종 더 큰 비용 절감을 달성할 수 있도록 해줍니다.

Google Cloud로 비즈니스 문제 해결

신규 고객에게는 Google Cloud에서 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
Google Cloud 영업 전문가와 고유한 문제에 대해 자세히 논의해 보세요.

다음 단계 수행

$300의 무료 크레딧과 20여 개의 항상 무료 제품으로 Google Cloud에서 빌드하세요.

Google Cloud