Comment résoudre les problèmes d'arrêt ou de résiliation lors du lancement d'une instance Amazon EC2 ?

Lecture de 5 minute(s)
0

Lorsque j'essaie de démarrer mon instance Amazon Elastic Compute Cloud (Amazon EC2), elle s'arrête ou ne démarre pas.

Brève description

Les raisons suivantes sont les causes les plus courantes du message InternalError d'une instance Amazon EC2 :

  • Votre volume Amazon Elastic Block Store (Amazon EBS) n'est pas correctement associé à l'instance.
  • Un volume EBS qui est associé à l'instance est à l'état d'erreur.
  • Un volume EBS chiffré est associé à l'instance.

Si votre instance ne démarre pas et qu'aucun code d'erreur ne s'affiche, exécutez la commande describe-instances dans l'interface de la ligne de commande AWS (AWS CLI). Indiquez ensuite l'ID de l'instance. Vérifiez le message StateReason renvoyé par la commande dans la réponse JSON.

Remarque : saisissez toutes les commandes dans l'AWS CLI. Si vous recevez des erreurs lors de l'exécution des commandes depuis l'AWS CLI, assurez-vous que vous utilisez la version la plus récente de l'AWS CLI.

Solution

Les volumes EBS ne sont pas correctement associés à l'instance.

Vous devez associer le volume racine EBS à l'instance sous la forme /dev/sda1 ou /dev/xvda, selon la valeur définie dans l'API. Vous ne pouvez pas avoir un deuxième volume EBS avec un nom de périphérique dupliqué ou conflictuel. Sinon, vous ne pouvez pas arrêter ou démarrer l'instance. Les conflits de noms de périphériques de stockage en mode bloc affectent uniquement les types d'instance basés sur Xen (c4, m4, t2, etc.). Les conflits de noms de périphériques de stockage en mode bloc n'affectent pas les instances basées sur Nitro (c5, m5, t3, etc.).

1.    Exécutez l'API describe-instances pour vérifier le message d'erreur StateReason et le code d'erreur :

$ aws ec2 describe-instances --instance-id i-xxxxxxxxxxxxxxx --region us-east-1 --query "Reservations[].Instances[].{StateReason:StateReason}" --output json

Remarque : remplacez us-east-1 par votre région AWS. Remplacez i-xxxxxxxxxxxxxxx par votre ID d'instance.

En cas de conflit entre les noms de périphériques, un résultat similaire au message suivant s'affiche :

[
    [{
        "StateReason": {
            "Code": "Server.InternalError",
            "Message": "Server.InternalError: Internal error on launch"
        }
    }]
]

2.    Ouvrez la console Amazon EC2, puis sélectionnez l'instance que vous ne parvenez pas à démarrer.

3.    Dans l'onglet Description, vérifiez le nom de périphérique répertorié dans la section Block devices (Périphériques de stockage en mode bloc). Le champ Block devices (Périphériques de stockage en mode bloc) comporte tous les noms de périphérique des volumes associés.

4.    Vérifiez que le périphérique racine est correctement attaché et qu'aucun périphérique répertorié ne comporte un nom identique ou possède un nom conflictuel.

5.    Si un périphérique comporte un nom identique à un autre périphérique ou un nom conflictuel, alors détachez le volume concerné, puis renommez-le. Ensuite, associez à nouveau le volume en indiquant un nouveau nom de périphérique.

Un volume EBS attaché présente un état d'erreur

1.    Exécutez l'API describe-instances pour vérifier le message d'erreur StateReason et le code d'erreur :

$ aws ec2 describe-instances --instance-id i-xxxxxxxxxxxxxxx --region us-east-1 --query "Reservations[].Instances[].{StateReason:StateReason}" --output json

Remarque : remplacez us-east-1 par votre région AWS. Remplacez i-xxxxxxxxxxxxxxx par votre ID d'instance.

Si un volume EBS associé présente un état d'erreur, un résultat similaire au message suivant s'affiche :

[
    [{
        "StateReason": {
            "Code": "Server.InternalError",
            "Message": "Server.InternalError: Internal error on launch"
        }
    }]
]

2.    Ouvrez la console Amazon EC2, choisissez Volumes, puis vérifiez si l'état du volume est error (erreur). Les options qui s'offrent à vous varient selon la nature du volume présentant une anomalie : volume racine ou volume secondaire.

Si le volume présentant une anomalie est un volume secondaire, alors détachez-le. Vous pouvez dès lors démarrer l'instance.

Si le volume présentant une anomalie est un volume racine et que vous disposez d'un instantané de celui-ci, procédez comme suit :

Détachez le volume.

Créez un nouveau volume à partir de l'instantané.

Attachez le nouveau volume à l'instance en indiquant le nom de l'instance d'origine. Démarrez l'instance.

Remarque : si vous ne disposez pas déjà d'un instantané du volume racine présentant une anomalie, vous ne pouvez pas redémarrer l'instance. Vous devez lancer une nouvelle instance, installer les applications appropriées, puis la configurer pour remplacer l'ancienne instance.

Les volumes associés sont chiffrés, et il existe des autorisations ou des politiques de Gestion des identités et des accès AWS (IAM) incorrectes.

1.    Exécutez l'API describe-instances pour vérifier le message d'erreur StateReason et le code d'erreur :

$ aws ec2 describe-instances --instance-id i-xxxxxxxxxxxxxxx --region us-east-1 --query "Reservations[].Instances[].{StateReason:StateReason}" --output json

Remarque : remplacez us-east-1 par votre région AWS. Remplacez i-xxxxxxxxxxxxxxx par votre ID d'instance.

Si un volume chiffré est associé à l'instance et qu'il existe des problèmes d'autorisation ou de politique, vous recevez une erreur client. Un résultat similaire au message suivant s'affiche :

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

2.    Assurez-vous que l'utilisateur qui tente de démarrer l'instance dispose des autorisations IAM appropriées. Si vous avez lancé l'instance indirectement via un autre service, tel que EC2 Auto Scaling, vérifiez également les configurations suivantes :

Remarque : pour vérifier qu'un volume est chiffré, ouvrez la console Amazon EC2, puis sélectionnez Volumes. La mention Encrypted (Chiffré) figure dans la colonne Encryption (Chiffrement) pour les volumes chiffrés.


Informations connexes

Lorsque je démarre mon instance avec des volumes chiffrés associés, l'instance s'arrête immédiatement avec l'erreur « client error on launch » (erreur du client lors du lancement).

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

Politiques de clé dans AWS KMS

Résolution des problèmes de lancement d'instance - L'instance est résiliée immédiatement

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