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.

NAKIVO pour la sauvegarde AWS EC2

NAKIVO pour la sauvegarde AWS EC2

Sauvegarde des instances Amazon EC2 vers EC2, AWS S3 et sur site. Options anti-ransomware. Récupération rapide des instances et des objets d'application.

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, groffet less doit ê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 :

  1. Installez curl :

apt-get install curl

  1. Téléchargez l’archive d’installation d’AWS CLI :

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

  1. Extrayez les fichiers d’installation contenus dans l’archive téléchargée :

unzip awscliv2.zip

  1. Exécutez le programme d’installation avec les privilèges root :

sudo ./aws/install

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

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

Downloading the AWS CLI installer for Windows

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.

Running the AWS CLI installation wizard

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

Checking the installed version of AWS CLI after changing the directory

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.

Configuring environment variables in Control Panel

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 .

Editing the PATH variable

3. Dans la fenêtre Modifier la variable d’environnement , cliquez sur New.

Adding a new value to the PATH variable

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

Adding the AWS CLI installation directory to PATH in PowerShell

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

Checking the installed version of AWS CLI in Windows

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

  1. Téléchargez le fichier d’installation :
    curl -o awscli.zip https://s3.amazonaws.com/aws-cli/awscli-bundle.zip
  2. Extrayez le contenu de l’archive zip téléchargée :
    unzip awscli.zip
  3. Installez AWS CLI :
    sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

Méthode 2

  1. Téléchargez le package d’installation :
    curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
  2. Exécutez le programme d’installation :
    sudo installer -pkg AWSCLIV2.pkg -target /
  3. 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 .

The initial configuration of AWS CLI

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

An example of an AWS CLI list EC2 instances command

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.

An example of an AWS EC2 describe instances query

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 .

An example of using the EC2 describe instances filter

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"

AWS EC2 list instances and their instance IDs

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}"

AWS list EC2 instances in a table

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)'

AWS EC2 describe instances by using AWS EC2 filters

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"

The AWS EC2 describe instances command to display public IP addresses

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

An example of the AWS CLI describe instances command with AWS CLI filters

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. A simple AWS CLI EC2 command to describe EBS volumes

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[]'

Displaying information about EBS volumes using AWS EC2 filters

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 --description 'Volume Snapshot for ATA Blog via the AWS CLI' --tag-specifications 'ResourceType=snapshot,Tags=[{Key=Name,Value=FileServer01},{Key=Purpose,Value=Enterprise File Storage}]'

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":"

Essayez NAKIVO Backup & Replication

Essayez NAKIVO Backup & Replication

Profitez d'un essai gratuit pour découvrir toutes les fonctionnalités de protection des données de la solution. 15 jours gratuits. Aucune restriction en termes de fonctionnalités ou de capacité. Aucune carte bancaire requise.

Les gens qui ont consulté cet article ont également lu