Terraform や CloudFormation で Destroy
などで一括リソース破棄を行う場合、BucketNotEmpty: The bucket you tried to delete is not empty. You must delete all versions in the bucket.
と言われてエラーで処理が中断される場合がある。
これ、ずっと S3 バケット内部のファイルを全部削除すればいい、と思っていたのだけど違ったので。
どうする
マネジメントコンソールから S3 の画面へ移動し、 空にするを選択する。
いわゆる aws s3 rm s3://${BUCKET_NAME} --recursive
だと、冒頭の通りバケット内部のファイル削除だけ実施されたことになり、各種ツールが期待するところの空のバケットにはなっていないらしい。 たぶんバージョニングとかそのへんのアレなんだろうな、とは思う。