2015年6月19日金曜日

Amazon Elastic File System (EFS) を気づいたら使えるようになっていたので、早速起動してみた。

Amazon Elastic File System (EFS) を気づいたら使えるようになっていたので、早速起動してみた。 とりあえず起動してみただけなので、とりあえずファーストレビュー。

EFS は AWS が提供する、NFS v4 サーバ。ディスク容量が自動的に割り当てられるのと、サーバ自体がスケーラブルになっているとの触れ込み。

これまで、NFS のサイジングやディスク容量の管理に悩まされていたシステム管理者にとってまさにこれだけのために、AWSに移行したくなる素晴らしいソリューション。

また s3fs  の遅さやパーミッション設定の難しさに悩んでいた人にも朗報となるだろう。しかも料金はディスクを使用している分だけ。無駄にストレージに投資することもない。

マネージメントコンソールからEFSのアイコンをクリック。プレビューの申請が通っていないと申し込み画面に飛ばされる。現在は us-west-2 (Oregon) のみ使えるようになっていた。


クリックすると最初の案内画面に飛ばされる。迷わず "Create File System" をクリック。


VPC 、Subnet 、Security Group を AZ 毎に指定。実運用に回すときは、NACL や Security Group の設計に配慮が必要になるだろう。


IP アドレスは自分で指定することも自動的に割り当てることも可能。VPC 内なのでそれほどアドレスにこだわる必要もないと思うので、自動割り当て。可用性等を考慮するとどの道、DNS名での指定が有効だと思われる。



次はタグ付け。とりあえず Name タグだけつけておく。


最後に確認画面。特に変更がなければ "Create File System" をクリックして作成完了。

これで完了。



非常に簡単に高性能で可用性が高い共有ファイルシステムが使えるようになりました。

とは言え、万能の道具は無いのでいくつか注意事項はあると思います。
特にNFS 上の単一ファイルへの書き込み時排他制御には十分注意が必要です。

マニュアルにも明示的にロックの制限が記載されています。
詳細はマニュアルを確認していただくとして、ロックに関しては以下の制限があります。
  • 一つのファイルに対して、すべてのファイルシステムのユーザーに対して87 までしかロックがかけられません。複数のサーバにまたがっても87までです。
また Linux NFSv4 の制限として以下があります。
  • 一インスタンス当たり同時に128ユーザまでしか、ファイルを同時にオープンできません。
  • 一インスタンス当たり 32,768 ファイルまでしか同時にファイルを開けません。
  • 一マウント当たり、8192 ロックまでしか獲得できません。
  • 一マウント当たりユニークなファイルとプロセスの組み合わせは、256までです。例えば 1 プロセスならば、256ファイルのロックを取得できますが、8プロセスなら 32ファイルまでのロックを獲得できません。
まぁもともと NFS のロックはあてにしてはいけない(いつの話だよw)っていう話もありますし、同時実行性能の観点からはできるだけロックレスな構成にする必要もあります。

とは言え EFS の登場で、これまで オンプレから移行しづらかった案件やスケーラビリティに問題があったシステムでも、容易に拡張可能になるのではないでしょうか。