Comment référencer le volume EBS ou les informations d'instantané pour mon instance Amazon EC2 à l'aide de l'interface de ligne de commande AWS ?

Date de la dernière mise à jour : 12/12/2019

Comment référencer le volume Amazon Elastic Block Store (Amazon EBS) ou les informations sur un instantané pour mon instance Amazon Elastic Compute Cloud (Amazon EC2) à l'aide de l'interface de ligne de commande AWS (CLI AWS) ?

Solution

Remarque : installez le processeur jq avant d'exécuter les commandes.

Amazon Linux et Amazon Linux 2 :

$ sudo wget -O jq https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64
$ sudo chmod +x ./jq
$ sudo cp jq /usr/bin

Pour les autres distributions, consultez jq Command Line Processor sur le site web GitHub afin d'obtenir des instructions sur le téléchargement et l'installation.

Rechercher tous les instantanés de plus de 1 mois

La commande suivante répertorie tous les instantanés EBS à l'aide de l'opération describe-snapshots, pour lesquels l'horodatage date de plus d'un mois (--date='-1 month').

$ aws ec2 describe-snapshots --owner self --output json | jq '.Snapshots[] | select(.StartTime < "'$(date --date='-1 month' '+%Y-%m-%d')'") | [.Description, .StartTime, .SnapshotId]'

Répertorier les instantanés de plus de 1 mois dans toutes les régions

L'exemple de commande suivant utilise la même commande que dans le premier exemple. Il passe en revue les instantanés dans toutes les régions à l’aide de l’opération décrire-régions.  

$ for REGION in $(aws ec2 describe-regions --output text --query 'Regions[].[RegionName]') ; do echo $REGION && aws ec2 describe-snapshots --owner self --region $REGION --output json | jq '.Snapshots[] | select(.StartTime < "'$(date --date='-1 month' '+%Y-%m-%d')'") | [.Description, .StartTime, .SnapshotId]' ; done

Rechercher tous les instantanés disponibles publiquement dans un compte AWS dans toutes les régions

Cet exemple de commande répertorie tous les instantanés pour lesquels le groupe CreateVolumePermission  est égal à all (tous), pour toutes les régions.

$ for REGION in $(aws ec2 describe-regions --output text --query 'Regions[].[RegionName]') ; do echo "$REGION:"; for snap in $(aws ec2 describe-snapshots --owner self --output json --region $REGION --query 'Snapshots[*].SnapshotId' | jq -r '.[]'); do aws ec2 describe-snapshot-attribute --snapshot-id $snap --region $REGION --output json --attribute createVolumePermission --query '[SnapshotId,CreateVolumePermissions[?Group == `all`]]' | jq -r '.[]'; done; echo; done

Obtenir le statut de tous les volumes actuellement à l'étape d'optimisation (après modification du volume) dans toutes les régions

L'exemple de commande suivant répertorie tous les volumes à l'aide de l’opération décrire-modifications-volumes, où l’opération modification-état est définie par la valeur optimisation, pour toutes les régions.  

$ for REGION in $(aws ec2 describe-regions --output text --query 'Regions[].[RegionName]') ; do echo $REGION && aws ec2 describe-volumes-modifications --query 'VolumesModifications[].{VolumeID:VolumeId,TargetSize:TargetSize,OriginalSize:OriginalSize,Progress:Progress,OriginalIops:OriginalIops,TargetIops:TargetIops}' --output json --filter 'Name=modification-state,Values=optimizing' --region $REGION; done

Rechercher tous les volumes non joints à une instance dans toutes les régions

Cet exemple de commande répertorie les volumes dont le statut est défini sur disponible, pour toutes les régions.  

$ for REGION in $(aws ec2 describe-regions --output text --query 'Regions[].[RegionName]') ; do echo $REGION && aws ec2 describe-volumes --filter "Name=status,Values=available" --query 'Volumes[*].{VolumeID:VolumeId,Size:Size,Type:VolumeType,AvailabilityZone:AvailabilityZone}' --region $REGION; done

Rechercher tous les volumes dans l'état « erreur » dans toutes les régions

L'exemple de commande suivant décrit tous les volumes, dans toutes les régions, pour lesquels le statut est défini sur error (erreur).

$ for REGION in $(aws ec2 describe-regions --output text --query 'Regions[].[RegionName]') ; do echo $REGION && aws ec2 describe-volumes --filter "Name=status,Values=error" --query 'Volumes[*].{VolumeID:VolumeId,Size:Size,Type:VolumeType,AvailabilityZone:AvailabilityZone}' --region $REGION; done

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

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


Vous avez besoin d'aide ?