View a markdown version of this page

Utiliser la virtualisation imbriquée pour exécuter des hyperviseurs dans les instances Amazon EC2 - Amazon Elastic Compute Cloud

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utiliser la virtualisation imbriquée pour exécuter des hyperviseurs dans les instances Amazon EC2

La virtualisation imbriquée vous permet d'exécuter des hyperviseurs tels que KVM dans des Hyper-V instances virtuelles Amazon EC2. Les instances virtuelles EC2 ne sont pas des instances bare metal. Cette fonctionnalité étend la flexibilité de la virtualisation en ajoutant la prise en charge de la virtualisation au niveau du processeur aux instances virtuelles EC2, permettant à un hyperviseur exécuté dans votre instance de créer et de gérer des machines virtuelles.

La virtualisation imbriquée peut vous aider lorsque vous utilisez des outils de développement tels que Docker Desktop, Windows Subsystem for Linux 2 (WSL2), des émulateurs Android Studio ou QEMU dans votre flux de développement, car elle vous permet de choisir parmi une large gamme de types d'instances virtuelles Amazon EC2 standard qui répondent à vos exigences spécifiques en termes de performances et de prix.

L'utilisation de la virtualisation imbriquée n'entraîne aucun coût supplémentaire.

Comment ça marche

Les instances virtuelles EC2 s'exécutent sur un hôte physique doté de l'hyperviseur Nitro. Pour prendre en charge la virtualisation imbriquée, le système Nitro transmet les extensions de processeur, telles qu'Intel VT-x, aux instances afin de faciliter l'exécution de machines virtuelles imbriquées. L'architecture de virtualisation imbriquée comprend trois couches : l' AWS infrastructure physique et l'hyperviseur Nitro (L0), votre instance EC2 exécutant un hyperviseur (L1) et une ou plusieurs machines virtuelles créées au sein de cette instance (L2).

Considérations

Avant de commencer à utiliser la virtualisation imbriquée, tenez compte des points suivants :

  • Types d'instances pris en charge — La virtualisation imbriquée est actuellement prise en charge sur les types d'instances suivants :

    • Usage général  : M7i | | M8i M7i-flex | M8id | M8i-flex

    • Optimisation du calcul  : C7i | | C8i C7i-flex | C8iD | C8i-flex

    • Mémoire optimisée  : R7i | R7iZ | R8i | R8iD | | X8i R8i-flex

    • Stockage optimisé  : i7i | i7IE

  • Hyperviseurs pris en charge  : KVM et KVM Hyper-V sont actuellement les hyperviseurs L1 pris en charge.

  • Instances Windows  : lorsque la virtualisation imbriquée est activée sur une instance Windows :

    • Credential Guard — Le mode virtuel sécurisé (VSM) est automatiquement désactivé.

    • Hibernation  : la mise en veille prolongée et la reprise de l'instance ne sont pas prises en charge.

    • Limite de processeur  : non prise en charge sur les instances Windows dotées de plus de 192 processeurs, telles quem8i.96xl.

  • Responsabilités en matière de sécurité  : lors de l'utilisation de la virtualisation imbriquée sur des instances EC2, AWS il est responsable de la « sécurité du cloud », de la protection de l'infrastructure sous-jacente et du maintien des fortes limites d'isolation entre les instances EC2 fournies par le système Nitro. AWS Les clients sont responsables de la « sécurité dans le cloud », qui inclut la sécurisation du système d'exploitation, de l'hyperviseur, des machines virtuelles imbriquées, des systèmes d'exploitation invités, des applications et des données au sein des instances EC2.

  • Performances  : AWS recommande aux clients qui souhaitent exécuter des charges de travail nécessitant l'accès à des extensions matérielles de virtualisation, qui sont sensibles aux performances ou qui ont des exigences de latence strictes, d'évaluer les instances bare metal.

Lancer une nouvelle instance avec la virtualisation imbriquée activée

Lorsque vous lancez une nouvelle instance, vous pouvez activer la virtualisation imbriquée pour y exécuter des hyperviseurs et des machines virtuelles.

Console
Pour activer la virtualisation imbriquée lors du lancement de l'instance
  1. Suivez la procédure Lancez une instance EC2 à l’aide de l’assistant de lancement d’instance de la console et configurez votre instance selon vos besoins.

  2. Assurez-vous qu'un type d'instance pris en charge est sélectionné.

  3. Développez les détails avancés et, pour la virtualisation imbriquée, choisissez Activer.

  4. Dans le panneau Summary (Résumé), vérifiez la configuration de votre instance, puis choisissez Launch instance (Lancer l’instance).

AWS CLI
Pour lancer une instance avec la virtualisation imbriquée activée

Utilisez la commande run-instances.

aws ec2 run-instances \ --image-id ami-0abcdef1234567890 \ --instance-type r8i.4xlarge \ --cpu-options "NestedVirtualization=enabled" \ --key-name my-key-pair
PowerShell
Pour lancer une instance avec la virtualisation imbriquée activée

Utilisez la commande New-EC2Instance.

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

Configurer une instance existante pour utiliser la virtualisation imbriquée

Vous pouvez activer la virtualisation imbriquée sur une instance Amazon EC2 existante.

Conditions préalables
  • L'instance doit être à l'état stopped.

  • Le type d'instance doit prendre en charge la virtualisation imbriquée.

Console
Pour activer la virtualisation imbriquée sur une instance existante
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Dans le panneau de navigation, choisissez Instances.

  3. Sélectionnez l'instance que vous souhaitez modifier dans le tableau des instances.

  4. Choisissez Actions, Paramètres de l'instance, Modifier les options du processeur.

  5. Sur la page Modifier les options du processeur, pour la virtualisation imbriquée, choisissez l'une des options suivantes :

    • Activer  : active la virtualisation imbriquée pour l'instance

    • Désactiver  : désactive la virtualisation imbriquée pour l'instance

  6. Passez en revue vos modifications, puis choisissez Modifier pour appliquer les nouvelles options de processeur.

AWS CLI
Pour activer la virtualisation imbriquée sur une instance existante

Arrêtez d'abord l'instance, puis utilisez la commande https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-cpu-options.html 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
Pour activer la virtualisation imbriquée sur une instance existante

Arrêtez d'abord l'instance, puis utilisez la Edit-EC2InstanceCpuOption commande.

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

Trouvez les types d'instances qui prennent en charge la virtualisation imbriquée

Vous pouvez trouver les types d'instances Amazon EC2 qui prennent en charge la virtualisation imbriquée. Vous pouvez effectuer une requête sur l'ensemble d'une instance Région AWS ou vérifier un type d'instance spécifique.

AWS CLI
Pour répertorier toutes les familles d'instances qui prennent en charge la virtualisation imbriquée dans une région

Utilisez la commande describe-instance-types avec le processor-info.supported-features filtre défini sur la valeur suivante : nested-virtualization

aws ec2 describe-instance-types --region us-east-1 \ --filters "Name=processor-info.supported-features,Values=nested-virtualization" \ --query "InstanceTypes[].InstanceType" --output text \ | tr '\t' '\n' | cut -d. -f1 | sort -u
Pour vérifier si un type d'instance spécifique prend en charge la virtualisation imbriquée

Utilisez la commande describe-instance-types et interrogez le ProcessorInfo.SupportedFeatures champ du type d'instance spécifié :

aws ec2 describe-instance-types \ --instance-types m8i.2xlarge \ --query "InstanceTypes[].ProcessorInfo.SupportedFeatures"

Si le type d'instance prend en charge la virtualisation imbriquée, la sortie inclut. nested-virtualization Sinon, la commande renvoie un tableau vide ([]).

PowerShell
Pour répertorier toutes les familles d'instances qui prennent en charge la virtualisation imbriquée dans une région

Utilisez la Get-EC2InstanceType commande avec le processor-info.supported-features filtre réglé sur la valeur suivante nested-virtualization :

Get-EC2InstanceType -Region us-east-1 -Filter @{ Name='processor-info.supported-features'; Values='nested-virtualization' } | ForEach-Object { ($_.InstanceType -split '\.')[0] } | Sort-Object -Unique
Pour vérifier si un type d'instance spécifique prend en charge la virtualisation imbriquée

Utilisez la Get-EC2InstanceType commande et interrogez la ProcessorInfo.SupportedFeatures propriété du type d'instance spécifié :

(Get-EC2InstanceType -InstanceType m8i.2xlarge).ProcessorInfo.SupportedFeatures

Si le type d'instance prend en charge la virtualisation imbriquée, la sortie inclut. nested-virtualization Dans le cas contraire, la commande ne renvoie aucune sortie.