各リージョンの各サービスを個別に確認しなくても、全てのリソースをリストアップすることができます。
AWSアカウント解約時に、不要なアクティブリソースが残っていないかの確認にも役立つかもしれません。
AWS アカウントを解約したときに、アクティブなリソースがすべて自動的に終了されるとは限りません。アカウントを解約する前に、アクティブなリソースがあるかどうかを確認し、それらを終了することがベストプラクティスです。
スクリプト
get-resources.sh
for region in `aws ec2 describe-regions --query 'Regions[].RegionName' --region us-west-1 --output text` do echo "region = ${region}" aws resourcegroupstaggingapi get-resources --region ${region} --query 'ResourceTagMappingList[].ResourceARN'; done
- describe-regionsでとってきた各regionに対してresourcegroupstaggingapi get-resources してます。
- 最初にdescribe-regionsするのはどのリージョンに対してでもOKだと思うので、とりあえずus-west-1にしています。
前提条件
- aws cli が入っていること
利用イメージ
実行
export AWS_PROFILE=xxxx # デフォルトプロファイルを常に設定しているなら不要 sh get-resources.sh
出力
region = eu-north-1 [] region = ap-south-1 [] region = eu-west-3 [] region = eu-west-2 [] region = eu-west-1 [] region = ap-northeast-2 [] region = ap-northeast-1 [ "arn:aws:apigateway:ap-northeast-1::/restapis/〜/stages/devA", "arn:aws:apigateway:ap-northeast-1::/restapis/〜/stages/devB", 〜 "arn:aws:ec2:ap-northeast-1:111111111111:vpc/vpc-1111111a", "arn:aws:ec2:ap-northeast-1:111111111111:vpc/vpc-1111111b", 〜 "arn:aws:lambda:ap-northeast-1:111111111111:function:xxxx-checker", "arn:aws:lambda:ap-northeast-1:111111111111:function:xxxx-deleter", 〜 ...
留意点
resourcegroupstaggingapiが対応していないサービスがもしあれば、それはリストアップされてこない。
参考
ec2/describe-regions
https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-regions.html
リージョンのリストアップで利用
resourcegroupstaggingapi/get-resources
https://docs.aws.amazon.com/cli/latest/reference/resourcegroupstaggingapi/get-resources.html
リソースのリストアップで利用