[初心者向け]EFSチュートリアル実装時にハマったところ
こんにちは沖縄の下地です。
本日は、Elastic File System(EFS)の実装した際にいくつかハマったのでまとめたいと思います。
はまりどころ
内容としては、EC2におけるマウントターゲットの設定になります。
- DNSホスト名の設定
- sgの設定
1. DNSホスト名の設定
マウントターゲットを設定しようとすると、以下の内容で失敗しました。
$ sudo mount -t efs -o tls fs-*******:/ efs Failed to resolve "fs-********.efs.[Region].amazonaws.com" - check that your file system ID is correct. See https://docs.aws.amazon.com/console/efs/mount-dns-name for more detail.
Failed to resolve
より何かの解決に失敗してることがわかります。以下のサイトを参考に確認すると、VPCの「DNS解決」「DNSホスト名」両方を有効にする必要があることがわかりました。
VPCの設定を確認すると「DNSホスト名」が無効になっていましたのでこちらを有効化します。
まず、アクションからDNSホスト名の編集を選択します。
DNSホスト名にチェックを入れ保存します。
sg設定エラー
DNSホスト名を有効化したので再度実施します。すると次は下記のようなエラーが出ました。
$ sudo mount -t efs -o tls fs-*******:/ efs mount.nfs4: Connection reset by peer
以下を参考に確認すると、マウントターゲットのsg(security group)設定に問題があることがわかりました。
図に示すマウントターゲットに設定しているsgにおいてEC2からの通信を正しく許可されてないことが原因でした。
EC2インスタンスからの通信を許可するため、マウントターゲットに設定したsgのソースをEC2に設定したsgに設定します。
セキュリティグループを設定後に再度実行すると、マウントされたことが確認されました。
$ sudo mount -t efs -o tls fs-*******:/ efs
まとめ
EFSを実装しようと思いチュートリアルをするだけのつもりだったのですが実装時に何度もハマってしまいました。。この記事が同じ様にエラーで悩んでる方の助けになれば幸いです。