LoginSignup
2
4

More than 5 years have passed since last update.

【AWS】AWS CLIでインスタンスの情報を抽出(InstanceID, VolumeID, SnapshotID)

Posted at

はじめに

EC2インスタンスのスナップショットをスクリプトで取得しようとした際、下記情報をコマンドで取得する必要がありました。備忘録です。
※sedコマンドとかしていますが、ダブルクォーテーションを削除するためです。

①自分自身のインスタンスID
②自分自身のボリュームID
③自分自身のボリュームから取得したスナップショットID一覧
④自分自身のTAG(Name)

前提

  • AWS CLIがインストールされていること。
  • aws configureコマンド実行済み。
  • EC2FullAccessの権限を持った、IAMユーザーのアクセスキーとシークレットキーを取得済み。

①自分自身のインスタンスID取得

169.254.169.254にインスタンスのメタデータがあるらしいです。

curl 'http://169.254.169.254/latest/meta-data/instance-id'; echo -en "\n"

②自分自身のボリュームID取得

  • ${AWS_REGION}: リージョンを記載する。(例:ap-northeast-1)
  • ${INSTANCE_ID}: ①で取得したインスタンスIDを記載する。
aws ec2 describe-instances --region ${AWS_REGION} --instance-id ${INSTANCE_ID} --query 'Reservations[].Instances[].BlockDeviceMappings[].Ebs[]' | grep vol | sed 's/^.*"\(.*\)".*$/\1/'

③自分自身のボリュームから取得したスナップショットID一覧取得

  • ${EBS_VOLUME_ID}: ②で取得したボリュームID
aws ec2 describe-snapshots --filters Name=volume-id,Values=${EBS_VOLUME_ID} | grep snap- | sed 's/^.*"\(.*\)".*$/\1/'

④自分自身のTAG(Name)

  • ${AWS_REGION}: リージョンを記載する。(例:ap-northeast-1)
  • ${INSTANCE_ID}: ①で取得したインスタンスIDを記載する。
aws ec2 describe-instances --region ${AWS_REGION} --instance-id ${INSTANCE_ID} --query 'Reservations[].Instances[].Tags[].Value[]' | grep [0-9a-zA-Z] | sed 's/^.*"\(.*\)".*$/\1/'
2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4