EFSがやってきた ヤァ!ヤァ!ヤァ! (Elastic File Systemについて色々と比較してみました)
タイトルで世代がバレそうなビヨンドの佐藤です
リリースされてから幾年月、今年のAWS SummitでアナウンスされていたEFS(Elastic File System)の東京リージョン対応が遂に解禁されましたね
あまりに嬉しかったので実際にサービスで使う前に気にることをまとめてみました
EBSと比べてどれぐらいコストが変わるの?
※GBあたりの単価、1$=110円で計算してます | ドル | 円 |
EFS | $0.36 | ¥40 |
EBS プロビジョンド IOPS SSD (io1) | $0.14 | ¥16 |
EBS 汎用 SSD (gp2) | $0.12 | ¥13 |
EBS スループット最適化 HDD (st1) | $0.05 | ¥6 |
EBS Cold HDD (sc1) | $0.03 | ¥3 |
おまけ S3 | $0.03 | ¥3 |
EBSの種類も色々増えたのでまとめて比較してみました。
結構高いですね、、、一番良く利用する汎用SSDと比較すると3倍のコストです
TB級のストレージが必要となるとちょっと躊躇しますね。
でも共有ストレージのためにNFS用インスタンスを立てて冗長化する手間+コストを考えると誘惑に負けてしまいそうです。
EFSってどれぐらいの性能なの?
検証環境
インスタンス:t2.micro
OS:AmazonLinux
EFS:汎用パフォーマンスモード
fioコマンドを使ってブロックサイズ4Kと8MでIOPSとスループット(MB/sec)との性能を比較してみました。
まずはIOPSの比較です
NFSのバケモノみたいなシステムなのである程度予想はしてましたが、細かいサイズのファイルを大量に読み書きするとIOPSの差が顕著に出ますね。
シーケンシャルReadよりランダムReadの性能が良いのはちょっと予想外でしたが、これはEFSが分散型分散型データストレージとして設計されていることを考えると納得できる結果です。
実際のユースケースでは殆どがランダムReadだと思うので、読み込み性能にローカルのEBSと大差がないのは嬉しいところです。
次はスループット(MB/sec)を比較してみました
あまりIOPSと差がない感じのグラフになりましたが、やはりNFSなので小さいサイズ(4K程度)の書き込みだとEBSに比べて性能が落ちます。
ただ、EFSのスループットとIOPSは平均 I/O サイズの増加に応じて全体のスループットが向上するらしいので、あまり気にする必要はないのかもしれません。
今回は汎用パフォーマンスモードでテストを行ったのですが、EFSは最大I/Oパフォーマンスモードというものがあるので、機会があればモードの違いによる性能差を比較してみたいと思います。