S3 バケットを削除したいがバケット内のオブジェクトが多すぎて削除が難しい場合の対処方法

大量のオブジェクトが存在する S3 バケットを空にする場合は、ライフサイクルルールを用いて削除することが望ましいです。
2024.03.22

困っていること

S3 バケットを削除したいです。

S3 バケットを削除するために、S3 バケットを空にしないといけません。

S3 バケットには大量のオブジェクト(数万~数億単位)があり、削除に関するコマンドを実行することに不安があります。

どのような対処法が望ましいかを教えてください。

どう対応すればいいの?

S3 ライフサイクルルールを用いて削除することが対処法として考えられます。

できるだけ早く削除したい場合は、下記のパターンが考えられます。

バージョニングなしのバケットの場合

  • 「オブジェクトの現行バージョンを有効期限切れにする」にチェック
    • オブジェクト作成後の日数を 1 日にする
  • 「有効期限切れのオブジェクト削除マーカーまたは不完全なマルチパートアップロードを削除」にチェック
    • 「不完全なマルチパートアップロードを削除」にチェック
    • 日数を 1 日にする

バージョニングありのバケットの場合

  • 「オブジェクトの現行バージョンを有効期限切れにする」にチェック
    • オブジェクト作成後の日数を 1 日にする
  • 「オブジェクトの非現行バージョンを完全に削除」にチェック
    • オブジェクトが現行バージョンでなくなってからの日数を 1 日にする
    • 保持する新しいバージョンの数は空欄にする
  • 「有効期限切れのオブジェクト削除マーカーまたは不完全なマルチパートアップロードを削除」にチェック
    • 「不完全なマルチパートアップロードを削除」にチェック
    • 日数を 1 日にする

参考資料

Amazon S3 バケットを削除する | AWS re:Post

削除ルールを作成した時点ですでに期限が切れているオブジェクトを、ライフサイクルルールで削除するときの削除タイミングを教えてください | DevelopersIO