S3で小さいサイズのオブジェクトをライフサイクルルールで移動できないのはなぜでしょうか?

2021.12.01

この記事はアノテーション株式会社 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 にマニュアルで変更してください。

参考資料