同じ設定で作成した S3 バケットでもトランジションのデフォルト最小オブジェクトサイズが異なる理由を教えてください
困っていた内容
CloudFormation や AWS CLI を使用して S3 バケットを作成しています。
S3 バケットには同じライフサイクルルールを設定しているのですが、バケットによってトランジションのデフォルト最小オブジェクトサイズが異なります。
- ストレージクラスにより異なる
- すべてのストレージクラス 128K
同じ設定で作成した S3 バケットでもトランジションのデフォルト最小オブジェクトサイズが異なる理由を教えてください。
どう対応すればいいの?
2024 年 9 月のアップデートでデフォルトの動作が変更されたことが原因です。
Transitioning objects using Amazon S3 Lifecycle - Amazon Simple Storage Service
In September 2024 Amazon S3 updated the default transition behavior for small objects, as follows:
Updated default transition behavior — Starting September 2024, the default behavior prevents objects smaller than 128 KB from being transitioned to any storage class.
Previous default transition behavior — Before September 2024, the default behavior allowed objects smaller than 128 KB to be transitioned only to the S3 Glacier and S3 Glacier Deep Archive storage classes.
上記アップデートにより以下の状況が発生していると思われます。
- 2024 年 9 月以前に作成した S3 バケット: トランジションのデフォルト最小オブジェクトサイズが「ストレージクラスにより異なる」
- 2024 年 9 月以降に作成した S3 バケット: トランジションのデフォルト最小オブジェクトサイズが「すべてのストレージクラス 128K」
上記ドキュメントに記載の通り、2024 年 9 月以前に作成した S3 バケットについてはライフサイクルの設定を変更しない限り、既存の動作が保持されます。
アップデートの詳細については以下の弊社ブログもご参照ください。
【アップデート】S3ライフサイクル移行ルール変更:デフォルトの最小オブジェクトサイズの導入でコスト最適化を実現できるようになりました | DevelopersIO