Comment puis-je récupérer des données dans mon instance Amazon EC2 si je ne parviens pas à me connecter en raison d'un problème interne dans l'instance ?

Date de la dernière mise à jour : 03/03/2020

Je souhaite récupérer des données à partir d'une instance Amazon Elastic Compute Cloud (Amazon EC2) inaccessible. Comment procéder ?

Brève description

Si vous ne pouvez pas vous connecter à votre instance EC2 et que vous avez besoin de récupérer les données stockées dans l'instance, vous pouvez arrêter l'instance, dissocier le volume racine, puis associer le volume à une instance de secours.

N'exécutez pas cette procédure si votre instance EC2 est basée sur le stockage d'instance ou si des volumes de stockage d'instance contiennent des données. Cette procédure de récupération nécessite l'arrêt et le démarrage de votre instance, ce qui signifie que les données des volumes de stockage d'instance sont perdues. Pour davantage d'informations, consultez la section Définition du type de périphérique racine de votre instance.

Si votre instance fait partie d'un groupe Auto Scaling Amazon EC2, ou si votre instance est lancée par des services qui utilisent AWS Auto Scaling, tels qu'Amazon EMR, AWS CloudFormation, AWS Elastic Beanstalk, etc., l'arrêt de l'instance pourrait résilier l'instance. Dans ce scénario, la résiliation de l'instance dépend des paramètres de protection contre la diminution de la taille d'instance pour votre groupe Auto Scaling. Si votre instance fait partie d'un groupe Auto Scaling, supprimez temporairement l'instance du groupe Auto Scaling avant de commencer les étapes de résolution.

Solution

1.    Ouvrez la console Amazon EC2.

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

3.    Sélectionnez Actions, puis Instance State (État de l'instance), et enfin Stop (Arrêter).

4.    Dans l'onglet Description sélectionnez le Root device (Périphérique racine), puis l'EBS ID (Identifiant EBS).

5.    Sélectionnez Actions, puis Detach Volume (Détacher un volume), et enfin Yes, Detach (Oui, détacher).

6.    Vérifiez que le Volume Status (Statut du volume) est disponible.

7.    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 ».

Vous pouvez également utiliser une instance existante à laquelle vous pouvez accéder, si elle utilise la même Amazon Machine Image (AMI) et se trouve dans la même zone de disponibilité que votre instance affectée.

8.    Une fois que l'instance de secours est lancée, sélectionnez Volumes dans le volet de navigation, puis sélectionnez le volume racine détaché de l'instance affectée.

9.    Sélectionnez Actions, puis Attacher un volume.

10.    Sélectionnez l'ID de l'instance de secours (i-xxxxx), puis saisissez un nom de périphérique. Le nom du périphérique doit être spécifié sous la forme /dev/sd[f-p].

11.    Sélectionnez Attach (Attacher).

12.    Utilisez SSH pour vous connecter à l'instance de secours.

13.    Exécutez la commande lsblk pour vérifier le nom du périphérique du volume attaché.

$ lsblk

Voici un exemple de résultat.

NAME    MAJ:MIN   RM  SIZE RO TYPE MOUNTPOINT
xvda    202:0     0   15G  0 disk
└─xvda1 202:1     0   15G  0 part /
xvdf    202:80    0  15G  0 disk
    └─xvdf1 202:0 0  15G  0 part

Le nom du périphérique peut être /dev/xvdf si vous spécifiez /dev/sdf à l'étape 10.

14.    Créez un répertoire de montage, puis montez avec des privilèges d'utilisateur racine.

$ sudo mount -o nouuid /dev/xvdf1 /mnt

15.    Vérifiez les journaux dans le répertoire de montage. Si nécessaire, chargez les journaux dans Amazon Simple Storage Service (Amazon S3) à l'aide de l'interface de ligne de commande AWS (AWS CLI) ou copiez-les sur votre PC local à l'aide de la commande scp.

$ sudo cp /mnt/var/log/messages .
$ sudo chmod 644 messages
$ exit

16.    Après avoir examiné les journaux, exécutez unmount/mnt pour détacher le volume attaché.

$ sudo umount /mnt

17.    Attachez le volume à l'instance d'origine. Le nom du périphérique est /dev/xvda.


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

Cette page peut-elle être améliorée ?


Vous avez besoin d’aide ?