Comment gérer les instances EC2 via l’interface de ligne de commande AWS
AWS propose une interface Web pratique appelée « AWS Management Console ». Cette console vous permet d’effectuer toutes les opérations nécessaires dans le cloud AWS. Cependant, la répétition de nombreuses opérations identiques dans l’interface Web peut s’avérer fastidieuse et chronophage. Dans ce cas, vous pouvez utiliser l’AWS CLI pour automatiser les tâches de gestion AWS et effectuer des opérations en masse. Cet article de blog traite de l’installation de l’AWS CLI et des principes de base de l’utilisation de cet outil. Il se concentre également sur les commandes EC2 de l’AWS CLI, illustrées par des exemples.
Qu’est-ce que l’AWS CLI ?
L’interface de ligne de commande Amazon Web Services (AWS CLI) est un outil open source permettant de gérer des environnements dans le cloud Amazon. Cet outil fonctionne grâce à son intégration avec le shell de ligne de commande du système d’exploitation sur lequel il est installé. Vous pouvez gérer des instances Amazon EC2 à l’aide des commandes Amazon EC2, ainsi que des volumes EBS, des compartiments S3 et d’autres services Amazon.
AWS CLI s’exécute dans un shell de ligne de commande Linux, un terminal macOS, une invite de commande Windows (CMD) et PowerShell. Cette CLI vous permet de créer des scripts et d’automatiser vos tâches.
Il existe deux versions principales de l’AWS CLI :
- AWS CLI version 1 est l’ancienne version disponible à des fins de compatibilité ascendante. Cette version est prise en charge, mais certaines nouvelles fonctionnalités peuvent ne pas être disponibles.
- AWS CLI version 2 est la dernière version qui prend en charge toutes les fonctionnalités disponibles d’AWS. Il est recommandé d’installer la dernière version.
Les deux versions utilisent la même aws commande pour exécuter l’AWS CLI. Cependant, certaines modifications peuvent empêcher l’utilisation de scripts créés pour AWS CLI v1 dans AWS CLI v2.
Conditions à remplir
Voyons maintenant les conditions à remplir pour utiliser AWS CLI.
Conditions générales
- Vous devez disposer d’un compte AWS et de Clés d’accès AWS (ID de clé d’accès AWS et clé d’accès secrète AWS).
- Python 2 version 2.6.5 ou supérieure, ou Python 3 version 3.3 ou supérieure, doit être installé. AWS CLI v2 intègre une version de Python ; vous n’avez donc pas besoin d’installer Python manuellement pour installer AWS CLI v2.
Linux
- Un outil permettant d’extraire les archives zip
glibc,groffetlessdoit être installé
Windows
- Windows XP ou version ultérieure
- Droits d’administrateur sur la machine Windows
macOS
- Version 64 bits de macOS prise en charge par Apple
Installation
Vous devez installer AWS CLI avant de pouvoir exécuter des commandes pour gérer les instances Amazon EC2 et d’autres services Amazon. Voyons comment installer la version 2 de l’AWS CLI sur différents systèmes d’exploitation.
Installation de l’AWS CLI sous Linux
Il existe trois méthodes pour installer l’AWS CLI sous Linux :
- Utilisation du programme d’installation « bundle » (méthode officielle)
- Utilisation des référentiels de logiciels Linux
- Installation de l’AWS CLI en tant que module Python
Amazon recommande d’utiliser la méthode officielle pour installer l’AWS CLI. Dans ce cas, vous disposez toujours de la dernière version du logiciel. J’utilise Ubuntu 20 dans ce workflow.
Utilisation de l’archive d’installation officielle
Il s’agit de la méthode recommandée pour installer AWS CLI. Procédez comme suit :
- Installez curl :
apt-get install curl
- Téléchargez l’archive d’installation d’AWS CLI :
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
- Extrayez les fichiers d’installation contenus dans l’archive téléchargée :
unzip awscliv2.zip
- Exécutez le programme d’installation avec les privilèges root :
sudo ./aws/install
- Après l’installation terminée, vérifiez la version de l’outil AWS CLI installé pour vous assurer que celui-ci a bien été installé :
aws --version
Utilisation des référentiels de logiciels Linux
AWS CLI est disponible dans les référentiels de logiciels officiels d’Ubuntu. Procédez comme suit :
1. Mettez à jour l’arborescence des référentiels :
sudo apt-get update
2. Installez AWS CLI à l’aide d’un gestionnaire de paquets à partir des référentiels de logiciels Linux :
sudo apt-get install awscli
3. Überprüfen Sie que AWS CLI a bien été installé :
aws --version
Installation avec Python PIP
Vous pouvez installer AWS CLI en tant que module Python par l’intermédiaire du gestionnaire de paquets Python PIP. Notez que Python PIP n’est pas installé par défaut sur Ubuntu. Procédez comme suit pour l’installer en tant que module Python :
1. Vous devez d’abord installer Python PIP.
- Pour Python 2.x :
sudo apt-get install python-pip
- Pour Python 3.x :
sudo apt-get install python3-pip
2. Installez AWS CLI par l’intermédiaire de Python PIP.
- Avec Python 2.x PIP :
pip install awscli --upgrade --user
- Avec PIP pour Python 3.x :
pip3 install awscli --upgrade --user
3. Vérifiez la version installée.
- Sous Python 2.x :
python -m awscli --version
- Sous Python 3.x :
python3 -m awscli --version
Remarque : Si vous utilisez l’AWS CLI installée via PIP pour Python, les commandes à utiliser diffèrent de la commande standard « main » aws utilisée pour une version packagée de l’AWS CLI :
- Version packagée :
aws
- Module pour Python 2 :
python -m awscli
- Module pour Python 3 :
python3 -m awscli
Installation d’AWS CLI sous Windows
Pour installer AWS CLI sous Windows, vous devez télécharger le programme d’installation, installer AWS CLI, puis effectuer la configuration post-installation sous Windows.
Télécharger le programme d’installation
Téléchargez le programme d’installation 64 bits d’AWS CLI par l’un des liens ci-dessous et enregistrez le fichier à l’emplacement de votre choix, par exemple : C:temp
- Le programme d’installation 64 bits est disponible sur AWS : https://awscli.amazonaws.com/AWSCLIV2.msi
- Le programme d’installation 32 bits est disponible via ce lien : https://s3.amazonaws.com/aws-cli/AWSCLI32PY3.msi
- Le fichier d’installation universel est disponible ici : https://s3.amazonaws.com/aws-cli/AWSCLISetup.exe
Dans cet exemple, j’utilise Windows Server 2016 et je télécharge le fichier AWSCLIV2.msi .
Vous pouvez télécharger le fichier d’installation dans PowerShell à l’aide de la commande :
Invoke-WebRequest -Uri https://awscli.amazonaws.com/AWSCLIV2.msi -OutFile "C:tempAWSCLIV2.msi"
Lancez le programme d’installation
Lancez le fichier téléchargé AWSCLIV2.msi .
Si vous utilisez PowerShell, notez l’emplacement du fichier .msi ( C:temp dans mon cas) et exécutez la commande :
C:tempAWSCLIV2.msi
Suivez les étapes de l’assistant d’installation. Vous pouvez utiliser les paramètres par défaut pour l’installation. Le processus d’installation est simple, je ne reviendrai donc pas sur chaque étape de l’assistant.
Si vous essayez d’exécuter la commande aws --version pour vérifier si l’AWS CLI a bien été installée, vous risquez d’obtenir une erreur. Cela est dû au fait qu’il n’y a pas d’entrée relative à l’outil AWS CLI dans la variable d’environnement PATH. Vous pouvez désormais vous placer dans le répertoire où l’AWS CLI est installée ( C:Program FilesAmazonAWSCLIV2 par défaut) et lancer l’AWS CLI manuellement.
cd "C:Program FilesAmazonAWSCLIV2"
.aws --version
Configurer PATH
Ajoutez l’entrée à la variable PATH car il n’est pas pratique de changer manuellement de répertoire dans la ligne de commande chaque fois que vous devez exécuter des commandes AWS CLI.
À l’aide de l’interface graphique Windows
1. Ouvrez Control Panel > System > Advanced system settings, puis dans l’onglet Advanced de la fenêtre Propriétés du système , cliquez sur Environment Variables.
2. Dans la fenêtre Variables d’environnement , sélectionnez la variable PATH et cliquez sur Edit. Notez qu’il existe des options permettant de modifier les variables utilisateur pour l’administrateur et les variables système .
3. Dans la fenêtre Modifier la variable d’environnement , cliquez sur New.
4. Indiquez le chemin d’accès au répertoire dans lequel AWS CLI est installé, puis cliquez sur Enter. Dans mon cas, ce répertoire est « C:Program FilesAmazonAWSCLIV2 ».
5. Cliquez sur OK pour enregistrer les paramètres et fermer les fenêtres.
Remarque : vous devrez peut-être rouvrir la fenêtre de console (PowerShell ou CMD) pour que les modifications prennent effet.
Utilisation de PowerShell
Vous pouvez également modifier les variables d’environnement dans PowerShell. Suivez ces étapes pour ajouter une valeur à la variable PATH dans PowerShell.
1. Notez la valeur d’origine de la variable PATH que vous souhaitez modifier :
$oldpath = (Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH).path
2. Définissez la nouvelle valeur de la variable PATH par ajout de la valeur requise. Dans mon cas, la valeur que je dois ajouter est le chemin d’accès au répertoire AWS CLI. Le point-virgule (;) sert de séparateur entre les valeurs de chemin d’accès dans la variable PATH .
$newpath = "$oldpath;C:Program FilesAmazonAWSCLIV2"
3. Appliquez la valeur au Registre Windows pour que les modifications soient permanentes :
Set-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH -Value $newPath
4. Vérifiez si la nouvelle configuration de la variable PATH est correcte :
Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH
ou
(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH).path
Utilisation de Chocolatey
Au lieu de télécharger et d’exécuter le fichier d’installation MSI, vous pouvez installer AWS CLI avec Chocolatey, un outil de gestion de logiciels Windows s’exécutant dans PowerShell. Chocolatey prend en charge l’installation d’applications à partir de référentiels en ligne Windows. Exécutez cette commande pour installer AWS CLI :
choco install awscli
Vérification des résultats de l’installation
Vous pouvez désormais exécuter la commande aws (ainsi que les commandes AWS EC2 associées) depuis n’importe quel répertoire dans PowerShell.
aws --version
Remarque : Si les versions 1 et 2 d’AWS CLI sont installées sur votre système d’exploitation, celui-ci exécute la première version définie dans la variable PATH .
Installation d’AWS CLI sur macOS
Procédez comme suit pour installer AWS CLI sur macOS.
Accédez au répertoire /tmp/ qui sera utilisé pour stocker les fichiers téléchargés :
cd /tmp
Méthode 1
- Téléchargez le fichier d’installation :
curl -o awscli.zip https://s3.amazonaws.com/aws-cli/awscli-bundle.zip - Extrayez le contenu de l’archive zip téléchargée :
unzip awscli.zip - Installez AWS CLI :
sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
Méthode 2
- Téléchargez le package d’installation :
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" - Exécutez le programme d’installation :
sudo installer -pkg AWSCLIV2.pkg -target / - Vous pouvez exécuter la commande suivante pour vérifier que l’installation d’AWS CLI s’est bien déroulée :
aws --version
Configuration initiale d’AWS CLI
Vous devez maintenant spécifier vos identifiants de connexion AWS et configurer la région ainsi que les paramètres de sortie. Exécutez la commande ci-dessous pour configurer AWS CLI. La syntaxe des commandes AWS CLI est la même sous Linux, Windows et macOS. Dans mon exemple, j’utilise Ubuntu Linux.
aws configure
Spécifiez quatre paramètres (les deux premiers sont obligatoires) :
- ID de clé d’accès AWS , qui est une chaîne alphanumérique de 20 caractères. Les lettres sont en majuscules.
- Clé d’accès secrète AWS , qui est une chaîne alphanumérique de 40 caractères ressemblant à un hachage.
- Nom de la région par défaut . Sélectionnez ce paramètre si vous n’avez pas besoin de spécifier explicitement une région à chaque fois que vous exécutez des commandes dans l’interface CLI d’AWS. Si vous devez utiliser une région différente de votre région par défaut, vous pouvez spécifier manuellement la région souhaitée dans une commande. Utilisez à cet effet la commande
--region. - Format de sortie par défaut . Trois options sont disponibles :
json, text, table, yaml, yaml-stream. Le format JSON (JavaScript Object Notation) est utilisé par défaut. Vous pouvez sélectionner le format souhaité lors de l’exécution d’une commande spécifique à l’aide de la commande--output.
Les fichiers de configuration de l’AWS CLI sont enregistrés dans le répertoire personnel. Vous pouvez consulter ces fichiers à l’aide de la commande :
ls -l ~/.aws
Les paramètres de région et de sortie sont stockés dans le fichier config . Les identifiants de connexion (ID de clé d’accès AWS et clé d’accès secrète AWS) sont stockés dans le fichier credentials .
Utilisation générale et conseils
Familiarisons-nous avec les recommandations d’utilisation générale et les conseils relatifs à l’AWS CLI avant de passer aux exemples pratiques d’utilisation de l’AWS CLI pour EC2.
Structure des commandes AWS CLI
Vous pouvez composer une commande AWS CLI de deux manières : sur une seule ligne ou sur plusieurs lignes.
Structure classique
Une structure de commande classique suppose que vous composiez une commande sur une seule ligne.
aws [options and parameters]
Où :
aws est la commande de base permettant d’appeler le aws programme
est la commande de niveau supérieur correspondant au service AWS approprié, par exemple EC2 ou S3.
spécifie l’opération à effectuer, telle que récupérer un objet, décrire des instances, etc.
[options and parameters] spécifie les options et les paramètres de l’opération.
Structure de commande sur plusieurs lignes
Il est parfois plus pratique d’utiliser une structure de commande sur plusieurs lignes si vous devez spécifier plusieurs options et paramètres.
aws
[options and parameters]
[options and parameters]
La commande « wait »
Vous pouvez utiliser la commande wait pour mettre en pause l’exécution de l’ensemble de la commande, afin de reprendre l’opération lorsqu’elle est prête à s’exécuter et que toutes les conditions sont remplies.
aws wait [options and parameters]
Exemple :
aws ec2 wait instance-status-ok
--instance-ids i-1234567890abcdef0
Complétion de commande
Activez la complétion de commande. La complétion de commande rend la saisie des commandes plus rapide et plus pratique. Utilisez cette commande pour activer la complétion automatique sous Linux :
complete -C '/usr/local/bin/aws_completer' aws
Überprüfen Sie, dass die Komplettierung der Kommandos funktioniert:
aws s[press Tab]
aws e[press Tab]
Wenn die automatische Komplettierung funktioniert, wird eine partielle Eingabe automatisch ergänzt, wenn Sie auf Tab drücken. Wenn es nur eine einzige Kommando-Eingabe gibt, die mit den eingegebenen Charaktersätzen beginnt, werden alle Kommandos, die mit diesen Charaktersätzen beginnen, unten angezeigt. Sie können die Liste der verfügbaren Kommandos durchlaufen und weiter die gewünschte Kommando-Eingabe eingeben. Utilisez ensuite la clé Tab pour la complétion des commandes.
Filtres
Utilisez des filtres pour n’afficher que les données nécessaires. Le filtrage s’effectue côté serveur Amazon. Ainsi, moins de données sont transmises sur le réseau et vous obtenez les résultats plus rapidement. Les scripts incluant des commandes Amazon EC2 et des filtres AWS CLI s’exécutent plus rapidement.
Aide AWS
Utilisez la commande help pour afficher les commandes et options disponibles.
aws help
aws help
aws help
Analyse de JSON
Utilisez jq, un utilitaire léger destiné au traitement des données JSON.
jq est l’équivalent de sed pour transformer le flux d’entrée, mais pour le format JSON. Vous pouvez installer jq comme outil d’analyse JSON à l’aide de la commande :
apt-get install jq
Par défaut, vous pouvez utiliser l’option intégrée --query pour analyser le JSON renvoyé par la commande exécutée.
Accès à distance
Vous pouvez vous connecter via SSH à une machine Linux sur laquelle AWS CLI est installée et exécuter des commandes pour gérer vos services dans le cloud Amazon.
Commandes AWS EC2 dans AWS CLI
Maintenant que vous avez installé AWS CLI et que vous vous êtes familiarisé avec ses astuces, vous pouvez exécuter les commandes AWS CLI EC2 pour afficher des informations sur les instances Amazon EC2 et les gérer. Passons maintenant en revue des exemples pratiques d’utilisation de l’interface en ligne de commande dans AWS.
Décrire des instances Amazon EC2
Vous pouvez utiliser les commandes AWS EC2 dans AWS CLI pour décrire les composants Amazon (obtenir des informations à leur sujet) de votre compte sans effectuer d’actions sur ceux-ci. Les commandes AWS CLI permettant de décrire les instances vous aident à vérifier l’état des instances Amazon EC2, des volumes EBS, des images de machine Amazon et d’autres composants. Vous pouvez également utiliser la fonctionnalité fournie pour Surveillance.
Exemple 1
Commençons par cette commande simple pour afficher des informations sur les instances Amazon EC2 existantes :
aws ec2 describe-instances
Cette commande renvoie des données décrivant toutes les instances AWS EC2 dans la sortie au format JSON (car nous avons défini JSON comme format par défaut précédemment). Nous obtenons ainsi un vaste tableau de données, comprenant des métadonnées. Cette sortie n’est pas pratique à lire pour les utilisateurs, mais elle l’est pour les scripts et les applications.
Appuyez sur la touche « down arrow » pour faire défiler les données vers le bas dans la fenêtre de la console ou du terminal.
Appuyez sur « q » pour quitter le mode visualisation (de la même manière que lorsque vous utilisez « » ou «less» ).
Exemple 2
Nous pouvons afficher les informations complètes d’une seule instance en utilisant son ID par la commande : aws ec2 describe-instances
--instance-ids i-0201020e110607121
Exemple 3
Nous allons maintenant vérifier les ID d’instance, leurs noms et leur état pour toutes les instances disponibles dans notre région. Nous pouvons afficher uniquement les données nécessaires à l’aide de la commande en utilisant les filtres AWS CLI et l’option --query . Cet exemple de filtres AWS CLI contient l’option --filter qui renvoie les données filtrées demandées. Nous utilisons l’option --output text pour afficher le résultat sous forme de texte.
aws ec2 describe-instances --filters "Name=tag:Name,Values=server*" --query "Reservations[].Instances[].[Tags[?Key=='Name'],InstanceId,State.Name]" --output text
Par rapport au résultat non filtré, qui contient toutes les données disponibles pour toutes les instances, le résultat filtré est plus pratique et plus lisible pour les utilisateurs.
Exemple 4
Filtrons à nouveau les instances AWS EC2 et affichons uniquement celles dont le nom contient « Linux » à l’aide d’un filtre AWS CLI.
aws ec2 describe-instances --filters "Name=tag:Name,Values=*Linux*" --query "Reservations[].Instances[].[Tags[?Key=='Name'],InstanceId,State.Name]" --output text
Sur la capture d’écran ci-dessous, vous pouvez voir le résultat de la commande après application du filtre aux instances EC2. J’ai trouvé trois instances Linux sur lesquelles le logiciel NAKIVO Backup & Replication Transporteur est installé. Le Transporteur est un composant permettant de transférer des données lors de l’exécution d’opérations de sauvegarde AWS et de Reprise après sinistre AWS .
Exemple 5
Vous pouvez répertorier les instances de types d’instances EC2 AWS spécifiques. Dans cet exemple, j’exécute la commande pour afficher les instances de type t2.micro :
aws ec2 describe-instances
--filters Name=instance-type,Values=t2.micro
Exemple 6
Utilisez un filtre d’instances EC2 pour afficher uniquement les ID d’instances.
aws ec2 describe-instances --filters "Name=instance-type,Values=t2.micro" --query "Reservations[].Instances[].InstanceId"
Exemple 7
Vous pouvez également utiliser l’affichage sous forme de tableau pour les données de sortie en ajoutant l’option --output table . Vous trouverez ci-dessous la commande avec un filtre AWS CLI permettant d’afficher sous forme de tableau l’ID, le nom, l’état et le type des instances EC2.
aws ec2 describe-instances --output table --query "Reservations[].Instances[].{Name: Tags[?Key == 'Name'].Value | [0], Id: InstanceId, State: State.Name, Type: InstanceType}"
Exemple 8
Il existe une autre commande permettant d’afficher les données de sortie (ID, type et nom de l’instance) des instances EC2 sous une forme pratique :
aws ec2 describe-instances | jq -r '.Reservations[].Instances[]|.InstanceId+" "+.InstanceType+" "+(.Tags[] | select(.Key == "Name").Value)'
Exemple 9
Vérifiez l’adresse IP externe d’une instance en cours d’exécution :
aws ec2 describe-instances --instance-ids i-0201020e110607121 --query "Reservations[].Instances[].PublicIpAddress"
Pour vérifier les adresses IP externes de plusieurs instances EC2, indiquez les ID des instances en les séparant par un espace.
Exemple 10
Vérifiez les instances arrêtées et la raison de l’arrêt de chacune d’entre elles à l’aide de la commande incluant le filtre AWS CLI :
aws ec2 describe-instances --filters Name=instance-state-name,Values=stopped
Il existe un autre exemple :
aws ec2 describe-instances --filters Name=instance-state-name,Values=stopped --region eu-west-1 --output json | jq -r .Reservations[].Instances[].StateReason.Message
Exemple 11
Voici la commande permettant de lister les instances Amazon EC2 en cours d’exécution avec plus de détails, notamment le nom de l’instance, l’adresse IP privée, l’adresse IP publique, le Statut, le type et l’identifiant VPC (VpcID), sous forme de tableau : aws ec2 describe-instances --query "Reservations[*].Instances[*].{PublicIP:PublicIpAddress,PrivateIP:PrivateIpAddress,Name:Tags[?Key=='Name'] | [0].Value,Type:InstanceType,Status:State.Name,VpcId:VpcId}" --filters Name=instance-state-name,Values=running --output table
Démarrer des instances EC2 Amazon
Une fois que vous connaissez l’ID de l’instance, vous pouvez démarrer l’instance Amazon EC2 par l’intermédiaire des commandes AWS EC2.
aws ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0
Vous pouvez démarrer plusieurs instances EC2 Amazon par l’intermédiaire de la commande « start instances » d’AWS EC2 et en saisissant leurs ID d’instance séparés par des espaces.
aws ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2
Arrêter des instances EC2 Amazon
Vous pouvez arrêter une ou plusieurs instances EC2 Amazon. La syntaxe est similaire à celle de la commande « ec2 start-instances ».
La commande « stop instance » de l’AWS CLI pour une seule instance est indiquée ci-dessous :
aws ec2 stop-instances --instance-ids i-1a3b5c7d9ea0c1ef0
La commande « stop instance » de l’AWS CLI pour plusieurs (trois) instances est identique, mais vous devez spécifier plusieurs identifiants d’instances EC2 séparés par des espaces :
aws ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2
Voici la liste des codes d’état et des noms d’état possibles dans la sortie :
0 – en attente
16 – en cours d’exécution
32 – en cours d’arrêt
48 – terminée
64 – en cours d’arrêt
80 – arrêtée
Redémarrer des instances AWS EC2
Avec la commande aws ec2 reboot-instances vous pouvez redémarrer une ou plusieurs instances AWS EC2. Le principe d’utilisation de cette commande est le même que pour les commandes AWS CLI « start instance » et « stop instance ». Voici la commande permettant de redémarrer une instance :
aws ec2 reboot-instances --instance-ids i-1a3b5c7d9ea0c1ef0
Voici la commande permettant de redémarrer trois instances :
aws ec2 reboot-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2
Ajouter des balises
Les balises vous permettent de classer les instances EC2 et de les identifier ou de les retrouver plus facilement. Voyons deux commandes AWS EC2 permettant de gérer les balises.
Exécutez cette commande pour ajouter une balise d’instance à l’instance en indiquant son ID :
aws ec2 create-tags --resources i-1a3b5c7d9ea0c1ef0 --tags Key=Department,Value=Marketing
Vous pouvez ensuite utiliser une commande pour afficher des informations sur les instances souhaitées à l’aide des balises :
aws ec2 describe-instances --filters "Name=tag-key,Values=Name"
Décrire les volumes EBS
Lors de l’exploitation des instances Amazon EC2, vous pouvez avoir besoin de vérifier des informations sur les volumes EBS, d’attacher des volumes à des instances EC2 et de les détacher. Vous trouverez ci-dessous quelques exemples de commandes AWS EC2 permettant d’obtenir des informations sur les volumes EBS.
Exemple 1
Il s’agit d’une commande simple permettant de décrire les volumes EBS et d’afficher toutes les informations relatives aux volumes existants de votre compte Amazon :
aws ec2 describe-volumes
Cette commande est similaire à la commande Amazon EC2 « describe instances » que nous avons utilisée ci-dessus. La sortie affiche des informations détaillées sur tous les volumes disponibles. Appuyez sur la flèche vers le bas de votre clavier pour faire défiler la liste et afficher toutes les données. La recherche des informations dont vous avez besoin dans ce tableau de données n’est pas pratique. Utilisez les filtres de l’interface CLI AWS pour afficher uniquement les données nécessaires. 
Exemple 2
Voici un exemple de commande EC2 de l’AWS CLI permettant d’afficher les identifiants de tous les volumes EBS :
aws ec2 describe-volumes --output table --query 'Volumes[*].VolumeId'
Exemple 3
Filtrons les identifiants de tous les volumes Amazon EBS qui sont à l’état « attaché » :
aws ec2 describe-volumes
--query 'Volumes[*].Attachments[?State==`attached`].VolumeId[]'
Vous pouvez utiliser la même logique pour appliquer des filtres lorsque vous exécutez des commandes de l’AWS CLI afin de gérer des volumes EBS et d’autres objets AWS.
Exemple 4
Vous pouvez avoir besoin d’afficher les volumes qui ne sont pas attachés et qui sont à l’état « disponible ». Dans ce cas, utilisez la commande :
aws ec2 describe-volumes --filters Name=status,Values=available --output table
Attacher des volumes EBS à des instances AWS EC2
Après avoir obtenu les informations nécessaires sur les instances EC2 et les volumes EBS, vous pouvez attacher un volume EBS à une instance EC2 à l’aide de la commande aws ec2 attach-volume .
Utilisez l’option --device pour spécifier le nom du disque utilisé par un système d’exploitation invité. Dans l’exemple ci-dessous, j’utilise la commande pour attacher un volume EBS en tant que disque identifié par /dev/sde sous Linux invité.
aws ec2 attach-volume --volume-id vol-0034567890abcdef0 --instance-id i-1a3b5c7d9ea0c1ef0 --device /dev/sde
Après l’attachement du volume EBS à l’instance EC2, son état passe de « Disponible » à « Attaché ».
Opérations avec les instantanés
Les instantanés de volumes EBS vous permettent de préserver l’état du volume et de revenir à cet état si nécessaire. Voici un exemple de commande permettant de créer un instantané d’un volume EBS :
aws ec2 create-snapshot --volume-id
Pour afficher les identifiants des instantanés, utilisez cette commande :
ec2 describe-snapshots --owner self
Vérifiez le statut d’un instantané à l’aide de la commande :
aws ec2 describe-snapshots --snapshot-id
Si la progression de l’instantané est de 100 % et que son statut est « terminé », cela signifie que l’instantané a été créé avec succès.
Ces informations vous permettent de choisir la stratégie de protection des données la plus adaptée. {116} pour en savoir plus.
Décrire des images
À l’instar des commandes AWS EC2 permettant de décrire des instances et des volumes, vous pouvez utiliser une commande pour décrire les images Amazon Machine Images (AMI). Voici une commande AWS CLI EC2 simple permettant d’afficher des informations sur les images Amazon Machine Images (AMI) :
aws ec2 describe-images
Vous pouvez afficher des informations sur une image particulière :
aws ec2 describe-images --image-ids ami-0034567890abc4140
En fonction des informations affichées, vous pouvez sélectionner l’AMI nécessaire pour créer une nouvelle instance Amazon EC2.
Lancer de nouvelles instances EC2
Vous pouvez créer (exécuter) une nouvelle instance à partir de l’image souhaitée en utilisant les commandes AWS CLI EC2 ci-dessous.
Vous devez d’abord générer des clés :
aws ec2 create-key-pair --key-name MyKeyPair --output text > MyKeyPair.pem
Créez une nouvelle instance Amazon EC2 par l’intermédiaire de la commande AWS EC2 « run instances » en spécifiant une AMI, un type d’instance et une paire de clés :
aws ec2 run-instances
--image-id ami-0abcdef1234567890
--instance-type t2.micro
--key-name MyKeyPair
Voici un exemple simple. Vous pouvez définir plus d’options lors de la création d’une nouvelle instance EC2 à l’aide de la commande AWS EC2 « run instances », notamment :
–subnet-id
–security-group-ids
–block-device-mappings
–tag-specifications
Supprimer des instances EC2
Il est recommandé de supprimer les instances AWS EC2 qui ne sont plus utilisées depuis longtemps afin de réduire les coûts. Soyez prudent, car il est impossible de récupérer une instance EC2 supprimée. Si vous n’êtes pas certain d’avoir besoin d’une instance supprimée ultérieurement, pour sauvergarder l’instance EC2 à l’aide de NAKIVO Backup & Replication vers un référentiel de sauvegarde local ou vers Amazon S3.
Vous pouvez supprimer plusieurs instances en spécifiant leurs identifiants à l’aide de la commande :
aws ec2 terminate-instances --instance-ids i-0abcdef1234567890 i-0abcdef123456789a i-0abcdef123456789b
Conclusion
AWS CLI est un puissant outil en ligne de commande qui peut vous aider à automatiser l’exécution d’un grand nombre de tâches similaires. Les filtres AWS EC2 vous permettent de configurer la sortie et d’obtenir uniquement les données dont vous avez besoin. Il existe des commandes pour afficher des informations sur les services Amazon et d’autres pour effectuer des modifications sur ces derniers.
Afin d’éviter toute erreur humaine due à une configuration incorrecte des scripts créés avec AWS CLI, il est fortement recommandé d’effectuer régulièrement Sauvegarde AWS EC2 à l’aide d’une solution tierce dédiée.
< span data-sheets-value="{"1":2,"2":"















