Pourquoi certains types d'instance sont-ils désactivés lorsque j'essaie de lancer une instance EC2 à partir d'une AMI ?

Dernière mise à jour : 18/12/2020

J’essaie de lancer une instance Amazon Elastic Compute Cloud (Amazon EC2) à partir d'une Amazon Machine Image (AMI). Pourquoi le type d'instance que je souhaite lancer est-il désactivé ?

Brève description

Les types d'instance A1, T4g, M6g, C6g et R6g utilisent des processeurs AWS Graviton. Les processeurs AWS Graviton utilisent l'architecture aarch64 (ARM64) au lieu de x86_64 (AMD64).

L'architecture ARM64 utilise un ensemble d'instructions pour processeur différent des instructions utilisées par la famille d'architecture x86_64. Ces ensembles d'instructions fournissent un mécanisme d'envoi de commandes au processeur. Lors de la compilation du logiciel, le code logiciel lisible par l'homme se convertit en instructions pour processeur spécifiques à une architecture de processeur. Tout processeur de ce type d'architecture peut utiliser ces instructions pour processeur. Cependant, le processeur d'un type d'architecture ne peut pas comprendre l’ensemble d'instructions d'un autre type. Ainsi, une AMI compilée à partir d'une architecture fonctionne uniquement sur les processeurs de ce type d'architecture.

Les architectures ARM64 et x86_64 utilisent différents ensembles d'instructions. Cela signifie que les instances EC2 et les AMI créées à l'aide de l'architecture x86_64 ne sont pas compatibles avec les instances utilisant l'architecture ARM64. Lors du lancement ou de la modification de types d'instances, cette incompatibilité entraîne l'un des scénarios suivants :

  • Lors du lancement d'un type d'instance Graviton avec l'AMI EC2 sélectionnée, l'assistant de lancement peut afficher les nouveaux types d'instance comme étant désactivés.
  • Si vous modifiez le type d'instance d'une instance EC2 déjà déployée qui n'utilise actuellement pas le nouveau type d'architecture, vous pouvez recevoir une erreur. Le message d'erreur ressemble à :
    « “m6g.large” n'est pas un type d'instance valide pour l’instance “i-xyz” de l'architecture “x86_64”. »

Pour utiliser une architecture différente, créez d'abord une nouvelle instance EC2 ou une nouvelle AMI.

Remarque : Une AMI peut être incompatible avec votre type d'instance sans que la mise en réseau améliorée soit activée. Pour plus d’informations, consultez Comment activer et configurer la mise en réseau améliorée sur mes instances EC2 ?

Résolution

Lancement de nouvelles instances

Toutes les principales distributions Linux sont disponibles sur l'architecture ARM. Pour lancer une instance à l'aide de l'architecture ARM :

  1. Ouvrez la console Amazon EC2.
  2. Choisissez Lancer une instance, Lancer une instance.
  3. Choisissez 64-bit (ARM) en regard de l'AMI correspondant à la version ARM de votre distribution préférée, puis choisissez Sélectionner.
  4. Terminez le lancement de l'instance.

Après avoir démarré l'instance, elle se comporte comme n'importe quelle instance EC2.

Modification des types d'instance

À cause des différents ensembles d'instructions, un changement direct de type d'instance n'est pas possible entre les types d'architecture. Pour migrer votre système vers la nouvelle architecture, procédez comme suit :

  1. Lancez une nouvelle instance EC2 avec la configuration souhaitée.
  2. Migrez votre application vers la nouvelle instance EC2.

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?