0
0

【Amazon S3】ライフサイクルルールの更新タイミングには注意しよう

Last updated at Posted at 2024-04-30

きっかけ

ライフサイクルルールの動作確認をしていた際、あれれと思ったことがあったので後学のために書き残します。

ライフサイクルルールとは

Amazon S3 がオブジェクトのグループに適用するアクションを定義するルールのセットです。具体的には、次の 2 種類のアクションがあります。

  • 移行アクション
    別のストレージクラスにオブジェクトを移行するタイミングを定義します。

ex.作成から30 日後に S3 標準 – IA ストレージクラスにオブジェクトを移行し、作成から 1 年後に S3 Glacier Deep Archiveストレージクラスにオブジェクトをアーカイブする
image.png
image.png

  • 失効アクション
    このアクションではオブジェクトの有効期限を定義します。Amazon S3 はユーザーに代わって有効期限切れのオブジェクトを削除します。

ex.作成から5日後に、オブジェクトを有効期限切れにする
image.png

これらの日付ベースでの更新は、時間経過判定の単位は「日」で、毎日世界標準時0時(日本時間午前9時)に更新されます。

ライフサイクルルールの詳細な内容に関しては、以下を記事が非常によくまとまっていますので、参考にしてください。

よくある試験ケース

例えば、以下のライフサイクルルールを設定したS3バケットがあるとします。
image.png

このS3バケットの動作確認のテストケースとして、5/1(水)の14:00に以下の順番で2つのファイルをアップロードしたとします。

■テストケース例
※先にアップロードされたデータAが非現行バージョンになる
1. データAを該当のS3にアップロード
2. データBを該当のS3にアップロード

データAの削除確認をしたい場合、いつS3バケットを確認すればよいでしょうか?
5/1(水)の5日後は5/6(月)なので、その日になればデータAが削除されていることを確認できるでしょうか?
■データAの状態遷移の考え方①
image.png

答えはNoです。

考え方

以下に筆者の考え方を示します。間違っていたらご指摘ください。

ヒントは、上記でも記載している更新タイミングです。
再掲します。

更新タイミングについて
毎日世界標準時0時(日本時間午前9時)に更新

この考え方にのっとれば、テストを実施した5/1(水)の14:00時点では、データAはまだ非現行バージョンのライフサイクルルールによる管理外にあります。5/2(木)のAM9:00の更新タイミングで非現行バージョンと認識されます。
表に直すと以下の通りになります。

■データAの状態遷移の考え方②
image.png

では、5/7(火)にデータAが消えていることを確認できるのでしょうか。
答えはNoです。

ライフサイクルルールの更新日は0日目の状態が存在します。(0日目状態というのは、筆者の造語です。)
なので、そのことも考慮すると以下の通りになります。

■データAの状態遷移の考え方③
image.png

なので、ライフサイクルルールで設定した2日後(5/8のAM9:00以降)にデータAの削除確認ができるというわけです。

考慮点

ライフサイクルルールの動作には以下2点注意する点があることがわかりました。

  • 更新日(日本時間AM9:00)にならないと、ライフサイクルルールのサイクルが回らない
  • ライフサイクルルールの更新日には、0も考慮する必要がある?(別の言い方の方が良いかも)

以上

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0