Amazon EFS のライフサイクルポリシーで 128 KiB 未満のファイルサイズのファイルもストレージクラスの自動移行対象となりました

2023.12.24

EFS Inteligent-Tiering が128 KiB 未満の小さいファイルをサポートし安価なストレージクラスへ自動移行ができるようになりました。本アップデートを適用するための条件、変更内容について紹介します。

何が変わったのか

128 KiB より小さなファイルでも EFS の安価なストレージクラスの利用が可能となり、従来より安くファイルを保存できる可能性があります。

  • 従来、128 KiB 未満のファイルサイズのファイルは標準ストレージクラスにしか保存できなかった
  • 2023/11/26 のアップデートにより、小さなファイルもライフサイクル管理の対象となりました
  • アップデートを適用するには2023/11/26 17:00 以降にライフサイクルポリシーを更新する必要があります

本アップデートのアナウンス

re:Invent 2023 の Breakout セッションの 1 つ「Lower costs by up to 97% with Amazon EFS Archive」中で取り上げられていました。詳しい説明まではなかったため、該当のドキュメントを確認した結果を共有します。

アップデート内容に関する記述を確認できたドキュメントのリンクは以下の 2 つです。

ファイルサイズ 128 KiB 未満を新たにサポート

EFS には Amazon EFS Intelligent-Tiering という便利な機能があります。この機能は一定の期間ファイルへアクセスがないファイルを保存単価の安いストレージクラスへ自動的に移行してくれます。要はファイルを放置していても自動的にストレージコストの最適化をしてくれるありがたい機能です。

以前の仕様では「128 KB より小さいファイルはライフサイクル管理に適さず、常にファイルシステムのスタンダードストレージクラスに保存されます。」と説明がありました。

現時点のドキュメントでは 128 KiB の制限に関する説明が削除されています。

File metadata, including file names, ownership information, and file system directory structure, is always stored in Standard to help ensure consistent metadata performance. All write operations to files in the file system's IA or Archive storage classes are first written to Standard storage classes, and are then eligible to be transitioned to the applicable storage class after 24 hours.

Managing file system storage - Amazon Elastic File System

詳細は別のページから確認できました。

  • 低頻度アクセス、アーカイブストレージクラスの最低課金額は 128 KiB
  • メタデータは常に標準ストレージクラスに保存
  • 128 KiB 未満のファイルのサポートは 2023/11/26 12:00PM(PT)以降にライフサイクルポリシーを更新した場合に利用可能

Infrequent Access (IA) and Archive storage classes are metered in 4 KiB increments and have a minimum billing charge per file of 128 KiB. IA and Archive file metadata (2 KiB per file) is always stored and metered in the Standard storage class. Support for files smaller than 128 KiB is only available for lifecycle policies updated on or after 12:00 PM PT, November 26, 2023. Data access for IA and Archive storage is metered in 128 KiB increments.

Metering: How Amazon EFS reports file system and object sizes - Amazon Elastic File System

小さなファイルが大量にある場合の損益分岐点

128 KiB 未満のファイルサイズは 128 KiB 換算で請求されるとのことで費用試算してみました。EFS の容量単価が GB だったこともあり、計算を簡略化のために EFS に保存するファイルサイズは KiB ではなく KB としています。また、EFS の容量単価は執筆時点の東京リージョンの容量単価を参考にしています。

損益分岐点は、8 KB 以上のファイルは低頻度アクセスストレージクラスに移動した方が安く済むという結果になりました。低頻度アクセスストレージクラスは標準ストレージクラスに比べ 94% もお安い容量単価設定というのが大きく、多くのケースでは保存コストだけみれば安く利用できそうです。

ストレージクラス 容量単価(GB/月) ファイルサイズ(KB) ファイル数 合計ファイルサイズ(GB) 保存料金/月
標準 $0.36 7 1,000,000 7 $2.52
低頻度アクセス $0.02 128 1,00,0000 128 $2.56
アーカイブ $0.01 128 1,000,000 128 $1.28

7 KB 以下のファイルが 100 万個あっても月額 $0.04 の差しかありません。よっぽど大量に小さなファイルがない限り損することはまずなさそうです。それ以上に通常のファイルを低頻度アクセス、アーカイブストレージクラスを利用することでコストを削減できるメリットの方が大きいことでしょう。

EFS のメタデータは標準ストレージのまま

EFS に保存するファイルには 1 ファイルにつき 2KiB メタデータ(inode)を持っています。

2 KiB のメタデータもライフサイクルポリシーにより、標準ストレージクラスから他のストレージクラスへ移行されると保存コストが高くつくのではないかと疑問でした。説明によるとメタデータは対象外で引き続き標準ストレージクラスに保存されるとのことで安心して利用できます。

アップデートの適用方法

注意事項は既存の EFS に適用するには一度ライフサイクルポリシーの更新が必要です。

日本時間の 2023/11/26 17:00 以降にライフサイクルポリシーの設定を更新する必要があると説明があります。

大量の小さいファイルが保存されている環境ですと今回のアップデートにより保存コストが上がる可能性はあるためその対策でしょうか。EFS のパフォーマンス向上系のアップデートは自動適用されていますし、EFS のアップデートにして珍しい形式の適用方法だなと思いました。

おわりに

大々的なアップデートでアナウンスはありませんでしたが、ライフサイクル管理の仕様が変わり、エッジケースでもない限りはユーザーにとってコストメリットがあるアップデートでした。

参考