중첩된 가상화를 사용하여 Amazon EC2 인스턴스에서 하이퍼바이저 실행 - - Amazon Elastic Compute Cloud

중첩된 가상화를 사용하여 Amazon EC2 인스턴스에서 하이퍼바이저 실행

중첩된 가상화를 사용하면 가상 Amazon EC2 인스턴스 내에서 Hyper-V, KVM 등의 하이퍼바이저를 실행할 수 있습니다. 가상 EC2 인스턴스는 비베어 메탈 인스턴스입니다. 이 기능은 프로세서 수준의 가상화 지원을 가상 EC2 인스턴스에 추가하여 가상화 유연성을 확장하므로 인스턴스에서 실행되는 하이퍼바이저가 가상 머신을 생성하고 관리할 수 있습니다.

중첩된 가상화는 Docker Desktop, Windows Subsystem for Linux 2(WSL2), Android Studio 에뮬레이터, QEMU와 같은 개발 도구를 개발 워크플로에서 실행할 때 유용합니다. 이를 통해 특정 성능 및 가격 요구 사항을 충족하는 다양한 표준 Amazon EC2 가상 인스턴스 유형 중에서 선택할 수 있기 때문입니다.

중첩된 가상화 사용에 따른 추가 비용은 없습니다.

작동 방식

가상 EC2 인스턴스는 Nitro 하이퍼바이저가 있는 물리적 호스트에서 실행됩니다. 중첩된 가상화를 지원하기 위해 Nitro System은 인스턴스에 Intel VT-x와 같은 프로세서 확장을 전달하여 중첩 가상 머신의 실행을 용이하게 합니다. 중첩된 가상화 아키텍처는 물리적 AWS 인프라와 Nitro 하이퍼바이저(L0), 하이퍼바이저(L1)를 실행하는 EC2 인스턴스, 해당 인스턴스 내에 생성된 하나 이상의 가상 머신(L2)의 세 계층으로 구성됩니다.

고려 사항

중첩된 가상화 사용을 시작하기 전에 다음 사항을 고려하세요.

  • 지원되는 인스턴스 유형 - 중첩된 가상화는 현재 C8i, M8i 및 R8i 인스턴스에서 지원됩니다.

  • 지원되는 하이퍼바이저 - 현재 KVM과 Hyper-V가 지원되는 L1 하이퍼바이저입니다.

  • Windows 인스턴스 - Windows 인스턴스에서 중첩된 가상화가 활성화된 경우:

    • Credential Guard - VSM(Virtual Secure Mode)이 자동으로 비활성화됩니다.

    • 최대 절전 모드 - 인스턴스 최대 절전 모드와 재개는 지원되지 않습니다.

    • CPU 제한 - m8i.96xl과 같이 CPU가 192개 이상인 Windows 인스턴스에서는 지원되지 않습니다.

  • 보안 책임 - EC2 인스턴스에서 중첩된 가상화를 사용하는 경우 AWS가 ‘클라우드 보안’을 책임지며 기본 인프라를 보호하고 AWS Nitro System에서 제공하는 EC2 인스턴스 간의 강력한 격리 경계를 유지합니다. 고객은 EC2 인스턴스 내 운영 체제, 하이퍼바이저, 중첩된 가상 머신, 게스트 운영 체제, 애플리케이션 및 데이터 보안을 포함한 ‘클라우드 보안’을 책임집니다.

  • 성능 - AWS는 하드웨어 가상화 확장에 액세스해야 하고 성능에 민감하거나 지연 시간 요구 사항이 엄격한 워크로드를 실행하려는 고객에게 베어 메탈 인스턴스를 평가할 것을 권장합니다.

중첩된 가상화가 활성화된 새 인스턴스 시작

새 인스턴스를 시작할 때 중첩된 가상화를 켜서 하이퍼바이저와 그 위의 가상 머신을 실행할 수 있습니다.

사전 조건

Amazon EC2 인스턴스를 시작하는 데 필요한 IAM 권한이 있어야 합니다.

Console
인스턴스 시작 중 중첩된 가상화를 활성화하려면 다음을 수행하세요.
  1. 콘솔에서 인스턴스 시작 마법사를 사용하여 EC2 인스턴스 시작 절차를 수행하고 필요에 따라 인스턴스를 구성합니다.

  2. 지원되는 인스턴스 유형이 선택되었는지 확인합니다.

  3. 고급 세부 정보를 확장하고 중첩된 가상화에서 활성화를 선택합니다.

  4. Summary(요약) 패널에서 인스턴스 구성을 검토한 다음 Launch instance(인스턴스 시작)를 선택합니다.

AWS CLI
중첩된 가상화가 활성화된 인스턴스를 시작하려면 다음을 수행하세요.

run-instances 명령을 사용합니다.

aws ec2 run-instances \ --image-id ami-0abcdef1234567890 \ --instance-type r8i.4xlarge \ --cpu-options "NestedVirtualization=enabled" \ --key-name my-key-pair \ --placement "Tenancy=host"
PowerShell
중첩된 가상화가 활성화된 인스턴스를 시작하려면 다음을 수행하세요.

New-EC2Instance 명령을 사용합니다.

New-EC2Instance `     -ImageId ami-0abcdef1234567890 `     -InstanceType r8i.4xlarge `     -CpuOption @{NestedVirtualization='enabled'} `     -KeyName my-key-pair `     -Placement_Tenancy host

중첩된 가상화를 사용하도록 기존 인스턴스 구성

기존 Amazon EC2 인스턴스에서 중첩된 가상화를 켤 수 있습니다.

사전 조건
  • 인스턴스가 [stopped] 상태여야 합니다.

  • 인스턴스 유형이 중첩된 가상화를 지원해야 합니다.

Console
기존 인스턴스에서 중첩된 가상화를 활성화하려면 다음을 수행하세요.
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 인스턴스를 선택합니다.

  3. 인스턴스 테이블에서 수정하려는 인스턴스를 선택합니다.

  4. 작업, 인스턴스 설정, CPU 옵션 변경을 선택합니다.

  5. CPU 옵션 변경 페이지의 중첩된 가상화에서 다음 옵션 중 하나를 선택합니다.

    • 활성화 - 인스턴스에 대해 중첩된 가상화를 켭니다.

    • 비활성화 - 인스턴스에 대해 중첩된 가상화를 끕니다.

  6. 변경 사항을 검토하고 변경을 선택하여 새 CPU 옵션을 적용합니다.

AWS CLI
기존 인스턴스에서 중첩된 가상화를 활성화하려면 다음을 수행하세요.

먼저 인스턴스를 중지하고 modify-instance-cpu-options 명령을 사용합니다.

aws ec2 modify-instance-cpu-options \ --instance-id i-1234567890abcdef0 \ --core-count 4 \ --threads-per-core 2 \ --nested-virtualization enabled
PowerShell
기존 인스턴스에서 중첩된 가상화를 활성화하려면 다음을 수행하세요.

먼저 인스턴스를 중지하고 Edit-EC2InstanceCpuOption 명령을 사용합니다.

Edit-EC2InstanceCpuOption `     -InstanceId i-1234567890abcdef0 `     -CoreCount 4 `     -ThreadsPerCore 2 `     -NestedVirtualization enabled