AWSのS3ライフサイクルを同一バケットで複数条件設定した場合に優先される条件は?

S3のライフサイクル設定はオブジェクト(ファイル)作成後、何日後にオブジェクト(ファイル)を削除する。Amazon Glacier側へオブジェクト(ファイル)の移動を自動で処理してくれる優れた機能なのですが、先日この機能を使った削除の条件を設定した。

S3の同一バケットにほぼ同様の階層に保存されるオブジェクト(ファイル)を削除する条件を二つ設定した。それぞれの条件の違いは作成から何日後の日数と指定するプレフィックスだけである。

例:バケットとファイルの階層は下記のようなものを想定しております

/bucket/folder-1/sub-folder1/sub-folder1-1/target-file1
/bucket/folder-1/sub-folder1/sub-folder2-1/target-file2

条件1
ライフサイクル設定で削除条件とプレフィックスを設定する
target-file1はプレフィックス「folder-1/sub-folder1」指定し作成後200日後に削除する
target-file2はプレフィックス「folder-1/sub-folder1/sub-folder2-1」指定し作成後5日後に削除する
細かいのですが「folder-1/sub-folder1」までは一緒でそれ以下の階層をプレフィックスに指定するかしないかの違いです
大枠の削除条件と大枠の中の削除条件では大枠が優先されるのか?それとも中の条件が優先されるのか?

ファイルの有効期限を確認してみると
target-file1は有効期限は200日後
target-file2は有効期限は5日後
まぁ あたり前の結果ですよね。

条件2
ライフサイクル設定で削除条件とプレフィックスを設定する
target-file1はプレフィックス「folder-1/sub-folder1」指定し作成後200日後に削除する
target-file2はプレフィックス「folder-1/sub-folder1/sub-folder2-1」指定し作成後365日後に削除する
これだと下段の「folder-1/sub-folder1/sub-folder2-1」以下のファイル「target-file2」は有効期限が
365日後になっていることを期待するのですが・・・・結果は・・・

ファイルの有効期限は
target-file1は有効期限は200日後
target-file2は有効期限は200日後
どちらも200日後でした。

これを踏まえると削除条件の有効期限が短いほうが優先され長いほうは優先されない?無効になる?ようですね。

そんなに大きな発見ではないのですが、今回の設定検証でシステム要件に沿うような実装が出そうなので一安心です。

ライフサイクルを利用すれば手動で大量のオブジェクト(ファイル)を移動する必要がなくなるのでありがたいです。だってオブジェクト(ファイル)が600万件超で手動とかで削除したり移動したりじゃ日が暮れちゃいます。

AWSのサービスでも古くからあり全てのサービスの根幹にあるS3 これからも便利に利用したいと思います。

タイトルとURLをコピーしました