#1.Amazon S3 コンソールを使用してバケットを削除する#
「Amazon S3 コンソールは、空のバケットおよび空ではないバケットの削除をサポートしています」
ということで、空の場合でも空でな場合どちらでも削除できるとのことなので省略。
#2.AWS CLI を使ってバケットを削除する#
「バケットのバージョニングが有効化されていない場合にのみ、AWS CLI を使ってコンテンツオブジェクトがあるバケットを削除できます。
バケットのバージョニングが有効化されていない場合には、rb (remove bucket) AWS CLI command with --force パラメータを使用して空ではないバケットを取り除くことができます。
このコマンドは、すべてのオブジェクトを削除した後にバケットを削除します。」
バージョニング無効であれば、オブジェクトがあっても、
aws s3 rb s3://bucket-name --force
で削除することができる。
なので、バージョニングを有効にした状態だけ検証してみた。
##オブジェクトがある状態での削除
$ aws s3 ls s3://aws-delete-cli
2019-09-20 05:03:39 0 test.txt
$ aws s3 rb s3://aws-delete-cli
remove_bucket failed: s3://aws-delete-cli An error occurred (BucketNotEmpty) when calling the DeleteBucket operation: The bucket you tried to delete is not empty. You must delete all versions in the bucket.
##オブジェクトがない状態、かつ--forceをつけた場合。
$ aws s3 rb s3://aws-delete-cli --force
remove_bucket failed: s3://aws-delete-cli An error occurred (BucketNotEmpty) when calling the DeleteBucket operation: The bucket you tried to delete is not empty. You must delete all versions in the bucket.
##オブジェクトがない状態での削除
$ aws s3 rm s3://aws-delete-cli/test.txt
delete: s3://aws-delete-cli/test.txt
$ aws s3 ls s3://aws-delete-cli
$ aws s3 rb s3://aws-delete-cli
remove_bucket failed: s3://aws-delete-cli An error occurred (BucketNotEmpty) when calling the DeleteBucket operation: The bucket you tried to delete is not empty. You must delete all versions in the bucket.
まあ、CLIではバージョニングを無効にしなければいけないということだ。