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. Quelle est la marche à suivre ?

Brève description

Si vous ne pouvez pas vous connecter à votre instance EC2 et que vous souhaitez récupérer les données stockées dans l'instance, vous pouvez arrêter l'instance, détacher le volume racine, puis attacher 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 stockages d'instances seront perdues. 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 Auto Scaling Amazon EC2, ou si elle est lancée par des services qui utilisent AWS Auto Scaling, tels qu'Amazon EMR, AWS CloudFormation ou encore AWS Elastic Beanstalk, l'arrêt de l'instance pourrait entraîner sa résiliation. 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.    Choisissez Instances dans le volet de navigation, puis sélectionnez l'instance affectée.

3.    Choisissez État de l'instance, puis Arrêter l'instance.

4.    Dans l'onglet Stockage, sélectionnez le périphérique racine.

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, choisissez 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 d'appareil. Le nom de l'appareil 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 d'appareil du volume attaché.

$ lsblk

Voici un exemple de sortie.

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 de l'appareil 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 ordinateur local avec la commande scp.

Remarque : si vous recevez des erreurs lors de l'exécution de commandes depuis AWS CLI, assurez-vous d'utiliser la version la plus récente d’AWS CLI.

$ 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 de l'appareil est /dev/xvda.


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


Besoin d'aide pour une question technique ou de facturation ?