[AWS]EC2インスタンスにEFSをマウントする

今回は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

さいごに

東京リージョンでのリリースしたら使い倒したいですね。