東京リージョンでEFSサービスが利用できるようになったので早速試してみた。感想としては思った以上に普通にNFS。ちょいハマりの他、いくつか気になった点をメモ
<EFSファイルシステムの作成>
EFSのファイルシステム構築は簡単。とりあえずガイダンスに従って作成すればヨシ。
<クライアントからのマウントでちょいハマり>
「マウントターゲット」にEFSクライアントの所属するサブネットが含まれていたのでこれで使えるかと思ったがクライアントマシンからmountコマンドを実行しても応答無し。 どゆこと? 設定を確認していくと、作成したEFSファイルシステムにはデフォルトのセキュリティグループが設定されていて、EFSファイルシステムにアクセス権があるのはこのグループのみだった。クライアントマシンにアクセス権が無いのでEFSのファイルシステムを利用するインスタンスやセキュリティグループを登録する必要があったと。とりあえず2049番(NFS)が許可されていればEFSを利用できるようになる。
<Amazon LinuxにはEFS専用マウントツールがある>
EFSのファイルシステムを利用できるクライアントはLinux OSのみ
Amazon Linuxには専用のEFSクライアントツール(amazon-efs-utils)が用意されている
EFSクライアントツール利用時
# yum install amazon-efs-utils # mount -t efs "Filesystem ID" "mount-point"
NFSクライアントツール利用時
# mount -t nfs -o -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport "EFS DNS Name" "mount-point"
マウントされたEFS領域を確認
# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 989M 60K 989M 1% /dev tmpfs 999M 0 999M 0% /dev/shm /dev/xvda1 7.8G 2.0G 5.7G 26% / fs-656axxxx.efs.ap-northeast-1.amazonaws.com:/ 8.0E 0 8.0E 0% /EFS
8.0Eとかよく判らないサイズだし
<ddコマンドによる書き込み速度確認>
Amazon Linux 2017.09 (t2.small)
# dd if=/dev/zero of=/EFS/test-2gb-02 bs=1M count=2048 2048+0 records in 2048+0 records out 2147483648 bytes (2.1 GB) copied, 20.4329 s, 105 MB/s #
* mount -t nfs でも速度に変化無し。
CentOS 6.10でも約100MB/sの速度だったけど、Ubuntuは何度やっても50MB/sほど。サブネットも同じなのでAWSのUbuntuになんかあるのかも。
Ubuntu-16.06 (t2.small)
# dd if=/dev/zero of=/EFS/test-2gb bs=1M count=2048 2048+0 records in 2048+0 records out 2147483648 bytes (2.1 GB, 2.0 GiB) copied, 45.4281 s, 47.3 MB/s #
<EFSの削除時は注意が必要>
削除時に「ファイルシステムのデータは全てなくなるけど大丈夫?」的な警告は出るけどファイルシステム利用中のクライアントについての警告は出ない。クライアント側でマウント中でも削除できる。削除されるとNFSマウント時にタイムアウトや割り込みのオプション設定をしていないと延々と削除されたファイルシステムの応答待ちなって詰んでしまう。Auto-Mount設定で問題ない運用であればAuto-Mountを利用したほうが安全かも。あと、ファイルシステム作成と同時に作成されたセキュリティグループは削除されないので不要であればコレも削除する。