Mon instance EC2 Linux ne répond plus ou présente des problèmes au démarrage. Comment puis-je utiliser EC2Rescue pour Linux afin de résoudre les problèmes se produisant au niveau du système d'exploitation ?

Dernière mise à jour : 15/04/2020

Je ne peux pas me connecter à mon instance Amazon Elastic Compute Cloud (Amazon EC2) Linux, ou je rencontre des problèmes lors du démarrage. Pour y remédier, je dois modifier les autorisations de fichiers OpenSSH, ou obtenir des journaux système. Comment puis-je utiliser EC2Rescue pour Linux à cette fin ?

Brève description

EC2Rescue pour Linux est un outil qui permet de diagnostiquer et de résoudre les problèmes rencontrés sur les instances Amazon EC2 Linux. EC2Rescue pour Linux est exécuté sur votre instance Amazon EC2 Linux afin de corriger les problèmes au niveau du système d'exploitation. EC2Rescue pour Linux collecte également des journaux avancés, des rapports d'utilisation système et des fichiers de configuration pour une analyse plus approfondie.

Scénarios courants traités par EC2Rescue pour Linux :

  • Collecte de rapports d'utilisation du système tels que vmstat, iostat, mpstat, etc.
  • Collecte de journaux et de détails tels que syslog, dmesg, les journaux d'erreurs d'application et les journaux SSM.
  • Détection des problèmes système tels que le routage asymétrique ou la duplication des étiquettes du périphérique racine.
  • Correction automatique des problèmes système tels que la correction des autorisations de fichier OpenSSH ou la désactivation des paramètres de noyau problématiques connus.

Configuration système requise

EC2Rescue pour Linux exige une instance Amazon EC2 Linux dotée des prérequis suivants :

Systèmes d'exploitation pris en charge

  • Amazon Linux 2
  • Amazon Linux 2016.09+
  • SLES 12+
  • RHEL 7+
  • Ubuntu 16.04+

Configuration logicielle requise

  • Python 2.7.9+ ou 3.2+

Solution

Pour dépanner une instance Amazon EC2 Linux inaccessible à l'aide d'une instance de secours :

1.    Lancez une nouvelle instance Amazon EC2 dans votre Virtual Private Cloud (VPC) en utilisant la même Amazon Machine Image (AMI) et 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 AMI et se trouve dans la même zone de disponibilité que votre instance affectée.

2.    Mettez fin à l'association du volume racine Amazon Elastic Block Store (Amazon EBS) (/dev/xvda ou /dev/sda1) avec l'instance affectée.

3.    Associez le volume EBS, en tant que périphérique secondaire (/dev/sdf), à l'instance de secours.

4.    Connectez-vous à l'instance EC2 en utilisant SSH.

5.    Créez un répertoire de point de montage (/rescue) pour le nouveau volume attaché à l'instance de secours à l'étape 3.

$ sudo mkdir /rescue

6.    Montez le volume dans le répertoire que vous avez créé à l'étape 5.

$ sudo mount /dev/xvdf1 /rescue

Remarque : l'appareil (/dev/xvdf1) peut être attaché à l'instance de secours avec un nom de périphérique différent. 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 corrects.

Remarque : si le montage du volume échoue, vérifiez dmesg | tail. Si les journaux suggèrent des UUID en conflit, utilisez l'option -o nouuid.

7.    Remplacez le répertoire racine (chroot) par le volume récemment monté.

  $ sudo -i
  # for i in proc sys dev run; do mount --bind /$i /rescue/$i ; done
  # chroot /rescue

8.    Téléchargez et installez l'outil EC2Rescue pour Linux sur un volume racine Linux hors connexion.

$ curl -O https://s3.amazonaws.com/ec2rescuelinux/ec2rl.tgz
$ tar -xvf ec2rl.tgz

9.    Vérifiez l'installation en répertoriant le fichier d'aide.

$ cd ec2rl-<version_number>
$ ./ec2rl help

10.    Exécutez EC2Rescue pour Linux sans option pour exécuter tous les modules en tant que sudo.

$ sudo ./ec2rl run

11.    Affichez les résultats dans /var/temp/ec2rl.

cat /var/tmp/ec2rl/<logfile_location>/Main.log

12.    Activez la correction pour les modules pris en charge en fonction des résultats.

$ ./ec2rl run --remediate 

13.    Une fois la modification effectuée, quittez chroot et démontez le périphérique secondaire.

$ exit
$ sudo umount /rescue

Remarque : si le démontage n'aboutit pas, il peut être nécessaire d'arrêter ou de redémarrer l'instance de secours.

14.    Détachez le volume secondaire (/dev/sdf) de l'instance EC2 de secours, puis attachez-le à l'instance d'origine en tant que /dev/xvda (volume racine).

15.    Démarrez l'instance EC2, puis vérifiez que l'instance répond.

Remarque : vous pouvez également utiliser un document AWS Systems Manager Automation pour remédier aux problèmes de connexion. Pour obtenir des informations supplémentaires, consultez la section Démonstration : Exécution de l'outil EC2Rescue sur des instances inaccessibles. Le document AWSSupport-ExecuteEC2Rescue permet d'effectuer des actions avec Systems Manager et avec AWS CloudFormation, ainsi que d'exécuter des fonctions AWS Lambda qui automatisent les étapes normalement requises afin d'utiliser EC2Rescue pour Linux.

Résolution de problèmes supplémentaires


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

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


Vous avez besoin d’aide ?