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

Lecture de 8 minute(s)
0

Je ne parviens ni à lancer une nouvelle instance Amazon Elastic Compute Cloud (Amazon EC2) ni à démarrer mon instance existante.

Résolution

Il est possible que vous ne puissiez pas lancer ou démarrer votre instance EC2 pour plusieurs raisons. Si vous ne recevez aucun code d'erreur lorsque vous essayez de démarrer l'instance, procédez comme suit :

1.    Vérifiez la présence de l'événement StartInstances dans AWS CloudTrail.

-ou-

Exécutez la commande describe-instances de l'interface de la ligne de commande (AWS CLI) en spécifiant l'ID de l'instance pour révéler la source du problème. Dans l'exemple suivant, remplacez MYINSTANCE par l'ID de l'instance que vous essayez de démarrer.

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

Consultez le message StateReason dans la réponse JSON renvoyée par la commande. Dans l'exemple de réponse suivant, la propriété StateReason qui est renvoyée est Client.InternalError :

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

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

2.    Passez en revue les erreurs courantes suivantes pour résoudre le problème.

InsufficientInstanceCapacity

L'erreur suivante se produit lors du lancement d'une nouvelle instance ou du redémarrage d'une instance arrêtée si la capacité à la demande disponible est insuffisante pour répondre à votre demande :

An error occurred (InsufficientInstanceCapacity) when calling the StartInstances operation (reached max retries: 4): Insufficient capacity.)

Cette erreur se produit si la capacité à la demande n'est pas suffisante pour traiter votre demande.

Pour corriger cette erreur, reportez-vous à Comment puis-je résoudre les erreurs de type InsufficientInstanceCapacity qui surviennent lors du démarrage ou du lancement d'une instance EC2 ?

InstanceLimitExceeded

L'erreur suivante se produit lorsque vous lancez un nombre d'instances supérieur au maximum autorisé dans une région AWS :

InstanceLimitExceeded: Your quota allows for 0 more running instance(s).

Si vous recevez ce message, envoyez une demande d'augmentation de quota à AWS Support. Tâchez de spécifier, dans votre demande, le type d'instance que vous essayez de lancer et la région AWS dans laquelle vous effectuez le lancement.

Pour corriger cette erreur, reportez-vous à Comment puis-je corriger les erreurs de type InstanceLimitExceeded survenant lors du démarrage ou du lancement d'une instance EC2 ?

UnauthorizedOperation

L'erreur UnauthorizedOperation se produit lorsque l'utilisateur qui essaie de lancer l'instance ne dispose pas des autorisations nécessaires. Pour corriger cette erreur, reportez-vous à Comment puis-je décoder un message d'échec d'autorisation après avoir reçu une erreur « UnauthorizedOperation » lors du lancement d'une instance EC2 ?

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

Cette erreur peut avoir deux causes :

1.    Le type d'instance spécifié n'est pas pris en charge dans la zone de disponibilité demandée. Pour vérifier la disponibilité des types d'instance dans des zones de disponibilité spécifiques, exécutez la commande aws ec2 describe-instance-type-offerings dans l'interface de la ligne de commande AWS (AWS CLI). Lancez ensuite 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é de 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'Amazon Machine Image (AMI) utilisée pour lancer l'instance ne prend pas en charge le type d'instance sélectionné. Avant de sélectionner le type ou la famille d'instances, prenez connaissance des descriptions des AMI sur AWS Marketplace. Ce problème a tendance à se produire lorsque l'on utilise des AMI AWS Marketplace et que l'on tente de lancer des instances non prises en charge à l'aide de l'AWS CLI. Lorsque les instances sont lancées depuis la console Amazon EC2, celles qui ne sont pas prises en charge ne sont pas disponibles.

Client.InternalError

Voici les sources les plus courantes de cette erreur :

  • Un volume Amazon Elastic Block Store (Amazon EBS) n'est pas correctement associé à l'instance.
  • Un volume EBS attaché à l'instance a un statut de type ERREUR.
  • Un volume EBS chiffré est attaché à l'instance, mais vous ne disposez pas des autorisations nécessaires pour accéder aux services AWS Key Management (AWS KMS) à des fins de déchiffrement.

Pour résoudre ces problèmes, reportez-vous à Comment puis-je résoudre les problèmes d'arrêt ou de résiliation lors du lancement d'une instance Amazon EC2 ?

Erreurs de saturation du disque

Une erreur de saturation du disque se produit lorsqu'une instance manque d'espace et que le service d'audit arrête la machine au démarrage.

Remarque : avant de poursuivre, il est recommandé de créer un instantané pour sauvegarder les données de vos volumes.

Important : ces étapes de résolution nécessitent le démarrage et l'arrêt de l'instance. Vous devez tenir compte des points suivants :

  • Les données de vos volumes de stockage d'instance sont perdues lorsque l'instance est arrêtée. Pour en savoir plus, reportez-vous à Déterminer le type de périphérique racine de votre instance.
  • Si vous arrêtez une instance qui fait partie d'un groupe Amazon EC2 Auto Scaling, vous pouvez mettre fin à l'instance. Les instances que vous lancez avec Amazon EMR, AWS CloudFormation ou AWS Elastic Beanstalk peuvent faire partie d'un groupe AWS Auto Scaling. Dans ce scénario, la mise hors service d'une instance dépend des paramètres de protection évolutive de l'instance de votre groupe Auto Scaling. Si votre instance fait partie d'un groupe Auto Scaling, vous devez la supprimer temporairement du groupe Auto Scaling avant de continuer.
  • L'arrêt et le démarrage de votre instance modifient l'adresse IP publique de l'instance. Lorsque vous acheminez le trafic externe vers votre instance, il est recommandé d'utiliser une adresse IP Elastic au lieu d'une adresse IP publique.

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

1.    Ouvrez la console Amazon EC2.

2.    Choisissez Instances dans le volet de navigation, puis sélectionnez l'instance.

3.    Arrêtez l'instance.

4.    Détachez le volume racine EBS (/dev/xvda pour Linux) de l'instance arrêtée.

5.    Lancez une nouvelle instance EC2 dans la même zone de disponibilité que l'instance défaillante. La nouvelle instance devient votre instance de secours.

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

Remarque : lorsque vous connectez des volumes secondaires, vous pouvez utiliser différents noms de périphériques.

7.    Connectez-vous à votre instance de secours via SSH.

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

Remarque : les commandes $ sudo suivantes sont uniquement applicables aux environnements Linux :

$ sudo mkdir /mnt/rescue

9.    Montez le volume dans le répertoire créé à l'étape 8 :

$ sudo mount /dev/xvdf /mnt/rescue

Remarque : le périphérique (/dev/xvdf, dans cet exemple) peut avoir un nom de périphérique différent pour l'instance de secours à laquelle il est associé. 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 pertinents.

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 avec le nom du périphérique (/dev/xvda pour Linux), puis démarrez l'instance pour vérifier qu'elle démarre correctement.

  1.    Vérifiez la configuration du service d'audit pour vous assurer qu'il n'est pas possible d'arrêter (éteindre) la machine s'il manque d'espace. Pour Amazon Linux, Amazon Linux 2 et Amazon Linux 2023, vérifiez que la configuration du service d'audit inclut bien les options suivantes dans /etc/audit/auditd.conf :
max_log_file_action = ROTATE
admin_space_left_action = SUSPEND
disk_full_action = SUSPEND
disk_error_action = SUSPEND

Client.InvalidParameterValue

L'erreur InvalidParameterValue signifie qu'un paramètre spécifié dans la demande n'est pas valide, n'est pas pris en charge ou ne peut pas être utilisé. Le message renvoyé fournit une explication de la valeur de l'erreur. Par exemple, si aucun volume racine n'est associé à l'instance dans /dev/sda1 ou /dev/xvda (en fonction de l'AMI), l'instance ne démarrera pas. Dans ce cas, une entrée de ce type apparaîtra dans AWS CloudTrail :

An error occurred (InvalidParameterValue) when calling the StartInstances operation: Invalid value 'i-xxxxxxxxxxxxxxxxx' for instanceId. Instance does not have a volume attached at root (/dev/sda1)

Pour résoudre ce problème, servez-vous du message d'erreur pour modifier le paramètre approprié. Par exemple, pour résoudre l'erreur dans l'exemple précédent, vous devez associer le volume racine à l'instance dans /dev/sda1, puis démarrer l'instance. Pour en savoir plus, reportez-vous à Codes d'erreur pour l'API Amazon EC2.

Informations connexes

Résoudre des problèmes liés au lancement d'instances – Linux

Résoudre des problèmes liés au lancement d'instances – Windows

Guide de bonnes pratiques Amazon ECS

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an