EC2 インスタンス削除時に、自動でEBS ボリュームも削除されるつもりだったのにうっかり残っていた、という経験はありますでしょうか。
このようなとき、アタッチされていない EBS ボリュームの一覧を取得したいときがあるかもしれません(ありました)。
ボリュームの状態が available
が「ボリュームはインスタンスにアタッチされていません」とのことなので、--filters
オプションで status
が available
なものに絞った上で、 --query
オプションで表示項目を調整することにします。
Name タグの値だけ表示したい場合
$ aws ec2 describe-volumes --filters Name=status,Values=available --query 'Volumes[*].Tags[?key==Name].Value[]' [ "ugui", "oikawa", "ginbuna", "kinbuna", "tanago" ]
ボリュームIDとセットで表示したい場合(キー付き)
$ aws ec2 describe-volumes --filters Name=status,Values=available --query 'Volumes[].{VolumeId: VolumeId, Name: Tags[?key==Name].Value | [0]}' [ { "VolumeId": "vol-086009cxxxxxxxxxx", "Name": "ugui" }, { "VolumeId": "vol-01183daxxxxxxxxxx", "Name": "oikawa" }, { "VolumeId": "vol-0794be4xxxxxxxxxx", "Name": "kinbuna" }, { "VolumeId": "vol-0a9efabxxxxxxxxxx", "Name": "tanago" } ]
JMESPath 苦手なので、もう少し良い書き方があるかもしれません。