今回はEC2インスタンスにEFSをマウントしてみたいと思います。
前提
- リージョン:バージニア
※ 東京リージョンには、まだ上陸してない為です。 - EC2インスタンス:AmazonLinux
手順
EFSを作成
1.EFSから[Create file system]を選択します。
2.対象とするVPCとセキュリティグループを選択します。その後、[Next Step]を選択します。
3.名前を入力して、[Next Step]を選択します。[Enable encryption]をチェックするとディスクを暗号化できます。
4.確認画面がでますので、[Create File System]を選択します。
5.作成完了すると、ステータスがAvailableになります。
AmazonLinuxにマウントしてみる
EFSと同一のVPCに構築したEC2インスタンスにマウントします。
1.マウント先を作成
$ sudo mkdir /mnt/efs
2.EFSをマウント
DNSの名称があるので、これをコピペしてマウントできます。
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 fs-bf530ff6.efs.us-east-1.amazonaws.com:/ /mnt/efs
3.dfコマンドでマウントされてることが確認できます。8.0Eで大きいサイズで表示されますね。
$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 488M 60K 488M 1% /dev tmpfs 497M 0 497M 0% /dev/shm /dev/xvda1 7.8G 1018M 6.7G 13% / fs-bf530ff6.efs.us-east-1.amazonaws.com:/ 8.0E 0 8.0E 0% /mnt/efs
ハマったことろ
構築中にハマった点としては、EFSマウントの際に、DNS名が見つからないというエラーに遭遇しました。
$ sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 fs-bf530ff6.efs.us-east-1.amazonaws.com:/ /mnt/efs mount.nfs4: Failed to resolve server fs-bf530ff6.efs.us-east-1.amazonaws.com: Name or service not known
どうやら、VPCのDNSホスト名の名前解決の設定が無効になっていたのが原因でした。
VPCを選択して、[アクション]から[DNSホスト名の編集]を選択し、DNSホスト名を[はい]にすることで、解決できました。
設定後、数秒待ってから再びマウントすると成功します。
$ sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 fs-bf530ff6.efs.us-east-1.amazonaws.com:/ /mnt/efs
さいごに
東京リージョンでのリリースしたら使い倒したいですね。