Cela est souvent causé par un problème propre à la configuration interne de l'instance. Le processus de récupération qui suit une absence de réponse d'une instance dépend du type d'instance exécuté (sauvegardée sur EBS ou dans le magasin d'instances).
Commencez par consulter la sortie de la console de votre instance pour tenter de déterminer pourquoi le redémarrage a affecté l'instance. Les informations fournies par la sortie de la console fournissent parfois suffisamment de détails pour comprendre les raisons de l'échec de votre instance.
Dans AWS Management Console :
- Sélectionnez l'instance.
- Dans le menu Actions de l'instance, sélectionnez Afficher le journal système.
Dans les outils API Amazon EC2 :
- Exécutez la commande ec2-get-console-output.
Si vous n'êtes pas en mesure de déterminer l'origine du problème en consultant la sortie de la console, lisez la suite.
Instances sauvegardées dans le stockage d'instances
Récupération des instances
En général, lorsqu'une instance lancée à partir d'une AMI utilisant un périphérique racine sauvegardé dans le magasin d'instances refuse de démarrer, vous n'avez pas d'autres possibilités que de lancer une instance de remplacement. Il est toujours conseillé de créer des sauvegardes de vos configurations d'instances opérationnelles en créant une AMI personnalisée après chaque modification. Si vous exécutez une instance à partir d'une AMI qui télécharge des scripts lors du processus de démarrage, vous pouvez peut-être modifier les scripts afin de corriger les erreurs détectées dans la sortie de la console.
Récupération des données
Il n'est généralement pas possible de récupérer les données du magasin d'instances, même si AWS Support peut être en mesure de récupérer une partie des données si l'instance n'a pas été fermée et en l'absence d'erreurs matérielles sous-jacentes. La récupération des données n'est cependant pas un processus garanti et peut prendre plusieurs jours. Ne comptez donc par sur cette possibilité de récupération par AWS Support comme seule stratégie de sauvegarde.
Instances sauvegardées sur EBS
Avant de tenter de récupérer une instance sauvegardée sur EBS, il convient de savoir si vous utilisez le magasin d'instances pré-joint (également appelé le magasin éphémère) à la disposition des instances sauvegardées sur EBS. Cette information est primordiale car les données de ce magasin d'instances pré-joint seront perdues si vous réalisez les opérations décrites plus bas sur cette page. Si vous utilisez le magasin d'instances, consultez la section ci-dessus pour en savoir plus sur les options de récupération relatives aux données stockées dans le magasin d'instances pré-joint.
Récupération des instances
Si le périphérique racine de votre instance est un volume sauvegardé sur EBS, il suffit souvent d'arrêter et de redémarrer l'instance pour résoudre le problème. Pour de plus amples informations, reportez-vous à la rubrique Arrêt et démarrage des instances.
Il est parfois possible de corriger manuellement les erreurs sur le volume racine d'une instance sauvegardée sur EBS qui ne démarre pas correctement. Il s'agit cependant d'un processus complexe que vous ne devez envisager que si vous possédez une expérience en administration de systèmes. Parmi les solutions que nos clients ont mises en œuvre après avoir consulté la sortie de la console de l'instance défectueuse, citons l'exécution de la commande fsck sur le volume, la désactivation de SELinux ou la correction d'une erreur dans le fichier fstab.
Pour arrêter et redémarrer votre instance :
- Arrêtez l'instance qui refuse de démarrer correctement (sans l'éteindre ou la fermer).
- Détachez le volume EBS racine.
- Attachez le volume à une instance existante dans la même zone de disponibilité, en veillant à utiliser un point de montage secondaire (non racine).
- Corrigez la configuration de l'ancien volume racine.
- Détachez le volume et rattachez-le à l'instance d'origine sur son point de montage d'origine.
- Démarrez l'instance.
- Rattachez une adresse IP Elastic le cas échéant.
Réactivation des entrées-sorties
Il arrive parfois que l'accès en E/S de votre volume EBS soit désactivé afin de le protéger. Dans ce cas, procédez comme suit :
- Accédez à vos volumes EBS à partir de la console de gestion. Si les E/S du volume ont été désactivées, vous verrez dans la liste des volumes que la colonne « Status Checks » indique « Impaired ».
- Vous pouvez utiliser la console pour réactiver les E/S en cliquant sur « Enable Volume IO » dans la section explicative sur le volume.
- Nous vous recommandons de vérifier la cohérence de vos données à l'aide d'un outil du type fsck ou chkdsk.
- Si votre instance ne répond pas, selon votre système d'exploitation sous-jacent, il est possible, en relançant les E/S, que votre instance soit remise en service.
Récupération des données
Si votre instance est sauvegardée sur EBS et refuse de démarrer en raison d'un problème de configuration interne (les détails sont souvent disponibles dans la sortie de la console) et qu'un redémarrage standard est resté vain, procédez comme suit pour récupérer vos données :
- Arrêtez l'instance qui refuse de démarrer correctement (sans l'éteindre ou la fermer).
- Détachez le volume EBS racine.
- Attachez le volume à une nouvelle instance de remplacement (de préférence lancée à partir d'une AMI précédemment créée) dans la même zone de disponibilité, en veillant à utiliser un point de montage secondaire (non racine).
- Copiez les données du volume vers l'instance de remplacement.
Ressources supplémentaires
Un certain nombre de ressources sont disponibles pour les clients souhaitant améliorer leur architecture, comprendre les meilleures pratiques et se préparer aux problèmes.
- De plus amples informations sur la manière d'appréhender l'échec des instances sont disponibles dans la section Conception d'applications tolérantes aux pannes du livre blanc dédié au cloud AWS.
- Il est toujours conseillé de créer des sauvegardes de vos configurations d'instances opérationnelles en créant une AMI personnalisée.
- Le guide de l'utilisateur Amazon EC2 inclut un fichier PDF sur les concepts d'applications résilientes aux échecs.
Généralement, les instances se figent en cours d'arrêt lorsque l'hôte sous-jacent présente un problème. L'arrêt forcé de votre instance peut résoudre le problème. Pour ce faire, utilisez les outils de ligne de commande EC2 ou la console AWS Management Console.
Outils de ligne de commande
ec2-stop-instances [votre id ici] --force
AWS Management Console
Cliquez avec le bouton droit de la souris sur votre instance et sélectionnez Arrêter dans le menu déroulant (vous devriez voir une note vous avertissant qu'un arrêt forcé sera effectué).
Remarque : dans les deux cas, vous pouvez être amené à lancer la demande d'arrêt forcé deux fois.
Si vous n'êtes pas en mesure de provoquer un arrêt forcé de l'instance, vous pouvez tenter de lancer une instance de remplacement ; pour ce faire, consultez la section Troubleshooting Stopping Your Instance. Si cela ne fonctionne pas, contactez-nous via les forums AWS ou en créant un cas AWS Support. Pour accélérer la résolution de votre problème, veillez à préciser toutes les étapes déjà entreprises avant de contacter l'assistance.
Les instances qui mettent plus de temps que d'habitude pour se fermer seront finalement nettoyées par des processus automatisés dans le service Amazon EC2. Aucune heure d'utilisation n'est facturée au client dès lors qu'aucune instance ne présente l'état « running » (en cours d'exécution).
Si vous ne pouvez pas attendre que votre instance se ferme, contactez-nous via les forums AWS ou en ouvrant un dossier AWS Support. Pour accélérer la résolution de votre problème, veillez à préciser toutes les étapes déjà entreprises avant de contacter l'assistance.