Use a virtualização aninhada para executar hipervisores em instâncias do Amazon EC2 - Amazon Elastic Compute Cloud

Use a virtualização aninhada para executar hipervisores em instâncias do Amazon EC2

A virtualização aninhada permite que você execute hipervisores como Hyper-V e KVM dentro de instâncias virtuais do Amazon EC2. As instâncias virtuais do EC2 não são instâncias bare metal. Esse recurso amplia a flexibilidade da virtualização ao adicionar suporte de virtualização em nível de processador às instâncias virtuais do EC2, permitindo que um hipervisor em execução na sua instância crie e gerencie máquinas virtuais.

A virtualização aninhada pode ajudar quando você executa ferramentas de desenvolvimento como Docker Desktop, Windows Subsystem for Linux 2 (WSL2), emuladores do Android Studio ou QEMU em seu fluxo de trabalho de desenvolvimento, pois permite escolher entre uma ampla variedade de tipos de instâncias virtuais padrão do Amazon EC2 que atendem aos seus requisitos específicos de desempenho e preço.

Não há custo adicional para usar a virtualização aninhada.

Como funcionam

As instâncias virtuais do EC2 são executadas em um host físico que tem o hipervisor Nitro. Para oferecer suporte à virtualização aninhada, o Sistema Nitro transfere as extensões do processador, como Intel VT-x, para instâncias para facilitar a execução de máquinas virtuais aninhadas. A arquitetura de virtualização aninhada consiste em três camadas: a infraestrutura física da AWS e o hipervisor Nitro (L0), sua instância EC2 executando um hipervisor (L1) e uma ou mais máquinas virtuais criadas nessa instância (L2).

Considerações

Antes de começar a usar a virtualização aninhada, considere o seguinte:

  • Tipos de instância compatíveis: atualmente, a virtualização aninhada é compatível com instâncias C8i, M8i e R8i.

  • Hipervisores compatíveis: atualmente, o KVM e o Hyper-V são os hipervisores L1 compatíveis.

  • Instâncias do Windows: quando a virtualização aninhada está habilitada em uma instância do Windows:

    • Credential Guard: o Virtual Secure Mode (VSM) é automaticamente desativado.

    • Hibernação: a hibernação e a retomada da instância não são compatíveis.

    • Limite de CPU: não é compatível em instâncias do Windows com mais de 192 CPUs, como m8i.96xl.

  • Responsabilidades de segurança: ao usar a virtualização aninhada em instâncias do EC2, a AWS é responsável pela “segurança da nuvem”, protegendo a infraestrutura subjacente e mantendo os fortes limites de isolamento entre as instâncias do EC2 fornecidos pelo AWS Nitro System. Os clientes são responsáveis pela “segurança na nuvem”, que inclui proteger o sistema operacional, o hipervisor, as máquinas virtuais aninhadas, os sistemas operacionais convidados, as aplicações e os dados nas instâncias do EC2.

  • Desempenho: a AWS recomenda que os clientes que desejam executar workloads que exijam acesso a extensões de virtualização de hardware, sejam sensíveis ao desempenho ou tenham requisitos rígidos de latência, avaliem instâncias bare metal.

Iniciar uma nova instância com a virtualização aninhada

Ao iniciar uma nova instância, você pode ativar a virtualização aninhada para executar hipervisores e máquinas virtuais nela.

Pré-requisitos

É necessário ter as permissões do IAM exigidas para iniciar uma instância do Amazon EC2.

Console
Para habilitar um virtualização aninhada durante o início da instância
  1. Siga o procedimento Executar uma instância do EC2 usando o assistente de inicialização de instâncias no console e configure sua instância conforme necessário.

  2. Verifique se um tipo de instância compatível está selecionado.

  3. Expanda os detalhes avançados e em Virtualização aninhada, escolha Habilitar.

  4. No painel Resumo, analise a configuração da instância e selecione Iniciar instância.

AWS CLI
Para iniciar uma instância com a virtualização aninhada habilitada

Use o comando 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
Para iniciar uma instância com a virtualização aninhada habilitada

Use o comando New-EC2Instance.

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

Configurar uma instância existente para usar a virtualização aninhada

Você pode ativar a virtualização aninhada em uma instância existente do Amazon EC2.

Pré-requisitos
  • A instância deve se encontrar no estado stopped.

  • O tipo de instância deve permitir a virtualização aninhada.

Console
Para habilitar a virtualização aninhada em uma instância existente
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Instances (Instâncias).

  3. Selecione a instância que você deseja modificar na tabela de instâncias.

  4. Escolha Ações, Configurações de instância, Alterar opções de CPU.

  5. Na página Alterar opções de CPU, para Virtualização aninhada, escolha uma das seguintes opções:

    • Habilitar: ativa a virtualização aninhada para a instância

    • Desabilitar: desativa a virtualização aninhada para a instância

  6. Confira suas alterações e escolha Alterar para aplicar as novas opções de CPU.

AWS CLI
Para habilitar a virtualização aninhada em uma instância existente

Primeiro, interrompa a instância e use o comando 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
Para habilitar a virtualização aninhada em uma instância existente

Primeiro, interrompa a instância e use o comando Edit-EC2InstanceCpuOption.

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