Nedia What's up!

ネディアのエンジニアによるIT技術やサービスの紹介・検証などをお届け!

Amazon EFSを使ってみた(後編)

※ Amazon EFSを使ってみた(前編)の続きです。

前編ではAnazon EFSがどのような特徴があるのかについて解説しました。

後編となる今回は実際にEFSファイルシステムを作成し、ベンチマークを使って他のファイルシステムと比較をしてみたいと思います。

EFSファイルシステムの作成

それでは早速、EFSファイルシステムを1つ作成したいと思います。

手順は非常に簡単で3ステップで完了します。

ステップ1:ネットワーク設定

EFSの設定画面に進むと、EFSファイルシステムが使用するネットワーク周りの設定画面になります。

efs01

ここでは以下の設定ができますので、自分の環境に合った設定を実施します。

  • セキュリティグループの設定
  • 所属するアベイラビリティゾーンとIPアドレスの設定

ステップ2:タグとパフォーマンス設定

次に進むと、タグとパフォーマンス設定画面が出てきます。

efs02

タグ設定自体は任意です。

ページ下部ではパフォーマンスモードが2種類から選択可能です。

  • General Purpose(default)
  • Max I/O

つまり一般用途と、I/Oパフォーマンスを最大値にしたモードの2種類です。

ステップ3:最終確認

ステップ1と2で指定した内容で作成しますよという最終確認画面です。

efs03

たったこれだけでEFSファイルシステムが出来上がりました。ものすごく簡単です。

EFSファイルシステムのマウント

作成したEFSをEC2インスタンスから利用する方法は、作成したEFSファイルシステムの管理画面内に書かれていました。

efs04

このヘルプに倣ってマウントを実施します。

なお今回使用するEC2インスタンスはAmazon Linuxでt2.microでさくっと作成したものです。

上記コマンドがうまく通らない場合は、EFSが使用するセキュリティグループの設定を見直すと良いと思います。

きちんとマウントされたか確認してみると・・・。

認識されたのはなんと8エクサバイト!ペタバイトの更に1024倍です。

これだけの容量はなかなか使い切らないですよね。

fioコマンドの準備

ディスクベンチマークツールはhdparmが有名ですが、NFSを計測することができなそうなので今回はfioを使用したいと思います。

Amazon LinuxがインストールされたEC2インスタンスでは、上記コマンドですんなりインストールすることができました。

EC2インスタンスが普段マウントしているEBSのベンチマーク

まずはEC2インスタンスが普段マウントしているEBSをベンチマークしてみたいと思います。

テスト用のディレクトリを作成し、ベンチマーク用のコンフィグファイルを作成します。

fioではシーケンシャルリードも計測できるようですが、やはりNFS運用することを考えるとランダムリード性能が重要なので、ランダムリードを計測したいと思います。

100Mbyteのランダムリード性能を計測します。

fioコマンドで上記コンフィグファイルを指定し実行します。

このベンチマーク計測はすぐに終わりました。

ベンチマーク上大切なところは以下の部分です。

NFSマウントしているEFSのベンチマーク

先ほどと同様でベンチマーク対象ディレクトリをEFSのマウントポイントに指定します。

実施結果

EC2上に構築したNFSサーバをマウントしてベンチマーク

EFSを利用する一つの理由として、現状NFSで構築しているEC2インスタンスをEFSに変更して運用したいというケースが考えられますので、EC2上にNFSサーバを作成してベンチマークを取得してみました。

NFSサーバとなるEC2インスタンスはやはりAmazon Linuxでt2.microです。

コンフィグファイルを作成。

ベンチマーク実施

結果を比較して分かったこと

上記ベンチマーク結果を表にしたものが以下です。

ボリューム EBS EFS NFS(EC2)
スループット 13899KB/s 1479KB/s 3423KB/s
実行時間 7367msec 69222msec 29913msec

あれ?EFS遅い?

EBSが最も速いのは当然の結果なのですが、EC2上にNFSサーバを立てた方が速いという結果になりました。

ランダムライト性能はどうか

では、書き込み性能はどうなのかも気になったので計測してみました。

結果のみ記載です。

ボリューム EBS EFS NFS(EC2)
スループット 1449.3MB/s 1250.0MB/s 1282.6MB/s
実行時間 69msec 80msec 78msec

書き込み性能は読込ほど大きな差は出ませんでしたが、EBSがやはり最も早く、NFS、EFSがほぼ同じという結果になりました。

まとめ

検証の結果、EFSは速度的にはNFSに劣るということが分かりました。

私が本検証を行う前は、EFSってやっぱり速いんだろうなと思っていたので、個人的には意外な結果となりました。

とはいえ3ステップで使用出来たり、複数アベイラビリティゾーンの設定ができたり等、便利な点もありますので、用途に合わせてEFSを選択すると良いのではないでしょうか。

また、EFSはまだ東京リージョンでは展開されていませんので、今後東京リージョンで使えるようになった際には再度検証を取ってみたいと思います。