share facebook facebook twitter menu hatena pocket slack

2019.10.28 MON

S3 オブジェクトのライフサイクル管理

新川 貴章

WRITTEN BY 新川 貴章

S3にライフサイクルによる移行・有効期限アクションを設定する方法

・今回は、S3のライフサイクル管理について、失効と完全削除の理解が不明瞭であったため確認した結果をまとめてみました。

概要

ライフサイクル管理の概要

  • Amazon S3はライフサイクル管理を活用することで、オブジェクトをコスト効率良く保存することが可能です。
  • ライフサイクル管理には、2種類のアクションがあります。
  • 移行アクション
    • 別のストレージクラスにオブジェクトを移行するタイミングを定義します。(例:デフォルトのSTANDARTからファイルの作成後365日目にGLACIER に移行)
    • ストレージクラスによって、対象とされるアクセス頻度や可用性が異なります。また、ストレージクラスによって最小ストレージ期間が異なるため、注意してください。(例:GLACIERは90日未満であって90日分の料金が請求されます)
    • ストレージクラスの説明は、下記ドキュメントを参照。
さまざまなストレージのクラスとその動作についての解説。
  • 有効期限アクション
    • オブジェクトの有効期限を定義します。バケットのバージョニング対応の可否によって、有効期限切れのオブジェクトが完全に削除されるか否かが異なります。詳細は後述します。

コストの留意事項

  • コスト効率化のために行ったストレージクラスの移行が逆にコスト増加につながる可能性もあります。例えば、Glacierへのライフサイクル移行アクションは、リクエスト 1,000 件ごとに 0.0571USDかかります。特にELBやCloudFrontのアクセスログのような1オブジェクトのサイズが小さく、かつオブジェクトの数が多いような用途での移行は、移行にかかるコストの方が高くなることもあり得ます。
  • S3の料金は、下記ドキュメントを参照。
Amazon S3 の料金は、実際に使用した分だけです。無料利用枠を使用することで、無料で開始いただけます。リージョンごとのストレージ料金やストレージマネジメント料金、リクエスト、データ転送、レプリケーション等の料金についてご覧いただけます。

ライフサイクル管理のログ

  • ライフサイクルのアクションは、CloudTrail には記録されません。(CloudTrail は外部エンドポイントに対して行われたリクエストのみをキャプチャするため)
  • ライフサイクルのアクションは、S3 サーバーアクセスログを有効にすることでログに記録されます。以下、アクションごとの例です。
    • S3.EXPIRE.OBJECT: ライフサイクルの有効期限が切れたため、オブジェクトを完全に削除した。
    • S3.TRANSITION.OBJECT: オブジェクトの GLACIER ストレージクラスへの移行を開始した。
  • S3 サーバーアクセスログの設定は、下記記事を参照下さい。
S3にアクセスログを設定する概要Amazon S3にサーバーアクセスのログ記録を設定する方法を紹介します。アクセスログを設定することで、アプリケーションの履歴やセキュリティ観点でのアクセス記録を簡単に取得することが可能です。アクセスログの設定を有効にしても追...

オブジェクトの 失効(Expire)と完全削除(Permanently Delete)

  • ライフサイクル管理は、バージョニング対応(バージョニング有効化あるいはバージョニングの使用を停止させた状態)およびバージョニング非対応(バージョニング無効化)のどちらのバケットにも追加できます。
  • オブジェクトの失効は、バージョニング対応の可否によって動作が異なります。バージョニング非対応の場合は、失効によって、オブジェクトは完全に削除されます。
  • バージョニング対応の場合は、失効は最新のバージョンにのみ適用されます。既存の最新バージョンは、以前のバージョンとして保持されます。

シーンごとの設定方法

オブジェクトを削除する

  • バージョニング非対応のバケットに設定します。
  • S3のコンソールからバケットを選択し、管理のライフサイクルを開きます。「+ ライフサイクルルールの追加」をクリックします。

  • ルール名、プレフィックスを入力します。(バケット内の全オブジェクトに適用する場合は、プレフィックス不要です)

  • オブジェクト削除のみの場合、移行の選択肢はチェック付けません。

  • 失効の設定において、現行バージョンをチェックします。次に、オブジェクトを作成してから失効するまでの日数を入力します。下記の例では、1日としておりますが、システムのポリシーに合わせて入力して下さい。
  • バージョニング対応のバケットの場合、以前のバージョンもチェックし、以前のバージョンになってからオブジェクトを完全に削除するまでの日数を入力します。

  • 設定内容を確認し、保存を押します。

  • 結果として本設定の場合、10/10 に作成されたオブジェクト(フォルダとファイル)は、翌々日の10/12 に失効(削除)されました。

オブジェクトを移行する

  • バージョニング非対応のバケットに設定します。
  • S3のコンソールからバケットを選択し、管理のライフサイクルを開きます。「+ ライフサイクルルールの追加」をクリックします。

  • ルール名、プレフィックスを入力します。(バケット内の全オブジェクトに適用する場合は、プレフィックス不要です)

  • 移行の設定において、現行バージョンをチェックします。次に、オブジェクトを作成してから移行するまでの日数を入力します。下記の例では、1日としておりますが、システムのポリシーに合わせて入力して下さい。

  • 失効の設定において、現行バージョンをチェックします。次に、オブジェクトを作成してから失効するまでの日数を入力します。下記の例では、2日としておりますが(1日目に移行アクションのため2日目以降で入力可)、システムのポリシーに合わせて入力して下さい。
  • バージョニング対応のバケットの場合、以前のバージョンもチェックし、以前のバージョンになってからオブジェクトを完全に削除するまでの日数を入力します。

  • 設定内容を確認し、保存を押します。

  • 結果として本設定の場合、10/10 に作成されたオブジェクト(フォルダとファイル)は、翌々日の10/12 にGlacierへ移行され、10/13に失効(削除)されました。

元記事はこちら

S3 オブジェクトのライフサイクル管理

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。