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

所要時間2分
0

Amazon Simple Storage Service (Amazon S3) バケットに何百万ものオブジェクトが格納されています。ストレージ料金が請求されないよう、ライフスタイル設定ルールを使用してバケットを空にしたいと考えています。

解決策

重要: 次の解決策では、Amazon S3 バケット内のすべてのデータが完全に削除されます。データを復元することはできないため、削除する前に、バケット内のすべてのオブジェクトとデータを確認してください。

ライフサイクル設定ルールを使用してバケットを空にするには、コンソールまたは CLI を使用します。

コンソールを使用する

コンソールで、現行バージョンのオブジェクトを期限切れに設定し、過去のバージョンのオブジェクトを完全に削除するライフサイクル設定ルールを作成します。ルールを作成するには、次の手順を実行します。

  1. Amazon S3 コンソールを開きます。
  2. バケットの一覧から、空にするバケットを選択します。
  3. [管理] タブを選択します。
  4. [ライフサイクルルールの作成] を選択します。
  5. [ライフサイクルルール名] にルールの名前を入力します。
  6. [ルールの範囲を選択] で、[バケット内のすべてのオブジェクトに適用] を選択します。
  7. [このルールがバケット内のすべてのオブジェクトに適用されることに同意する] を選択します。
  8. [ライフサイクルルールのアクション] で、次のオプションを選択します。 [現行バージョンのオブジェクトを期限切れにする] [現行以外のバージョンのオブジェクトを完全に削除する] [期限切れオブジェクトの削除マーカーまたは、不完全なマルチパートアップロードを削除する]
  9. [現行バージョンのオブジェクトを期限切れにする] フィールドの [オブジェクト作成後の日数] フィールドに 1 と入力します。
  10. [オブジェクトの非現行バージョンを完全に削除する] フィールドの [オブジェクトが最新バージョンでなくなってからの日数] フィールドに 1 と入力します。
  11. すべてのバージョンを削除するには、[保持する新しいバージョンの数 (オプション)] フィールドを空白のままにしてください。
  12. [不完全なマルチパートアップロードを削除] を選択し、 [日数] フィールドに 1 と入力します。
  13. [ルールの作成] を選択します。
  14. 2 つ目のライフサイクルルールを作成するには、ステップ 4 ~ 7 を繰り返します。
  15. 次のオプションを選択します。 期限切れのオブジェクト削除マーカーまたは不完全なマルチパートアップロードを削除する
  16. [期限切れのオブジェクト削除マーカーを削除する] を選択します。
  17. [ルールの作成] を選択します。

Amazon S3 はライフサイクルルールを毎日 1 回実行します。Amazon S3 が初めてルールを実行した後で、有効期限の対象となるすべてのオブジェクトに削除マークが付けられます。これで、削除対象としてマークされたオブジェクトの料金は請求されなくなります。

Amazon S3 はオブジェクトバージョンを非同期的に期限切れにし、削除マーカーを削除します。バケットが空になるまでに、ルールの実行に数日かかる場合があります。Amazon S3 における非同期オブジェクト削除に関する詳細については、「オブジェクトを失効させる」を参照してください。

CLI を使用する

次の手順を実行することで、AWS コマンドラインインターフェイス (AWS CLI) を使用して S3 バケットを空にするライフサイクルルールを作成することができます。

  1. JSON コンテンツを含むファイル (例: lifecycle-rules.json) を作成します。

JSON 例

{
  "Rules": [{
      "Expiration": {
        "Days": 1
      },
      "ID": "FullDelete",
      "Filter": {
        "Prefix": ""
      },
      "Status": "Enabled",
      "NoncurrentVersionExpiration": {
        "NoncurrentDays": 1
      },
      "AbortIncompleteMultipartUpload": {
        "DaysAfterInitiation": 1
      }
    },
    {
      "Expiration": {
        "ExpiredObjectDeleteMarker": true
      },
      "ID": "DeleteMarkers",
      "Filter": {
        "Prefix": ""
      },
      "Status": "Enabled"
    }
  ]
}
  1. AWS CLI コマンドで JSON ファイルを使用します。
aws s3api put-bucket-lifecycle-configuration --bucket delete-marker-testing-demo --lifecycle-configuration file://lifecycle-rules.json

: プレフィックスを追加することで、プレフィックスレベルでのみルールを適用できます。例を次に示します。

"Filter": {
  "Prefix": "folder1/"
},

関連情報

バージョニングが有効なバケット内の、期限切れオブジェクトの削除マーカーを削除する

オブジェクトのライフサイクルを管理する

Amazon S3 オブジェクトとバケットを削除する方法を教えてください

バケットを削除する

バケットで S3 ライフサイクル設定を行う

2コメント

バージョニングがオンになっており、以下のルールを設定しています。 2日後にオブジェクトの現行バージョンを有効期限切れにする 3日後にオブジェクトの非現行バージョンを完全に削除 「期限切れのオブジェクトの削除マーカーの削除」のルールを設定しなくても期限切れのオブジェクトの削除マーカーとなった翌日に削除されのですが、仕様が変わったのでしょうか?

応答済み 2年前

コメントをお寄せいただき、ありがとうございます。確認させていただいた後で、必要に応じて情報センターを更新いたします。

profile pictureAWS
エキスパート
応答済み 2年前

関連するコンテンツ