S3バケットのバージョニングが有効な場合、S3バケットを削除しようとしても失敗してしまいます。
そのためのコードをメモ代わりに記載しています。
※下記の例では、S3バケット名はbucket-name-sample
としています。
deleteS3.sh
#!/usr/bin/env bash
# バケット内のオブジェクトを削除
aws s3api delete-objects --bucket bucket-name-sample --delete "$(aws s3api list-object-versions --bucket bucket-name-sample | jq '{Objects: [.Versions[] | {Key:.Key, VersionId : .VersionId}], Quiet: false}')"
# S3バケットを削除
aws s3 rm s3://bucket-name-sample --recursive
これでS3バケットの削除が成功します。