S3 ライフサイクルルールを利用した「期限切れのオブジェクト削除マーカー」と「未完了のマルチパートアップロード」の削除設定をやってみた

2023.12.06

はじめに

テクニカルサポートの 片方 です。
Amazon Simple Storage Service (Amazon S3) に不完全なマルチパートアップロードがあると請求コストが発生します。そのような無駄なコストを抑えたい場合、管理を簡単にしたい場合に有効なのが S3 ライフサイクルルールを利用した方法です。設定した日数経過後、対象 S3 バケット内に「不完全なマルチパートアップロード」があると自動で削除することが可能です。
今回はマネジメントコンソール上で「期限切れのオブジェクト削除マーカー」を削除することも併せて設定したいと思います。

期限切れのオブジェクト削除マーカーとは

現在のオブジェクトバージョンが唯一のオブジェクトバージョンであり、削除マーカーでもある場合 (「期限切れオブジェクト削除マーカー」とも呼ばれます。

やってみた

ドキュメント内の手順を参考にやってみました。

1. AWS Management Console にサインインし、Amazon S3 コンソール https://console.aws.amazon.com/s3/ を開きます。
2. [Buckets (バケット)] リストで、ライフサイクルルールを作成するバケットの名前を選択します。

3. [Management (管理)] タブを選択して、[Create lifecycle rule (ライフサイクルルールを作成する)] を選択します。

4. [Lifecycle rule name (ライフサイクルルール名)] に、ルールの名前を入力します。その名前はバケット内で一意である必要があります。
5. ライフサイクルルールのスコープを選択します。今回は、バケット内のすべてのオブジェクトに適用するを選択します。

  • 特定のプレフィックスを持つすべてのオブジェクトに対してライフサイクルルールを作成するには、[Limit the scope of this rule using one or more filters] (1 つまたは複数のフィルターを使用してこのルールの適用範囲を制限) を選択し、[Prefix] (プレフィックス) にプレフィックスを入力します。

  • このライフサイクルルールをバケット内のすべてのオブジェクトに作成するには、[This rule applies to all objects in the bucket] (このルールをバケット内のすべてのオブジェクトに適用する) を選択して、[I acknowledge that this lifecycle rule will apply to all objects in the bucket] (このライフサイクルルールがバケット内のすべてのオブジェクトに適用されることを了承します) を選択します。

6. [Lifecycle rule actions] (ライフサイクルルールアクション) で、[Delete expired object delete markers or incomplete multipart uploads] (期限切れのオブジェクト削除マーカーまたは不完全のマルチパートアップロードを削除) を選択します。

7. [Delete expired object delete markers or incomplete multipart uploads] (期限切れオブジェクト削除マーカーまたは不完全のマルチパートアップロードを削除する) で、[Delete expired object delete markers] (期限切れのオブジェクト削除マーカーを削除) と、[Delete incomplete multipart uploads] (不完全のマルチパートアップロードを削除) を選択します。

8. [Number of days] (日数) フィールドに、不完全のマルチパートアップロードを削除するまでの日数 (この例では 7 日) を入力します。
9. [ルールの作成] を選択します。

以下の様になれば、成功です。

ドキュメント記載の通り、設定の反映まで多少のタイムラグがあるようです。そのほかの留意点も含め一読することをお勧めします。

ライフサイクル設定を設定する前に、次の点に注意してください。

伝達遅延
バケットに対してライフサイクル設定を追加する場合、新しい、あるいは更新された S3 ライフサイクル設定がすべての Amazon S3 システムに完全に伝達されるまでには、通常、多少のタイムラグがあります。ライフサイクル設定が完全に有効になるまで、数分間程度の遅延を想定してください。この遅延は、S3 ライフサイクル設定を削除するときにも発生することがあります。

お疲れ様でした!

参考資料

アノテーション株式会社について

アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。