takada@福岡オフィスです。
「サーバーレスより普通にサーバが好っきーっ。」はい、ということで、AWSよりAmazon Elastic File System(EFS)のプロダクションリリースのアナウンスがでましたので、触ってみました。
アナウンスにあるとおり、2016/6/29時点で、the US East (Northern Virginia), US West (Oregon), and Europe (Ireland)
の3つのリージョンのみで利用可能です。
今回は、US West (Oregon)リージョンで試してみました。
EFSを作ってみる
US West (Oregon)リージョンを選択すると、メニューにEFSが追加されています。
メニューから選択した後、「Create file system」を押下すると、STEP1として、以下のような画面で必要項目を設定します。
以下、ポイントです。
- AZごとに1つのmount target(NFSのエンドポイント)を作成します。作成するサブネットは任意です。
- IP addressは自動割り当てにすることも、指定することもできます。
- mount targetごとにセキュリティグループを付与します。
次の画面に進みます。
タグの指定と、Performance modeを選択します。
EFSをマウントするEC2が10台未満であれば、General Purposeでよさそうです。
内容を確認し、「Create File System」を押下します。
作成中の画面となり、しばらくすると、ファイルシステムの作成が完了します。
EFSをマウントしてみる
上記の画面の中断にある「EC2 mount instruction」を押下すると、マウントの仕方が記載された画面が表示されます。
今回は、CentOS7で試してみました。手順は以下のとおりです。
-
nfs-utils パッケージをインストールします。
sudo yum install -y nfs-utils
-
マウントポイントを作成します。
sudo mkdir /efs
-
マウントします。
sudo mount -t nfs4 -o nfsvers=4.1 $(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone)."File system ID".efs.us-west-2.amazonaws.com:/ efs
3番目のマウントコマンドでは、AZ名をメタデータから取得しています。File system IDはそれぞれ作成した後に付与されるものに読み替えてください。また、EFSはNFSver4およびv4.1に対応していますので、NFSのバージョン指定を4.1に指定しています。。
マウント後のdfコマンドの結果は、以下のようになります。
「8.0E」って、奥さん、エクサバイトですよ。ギガ、テラ、ペタ、エクサ。。。ベム、ベラ、ベロ。。。 ただし、マニュアルには「Amazon EFS file systems store data and metadata across multiple Availability Zones in a region and can grow to petabyte scale」という記載がありますので、表示されている「8.0E」はダミー表示の可能性があります。ペタでもすごいですが。。。
永続的にマウントさせるためには、/etc/fstabに以下にように書いてあげます。以下の例では、明示的にNFSv4を指定しています。これでリブート後も自動的にマウントされます。
まとめ
今回は、プロダクトリリースされたEFSを触ってみました。
これまでは、EC2でNFSサーバを構築し、可用性を持たせるためには、ディスクミラーリング/クラスタ等の仕組みが必要でしたが、EFSなら、3stepでフルマネージドの大容量のNFSを利用することができます。東京リージョンでの提供が待ち遠しいですね。