ワンライナー
aws s3 ls | awk '{print $3}' | xargs -i aws s3 rb s3://{}
オブジェクトがのこっている場合は --force
オプションをつけて
aws s3 ls | awk '{print $3}' | xargs -i aws s3 rb --force s3://{}
でいけます。このスクリプトのいいところはAWS CloudShellでながせるところです。
余談
アカウントのリソースを削除するということであれば
aws-nukeもつかえますが、CloudFormationをわざわざ実行するほどでもないという場合に使っていただければ。
10年お世話になった検証アカウントを削除するということで、思い出にひたりながら、こまごまとリソースを消していました。
ですが、S3のバケットが大量にのこっていて手で消すのも面倒だしということで、このワンライナーの出番です。
AWS CloudShellであれば、他のアカウントとまちがえて操作するということもないし、シェルもお手軽なので便利かとおもいます。
で、今消えているオブジェクト出力をながめてるのですが、大量のCloudTrailログが消えていっています。
2016年とかかいてあるので8年前ですか…もしかするとこれ、消えないでタイムアウトするかもしれませんね。
そんな大量にオブジェクトがある場合は、s3 rbコマンドでは消せないのでバケットのライフサイクル設定の指定で1日でオブジェクトを削除してからバケットを削除するという方法になります。マネージメントコンソールでも注意がでてますね。
利用している時間が短かかったということもありますが、8年分のログで月$0.3、S3優秀です。
ではでは。