使ってみましたが、EC2 に簡単にマウントできるし、超便利ですね。
お値段は、S3 のように安くはないようなので、気をつける必要はありそうです。
EFS の、マウント方法では、以下のような Linux コマンドが紹介されています。
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport <efs名>.efs.<リージョン名>.amazonaws.com:/ <マウントポイント>
これらのオプションを使用する事が推奨されており、意味は、以下のように説明されています。
rsize=1048576
それぞれのネットワーク READ リクエストで、NFS クライアントが受け取る最大バイト数の値。この値が EFS ファイルシステム上のファイルを読む時に適用される。パフォーマンスを損なわないように、最大値(1048576)を使用する事が推奨される。
wsize=1048576
NFS クライアントが WRITE リクエストの際に送る事ができる最大バイト数の値。この値が EFS ファイルシステムに書き込むときに適用される。パフォーマンスを損なわないように、最大値(1048576)を使用する事が推奨される。
hard
NFS リクエストがタイムアウトした時のNFS クライアントのリカバリ動作の設定で、サーバが応答するまで NFS リクエストは繰り返し試みられる。データの完全性を保つには、hard オプションの仕様が推奨される。soft マウントを使用するときは、timeo パラメータを少なくとも 150(150秒)にされたい。そのことにより、soft マウントに内在するデータ破壊の危険性を防ぐことができる。
timeo=600
NFS リクエストをリトライするまでの NFS クライアントが使用するタイムアウト値を 600 deci秒(60秒)にする設定。タイムアウトパラメータ(timeo)を変更しなければいけないのなら、少なくとも 150 という値(15秒と同値)にされたい。それにより、パフォーマンスの低下を防ぐことができる。
retrans=2
NFS クライアントがさらなるリカバリ動作を試みる回数
noresvport
NFS クライアントが、ネットワーク接続が再確立されたら、新しい TCP プロトコルのためのソースポートを使用することを宣言する。これにより、EFS ファイルシステムはネットワークの回復動作後にも可用性をとぎらせることがない。
_netdev
/etc/fstab に記述があれば、ネットワーク接続が可能になるまで、クライアントが EFS ファイルシステムをマウントする試みを防ぐ。
(参考)
https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-mount-cmd-general.html
https://www.slideshare.net/AmazonWebServices/moving-your-file-data-to-amazon-efs-aws-online-tech-talks