S3で小さいサイズのオブジェクトをライフサイクルルールで移動できないのはなぜでしょうか?
この記事はアノテーション株式会社 AWS Technical Support Advent Calendar 2021のカレンダー | Advent Calendar 2021 - Qiita 1日目の記事です。
困っていた内容
ライフサイクルルールを用いて30日経過したオブジェクトを、標準ストレージクラスから標準-IAに移行するルールを作成しているのですが、30日が経過してもオブジェクトの移動が行われません。 ライフサイクルルールの設定を見直しましたが、間違いはありませんでした。 どうすればオブジェクトの移動ができるでしょうか。
具体的な原因
バケットの S3 オブジェクトを確認したところ、保存されていた S3 オブジェクトは全てサイズが 128 KB 以下のものでした。 下記 AWS ドキュメントに記載の通り、S3 オブジェクトのストレージクラスをライフサイクル設定で移行する場合、 オブジェクトのサイズに関して制約があります。
Amazon S3 ライフサイクルを使用したオブジェクトの移行 - Amazon Simple Storage Service
ライフサイクルストレージクラス移行には、次の制約があります。
オブジェクトサイズと、S3 標準または S3 標準 – IA から S3 Intelligent Tiering、S3 標準 – IA、または S3 1 ゾーン – IA への移行
---------- 省略 ----------
128 KB 未満のオブジェクト - 以下の移行では、128 KB 未満のオブジェクトは費用対効果がよくないため、Amazon S3 ではこれらを移行しません。
このように 128 KB 以下のオブジェクトは費用対効果の関係で、ライフサイクルルールにて下記の移行ができません。
- S3 標準 または S3 標準 – IA → S3 Intelligent Tiering
- S3 標準 → S3 標準 – IA
- S3 標準 または S3 標準 – IA ストレージクラス → S3 1 ゾーン – IA
128 KB 以下のオブジェクトはライフサイクルを用いず、ストレージクラスを 標準-IA にマニュアルで変更してください。