ライフサイクル設定ルールを使用して Amazon S3 バケットを空にするにはどうすればよいですか?

最終更新日: 2020 年 5 月 28 日

数百万のオブジェクトを格納する Amazon Simple Storage Service (Amazon S3) バケットがあります。これ以上ストレージに対して課金されないように、バケットを空にしたいと考えています。ライフサイクル設定ルールを使用してバケットを空にするにはどうすればよいですか?

解決方法

まず、オブジェクトの現行バージョンを失効させ、オブジェクトの以前のバージョンを完全に削除するライフサイクルルールを作成します。

  1. Amazon S3 コンソールを開きます。
  2. バケットのリストから、空にするバケットを選択します。
  3. [管理] タブを選択します。
  4. [ライフサイクルルールの追加] を選択します。
  5. ライフサイクルルールの名前を入力します。
  6. [ルールスコープを選択] で、[バケット内のすべてのオブジェクトに適用] を選択します。その後、[次へ] を選択します。
  7. [ストレージクラスへの移行] では、いずれのオプションも選択しないでください。その後、[次へ] を選択します。バケットを空にするため、オブジェクトを別のストレージクラスに移行する必要はありません。
  8. [失効の設定] に、次のように入力します。
    [現行バージョン] と [以前のバージョン] の両方を選択します。
    [オブジェクトの現行バージョンを失効する] に「1」と入力し、[オブジェクト作成の 1 日後] を指定します。
    [前のバージョンを完全に削除する] に「1」と入力して、[以前のバージョンになってから 1 日後] を指定します。
    [不完全なマルチパートアップロードをクリーンアップする] を選択します。
    次に、「1」と入力して [アップロード開始から 1 日後] を指定します。
  9. [次へ] を選択します。
  10. [このルールはバケット内のすべてのオブジェクトに適用されます] の下にあるメッセージを確認します。次に、[このライフサイクルルールがバケット内のすべてのオブジェクトに適用されることを確認します] を選択します。
  11. [保存] を選択します。

次に、失効したオブジェクト削除マーカーをクリーンアップする別のライフサイクルルールを作成します。

  1. [ライフサイクルルールの追加] を選択します。
  2. ライフサイクルルールの名前を入力します。
  3. [ルールスコープを選択] で、[バケット内のすべてのオブジェクトに適用] を選択します。その後、[次へ] を選択します。
  4. [ストレージクラスへの移行] では、いずれのオプションも選択しないでください。その後、[次へ] を選択します。
  5. [失効の設定] で、[期限切れのオブジェクト削除マーカーをクリーンアップする] を選択します。
  6. [次へ] を選択します。
  7. [このルールはバケット内のすべてのオブジェクトに適用されます] の下にあるメッセージを確認します。次に、[このライフサイクルルールがバケット内のすべてのオブジェクトに適用されることを確認します] を選択します。
  8. [保存] を選択します。

Amazon S3 は、毎日 1 回ライフサイクルルールを実行します。Amazon S3 がルールを初めて実行すると、失効対象となるすべてのオブジェクトに削除マーカーが付され、それらのオブジェクトに対して課金されなくなります。ルールが実行され、バケットが完全に空になるまでに数日かかることがあります。これは、オブジェクトバージョンを失効させることと、削除マーカーをクリーンアップすることが、非同期ステップであるためです。詳細については、オブジェクトの失効を理解するを参照してください。