0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

aws-cliでタグの有無を検索条件に一覧出力してみる(snapshot)

Posted at

AWSのタグ情報は運用管理や料金管理につながる部分となるため。
通常運用では仕組みから付与されたり、手動でタグ登録する際はルールに従ってタグ登録がされているかと思います。

ここではイレギュラーケースが発生したときを想定し

  • タグ情報が何もついていないSnapshot
  • 特定のタグがついていないSnapshot
  • 特定のタグの組み合わせがついていないSnapshot

aws-cliで一覧に出力する方法を説明します。

参考ドキュメント

AWS CLI を使用して、指定されたキータグの有無にかかわらず、Amazon EBS スナップショットをすべてリストするにはどうすればよいですか?

タグ情報がなにもついていないSnapshotの一覧を取得

○○のタグ情報がついているといった検索をする場合は、--filterオプションを使ってフィルタをできますが。

今回はタグがついて いない ものを探す必要があるため

`--filter`オプションではなく`query`オプションで全件取得したあとに`query`していきます。
# タグ登録がないSnapshotの情報を出力
aws ec2 describe-snapshots --owner self --query 'Snapshots[?!not_null(Tags)]'

上記の様にSnapshots構造を!not_null(tags)で検索して、タグ登録がないSnapshot一覧を出力しています。

describe-snapshotsではタグ登録がない場合は、Tags自体がなくなるため。

not_null(Tags)で、タグが登録されていると真となり、それを!(反転)でなにもタグ登録がない場合に真となる検索条件となります。

実行サンプル

下記のようなSnapshotがある状態で実行すると

image.png

タグが登録されていない、説明がqiita-tags001となっているスナップショットの情報が取得できます。

image.png

特定のタグが登録されていないSnapshotの一覧を取得

ここではNameが登録されていないsnapshotを検索してみます。

# Nameタグが登録されていないSnapshotの情報を出力
aws ec2 describe-snapshots --owner-ids self --query 'Snapshots[?!(Tags[?Key == `Name`])]'

?Tags[?Key == `Name`]でNameタグが登録されていれば真となる条件となり、これを!(反転)して?!(Tags[?Key == `Name`])はNameタグが登録されてなければ真となります。

実行サンプル

下記のようなSnapshotがある状態で実行すると

image.png

Nameタグが登録されていない、説明qiita-tags001qiita-tags003のスナップショットが取得できます。

image.png

特定のタグの組み合わせが登録されていないSnapshotの一覧を取得

ここではNameタグとsampleタグが登録されていない一覧を検索してみます

# Nameタグが登録されていないSnapshotの情報を出力
aws ec2 describe-snapshots --owner-ids self --query 'Snapshots[?!(Tags[?Key == `Name`] && Tags[?Key == `sample`])]'

?Tags[?Key == `Name`] && Tags[?Key == `sample`]でNameタグとsampleタグをもつ場合に真となる条件となり、これを!(反転)して?!(Tags[?Key == `Name`] && Tags[?Key == `sample`])はNameタグとsampleタグがない場合は真となります。

実行サンプル

下記のようなSnapshotがある状態で実行すると

image.png

Nameタグとsampleタグがあわせて登録されていない説明qiita-tags001,qiita-tags002,qiita-tags003が取得できました。

image.png

総評

filterオプションを利用せずにqueryで全件チェックをしているため。
Snapshotが大量にある環境では時間がかかるかと思いますが、特定のタグが登録されていないといった切り口で情報を一覧で出力できるのは便利です。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?