みなさん。こんばんは。koyachiです!Amazon EFSお使いの方はあるある問題かもしれませんが、気をつけたい「スループットモード」の違いとパフォーマンスの低下にならない運用についてお伝えします!

そもそもAmazon EFSとは?

Amazon EFS(Amazon Elastic File System)は、シンプルでスケーラブルな伸縮自在なネットワークファイルシステムです。 以下の特徴があります。

1) 動的な伸縮性
アプリ影響なしで、ファイル追加/削除に伴う自動的な容量調整が可能

2) フルマネージド型
ファイルストレージのインフラストラクチャ管理が不要

3) 共有型ファイルストレージ
数千もの接続に対して NFSv4 プロトコル経由で同時にアクセスが可能

EFSのスループットモードについて

EFSには 2023年1月現在、以下 3つのスループットモードがあります。

1)バースト
高スループット性能が不要 / スループットの高低差が激しい場合に使用。
「ベースライン」と呼ばれるラインを利用スループットが下回る際はクレジットとして性能を蓄積し、それを上回る際はそのクレジットに蓄積した性能を利用することで基本性能以上のパフォーマンスを発揮する。
スループット性能は利用ストレージ容量に比例して増加するため、ダミーファイルを用意して性能を調整することも可能。

2)プロビジョニング
一貫した高スループット性能が必要な場合に使用。
利用ストレージ容量とは関係なく、指定したスループット性能を提供する。
性能を容易に得られる反面、バーストよりも費用が高額となることが難点。

3 )Elastic Throughput  ※2022/11 New!
スループット性能の予測が困難なワークロードの場合に使用。
システムに必要なスループット性能を自動的に調整する

気をつけて、バーストクレジット!

EFSを使って運用しているとあるワークロードでパフォーマンス低下が起こりました。原因を調べてみるとバーストクレジット枯渇により、I/O性能が低下していたためということが発覚しました。

EFSには上記に記載したスループットモード設定を行うことができ、該当EFSは「バーストスループット」(クレジット使用によって、一時的に基本性能以上の処理が可能なモード)で設定していました。 定期的に S3バケットと同期する処理により、大きな I/Oが発生してバーストクレジットを使用、枯渇してしまったということで、皆さんもお気をつけくださいませ。

ちなみにバーストクレジットの利用状況などはCloudWatchからモニタリング可能です。

また、バースト性能を維持したままにする方法としては、ダミーファイルを設置してデータ量を増やすことで、スループット性能を確保するといった方法も取ることができます。 バーストモードの性能を確保しつつ、スループットも拡張することが可能です。

ダミーファイルを置くときはで、バーストモードのままだとバーストクレジットを多く消費してしまう可能性があります。よって、一時的にプロビジョニングモードに切り替えてからダミーファイルを置いてし、作業完了後にバーストモードに戻す方法が推奨かとは思います。

まとめ

•EFSは共有型ファイルストレージであることから、Webサイトシステムへの利用を検討される方も多いと思います。
•EFSは、EBSと比較して基本的な I/O性能は低いと言われています。高パフォーマンスが求められる場合のパフォーマンスを担保するためには、実際に検証とどれくらいのパフォーマンスが出るのか確認が必要となります。
•利用に際しては運用コスト (人的 / 利用料) を考慮のうえ、動作検証を実施のうえ進めることが必須です!