ENGINEER BLOG ENGINEER BLOG
  • 公開日
  • 最終更新日

S3 バケットの保持期間と有効期限について

この記事を共有する

目次

はじめに

こんにちは、パーソル&サーバーワークスの Endo です。
本記事では、Amazon S3 バケット(以降、S3 バケット)にて設定可能な保持期間、有効期限についてまとめたいと思います。

保持期間、有効期限が設定できる箇所

S3 バケットでオブジェクトの保持や有効期限を設定できる箇所は、以下 2 箇所となります。

  • S3 ライフサイクルのオブジェクトの有効期限を設定
  • S3 Object Lock のオブジェクトバージョンがロックされる期間(保持期間)を設定

S3 ライフサイクル

S3 ライフサイクルは、一定期間経過したオブジェクトのストレージクラスを移行または削除することによって、コスト効率よくオブジェクトを保存できる機能です。
移行アクションと有効期限アクションの二種類がサポートされています。
ライフサイクルの概要については以下をご参照ください。
ご参考:オブジェクトのライフサイクルを管理する

S3 Object Lock

S3 Object Lock は、オブジェクトを一定期間、または無期限に保存・保管する要件がある際に、指定した期間中の削除や上書きを防ぐ機能です。
リテンションモードにはコンプライアンスモードとガバナンスモードがあり、どこまで操作を許容するかによって設定するモードが変わります。
また、Object Lock にはリーガルホールドもあります。
Object Lock の概要については以下をご参照ください。

ご参考:S3 Object Lock を使用したオブジェクトのロック

オブジェクトにどう作用するのか

名前は異なりますが、どちらも一定期間経過後の処理を設定するものとなっています。
以下の表は、それぞれの観点をまとめたものとなります。

観点S3 ライフサイクルS3 Object Lock
主な処理内容ストレージクラスの移行、オブジェクトの削除オブジェクトバージョンの削除・上書きの防止
保持期間のカウント起点オブジェクトの作成日(最終更新日)バージョンごとに設定する RetainUntilDate
※保持期限を示すメタデータ
設定の粒度プレフィックスやタグ単位のルールオブジェクトバージョン単位
前提条件特になしバケットのバージョニングが有効であること
目的コスト最適化(古いデータの移行・自動削除)コンプライアンス対応(削除・上書きの防止)

併用した場合の挙動について

両方を設定している場合は、基本的に Object Lock が外れたらライフサイクルによるオブジェクトの削除が正しく実行される挙動となります。
以下の表で、ライフサイクルと Object Lock の設定期間別パターンの挙動をまとめています。

パターン条件結果
1ライフサイクルの有効期限 < Object Lock の保持期間ライフサイクルの期限が先に来るが、まだロック中のため削除はスキップされる。
Object Lock の保持期間が切れたあとに削除される。
2ライフサイクルの有効期限 = Object Lock の保持期間ロックが外れていない間はオブジェクトの削除が実行されないため、実質的にロックが外れた後の評価タイミングで削除される。
3ライフサイクルの有効期限 > Object Lock の保持期間Object Lock の保持期間が先に切れているため、ライフサイクルの期限が来た時点で問題なく削除される。

※ライフサイクルの考慮事項のとおり、ライフサイクルルールの条件が満たされるタイミングと、アクションが行われるまでの間には遅延が発生します。

おわりに

いかがでしたでしょうか。
本記事がどなたかのお力になりましたら幸いです。

この記事は私が書きました

S.Endo

記事一覧

コーヒーインストラクター検定2級を所持しているエンジニアです。コーヒーを飲みながら仕事をしています。

S.Endo

この記事を共有する

クラウドのご相談

CONTACT

クラウド導入や運用でお悩みの方は、お気軽にご相談ください。
専門家がサポートします。

サービス資料ダウンロード

DOWNLOAD

ビジネスをクラウドで加速させる準備はできていますか?
今すぐサービス資料をダウンロードして、詳細をご確認ください。