Pourquoi ne puis-je pas démarrer ou lancer mon instance EC2 ?

Date de la dernière mise à jour : 08/10/2021

Je ne peux pas lancer ou démarrer mon instance Amazon Elastic Compute Cloud (Amazon EC2). Comment puis-je résoudre ce problème ?

Brève description

Plusieurs raisons peuvent expliquer l’impossibilité de lancer ou de démarrer votre instance EC2. Si vous aucun code d'erreur n’apparaît lors de la tentative de démarrage de l'instance, exécutez la commande describe-instances dans l'AWS Command Line Interface (AWS CLI). Ensuite, spécifiez l'ID d'instance pour déterminer la raison du problème. Dans l'exemple suivant, remplacez MYINSTANCE par l'ID de l'instance que vous tentez de démarrer.

Remarque : si vous recevez des erreurs lors de l'exécution de commandes AWS CLI, vérifiez que vous utilisez la version la plus récente d'AWS CLI.

aws ec2 describe-instances --instance-id MYINSTANCE --output json

Vérifiez le message StateReason dans la réponse JSON renvoyée par la commande.

Dans l'exemple suivant, le message StateReason renvoyé est « Client.InternalError ».

"StateReason": {
     "Message": "Client.InternalError: Client error on launch",
     "Code": "Client.InternalError"
   },

Résolution

Les erreurs courantes qui peuvent vous empêcher de démarrer votre instance sont les suivantes :

InsufficientInstanceCapacity

Message d'erreur : « Une erreur s'est produite (InsufficientInstanceCapacity) lors de l'appel de l'opération RunInstances (nombre maximal de tentatives atteint : 4). Nous ne disposons actuellement pas d'une capacité suffisante dans la zone de disponibilité que vous avez demandée. » Ce message d'erreur s'affiche si la capacité à la demande disponible n'est pas suffisante pour traiter votre requête.

Pour plus d'informations sur la résolution de cette erreur, consultez Comment résoudre les erreurs InsufficientInstanceCapacity lors du démarrage ou du lancement d'une instance EC2 ?

InstanceLimitExceeded

Message d'erreur : « Aucune instance supplémentaire ne peut être exécutée conformément à votre quota. » Ce message d'erreur s'affiche si vous avez atteint le nombre maximal d'instances autorisées dans votre région.

Pour plus d'informations sur la résolution de cette erreur, consultez Comment résoudre les erreurs InstanceLimitExceeded lors du démarrage ou du lancement d'une instance EC2 ?

UnauthorizedOperation

Le message d'erreur UnauthorizedOperation indique que l'utilisateur qui tente de lancer l'instance ne dispose pas des autorisations requises. Pour plus d'informations sur la résolution de cette erreur, consultez Pourquoi est-ce que je reçois le message d'erreur « Vous n'êtes pas autorisé à effectuer cette opération » lorsque j'essaye de lancer une instance EC2 ?

La configuration demandée n'est actuellement pas prise en charge

Cette erreur est causée par les deux problèmes suivants :

1.    Le type d'instance spécifié n'est pas pris en charge dans la zone de disponibilité demandée. Exécutez la commande aws ec2 describe-instance-type-offerings dans l'interface de ligne de commande AWS CLI pour vérifier la disponibilité des types d'instance dans des zones de disponibilité spécifiques. Ensuite, lancez l'instance dans une zone de disponibilité prise en charge.

Par exemple, utilisez la commande suivante pour vérifier la disponibilité du type d'instance c5.2xlarge dans toutes les zones de disponibilité dans us-east-1 :

aws ec2 describe-instance-type-offerings --location-type availability-zone --filters Name=instance-type,Values=c5.2xlarge --region us-east-1

2.    L'image Amazon Machine Image (AMI) utilisée pour lancer l'instance ne prend pas en charge le type d'instance sélectionné. Reportez-vous à la description de l'AMI dans la documentation AWS avant de sélectionner le type d'instance ou la famille. Ce problème se produit généralement lors de l'utilisation d'AMI AWS Marketplace et de leur lancement à l'aide de l’interface de ligne de commande AWS CLI. Lorsque vous lancez des instances à partir de la console Amazon EC2, les instances non prises en charge ne sont pas disponibles.

Client.InternalError

Il y a plusieurs raisons pour lesquelles vous pourriez recevoir cette erreur :

  • Un volume Amazon Elastic Block Store (Amazon EBS) n'est pas correctement attaché à l'instance.
  • Un volume EBS qui est attaché à l'instance est à l'état ERROR (Erreur).
  • Un volume EBS chiffré est attaché à l'instance. Cependant, vous ne disposez pas des autorisations nécessaires pour accéder aux AWS Key Management Services (AWS KMS) pour le déchiffrement.

Pour plus d'informations sur la résolution de ces problèmes, consultez Je ne parviens pas à démarrer mon instance et Client.InternalError lors de l'exécution de la commande describe-instances. Comment résoudre ce problème ?

Erreurs de disque saturé

Des erreurs de disque saturé se produisent lorsque l'espace sur l'instance est insuffisant et que le service d'audit arrête la machine dès son démarrage.

Remarque : il est recommandé de sauvegarder vos données en créant un instantané de vos volumes avant de continuer.

Important :

Ces étapes de résolution nécessitent un arrêt et un démarrage de l'instance. Soyez conscient des points suivants :

  • Les données des volumes de stockage d'instance sont perdues lorsque l’instance est arrêtée. Pour plus d'informations, consultez Déterminer le type de périphérique racine de votre instance.
  • Si votre instance fait partie d'un groupe Amazon EC2 Auto Scaling, l'arrêt de l'instance peut la résilier. Les instances lancées avec Amazon EMR, AWS CloudFormation ou AWS Elastic Beanstalk peuvent faire partie d'un groupe Auto Scaling AWS. Dans ce cas, la désactivation dépend des paramètres de protection définis pour votre groupe Auto Scaling. Si votre instance fait partie d'un groupe Auto Scaling, supprimez-la temporairement de ce dernier avant de suivre les étapes de résolution.
  • L'arrêt et le redémarrage de l'instance entraînent la modification de son adresse IP publique. Lorsque vous acheminez du trafic externe vers votre instance, il est recommandé d'utiliser une adresse IP Elastic plutôt qu'une adresse IP publique.

Pour résoudre les erreurs de disque saturé, procédez comme suit :

1.    Ouvrez la console Amazon EC2.

2.    Sélectionnez Instances dans le panneau de navigation, puis sélectionnez l'instance.

3.    Arrêtez l'instance.

4.    Détachez le volume racine EBDS (/dev/xvda ou /dev/sda1) de l'instance arrêtée.

5.    Lancez une nouvelle instance EC2 dans la même zone de disponibilité que l’instance affectée. Cette nouvelle instance devient votre instance de secours.

6.    Attachez le volume racine que vous avez détaché à l'étape 4 à l'instance de secours en tant que périphérique secondaire.

Remarque : vous pouvez utiliser un nom de périphérique différent lors de l'attachement de volumes secondaires.

7.    Connectez-vous à l'instance EC2 en utilisant SSH.

8.    Créez un répertoire de point de montage pour le nouveau volume attaché à l'instance de secours à l'étape 6. Dans l'exemple suivant, le répertoire du point de montage est /mnt/rescue.

$ sudo mkdir /mnt/rescue

9.    Montez le volume dans le répertoire que vous avez créé à l'étape 8.

$ sudo mount /dev/xvdf /mnt/rescue

Remarque : le périphérique (/dev/xvdf, dans l'exemple précédent) peut être attaché à l'instance de secours avec un nom différent. Utilisez la commande lsblk pour afficher vos périphériques de disque disponibles, ainsi que leurs points de montage, afin de déterminer les noms de périphériques corrects.

10.    Augmentez la taille du volume racine.

11.    Étendez la partition.

12.    Exécutez la commande umount pour démonter le volume.

$ sudo umount /mnt/rescue

13.    Détachez le volume de l'instance temporaire.

14.    Attachez le volume à l'instance d'origine, puis démarrez l'instance pour vérifier la bonne résolution du problème.

15.    Examinez la configuration du service d'audit pour vous assurer qu'il n'a pas la possibilité d'arrêter (« shutdown ») la machine en cas d'espace insuffisant. La configuration du service d'audit doit inclure les options suivantes dans /etc/audit/auditd.conf sur Amazon Linux et Amazon Linux 2 :

max_log_file_action = ROTATE
admin_space_left_action = SUSPEND
disk_full_action = SUSPEND
disk_error_action = SUSPEND