はじめに
円安が進行しています。この記事を書いている2022年4月3日時点で約122円です。
私の個人AWS環境でも意外と大きな金額になってしまいまして、適当に作って放置しているEC2なんかを終了させてできるだけAWSへの課金は抑えたいところです。
とはいうものの、どのリージョンに構築したかを1つ1つ見ていくのは面倒です。
aws-cliだとaws configureで定義したリージョンのEC2インスタンス一覧を表示してくれますが、全てのリージョンを表示してはくれません。
ということで、全てのリージョンのEC2インスタンスを出力するワンライナーです。
コマンド
ということで、コマンドはこれです。
aws ec2 describe-regions | awk '{print $3}' | xargs -n 1 -I{} -P 5 aws --region {} ec2 describe-instances
以下のように表示されます。インスタンスを終了させたので、initiated shutdown
の表示となっています。
RESERVATIONS 449671225256 r-0c78523785507c0d1
INSTANCES 0 x86_64 False True xen ami-0ab0bbbd329f565e6 i-008dbc94773e0a716 t2.micro radio 2022-04-02T21:51:53.000Z /dev/xvda ebs User initiated (2022-04-02 21:52:49 GMT) hvm
MONITORING disabled
PLACEMENT ap-northeast-1a default
STATE 48 terminated
STATEREASON Client.UserInitiatedShutdown Client.UserInitiatedShutdown: User initiated shutdown
RESERVATIONS 449671225256 r-0de3f43906ea05938
INSTANCES 0 x86_64 False True xen ami-0c02fb55956c7d316 i-0a052bda230bffea0 t2.micro 2022-04-02T21:22:58.000Z /dev/xvda ebs User initiated (2022-04-02 21:53:11 GMT) hvm
MONITORING disabled
PLACEMENT us-east-1a default
STATE 48 terminated
STATEREASON Client.UserInitiatedShutdown Client.UserInitiatedShutdown: User initiated shutdown
aws configureでデフォルトの出力フォーマットをtextにしているので、awkを使ってます。jsonな方はjqを入れると同じように出力されると思います。
確認した環境
以下の環境で確認しています。
クライアントOS
$ cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
awc-cli
$ aws --version
aws-cli/1.14.28 Python/2.7.5 Linux/3.10.0-693.21.1.el7.x86_64 botocore/1.8.35
aws configure
$ aws configure
AWS Access Key ID [****************FJGG]:
AWS Secret Access Key [****************D5Ra]:
Default region name [ap-northeast-1]:
Default output format [text]: