2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

EFSのマウントが失敗してハマった話

Last updated at Posted at 2022-02-23

#はじめに
先日、EC2にEFSをマウントしようとした際にマウントが失敗し、少しハマったことがあったので、記録です。

#事象
以下に発生した事象を示します。

###ハマる前までに行った内容
まず前提として、EFSをアタッチするEC2インスタンスを作成。

設定項目 設定値
リージョン 東京
VPC 10.0.0.0/21(名前:MyVPC1)
AZ ap-northeast-1a
サブネット 10.0.0.0/24(名前:PublicSubnet1)
インスタンスタイプ t2.micro
セキュリティグループ 全てのSSH接続を許可(名前:EC2-SG)      

その後、EFSのコンソールから、[ファイルシステム]>[ファイルシステムの作成]をクリック。
そしてEC2インスタンスと同じVPCを指定してEFSを作成。
2022-02-23_19h45_39.png

EFSが作成されたことを確認した後、EC2にログインしてEFSクライアントのインストールを実施。

$sudo yum install -y amazon-efs-utils

次にEFSをマウントするディレクトリを用意。

$mkdir efs-test

ここまでがマウント前までに行った内容になります。

###ハマった内容
作成したEFSのファイルシステムIDを指定して、mountコマンドを実行。
しかし待てども待てどもマウントされず・・・。

$sudo mount -t efs -o tls fs-07d78a63cf0e92891:/ efs/efs-test

暫くすると結局エラーが返ってきてしまいました。どうやらファイルシステムIDが取得できていない様子。

b'mount.nfs4: mount system call failed'

#原因
原因はEFSのマウントターゲットにアタッチされているセキュリティグループにありました。
EFSのマウントターゲットとは、下記図の赤枠の部分のことです。
WS0002.JPG

EFSのコンソールから、[ファイルシステム]>[作成したファイルシステム名]>[ネットワーク]>[管理]をクリックして確認してみると、マウントターゲットにVPCのデフォルトセキュリティグループがアタッチされています。
WS000008.JPG

そしてデフォルトセキュリティグループのインバウンドルールを確認してみると、ソースに自身のセキュリティグループが指定されています。
2022-02-23_18h22_10.png

つまり、同じデフォルトセキュリティグループをアタッチしたEC2からはインバウンド通信を行うことが出来ますが、今回EC2にはEC2-SGという別のセキュリティグループを設定しているため、マウントターゲットと通信が行えず、マウントに失敗するわけです。

#対処法
デフォルトセキュリティグループの代わりに、マウントターゲットにアタッチするEFS用のセキュリティグループを新規で作成します。

EC2のコンソールから、[セキュリティグループ]>[セキュリティグループを作成]をクリックし、セキュリティグループ名、説明、VPCを入力します。
2022-02-23_18h39_23.png

タイプにNFS、ソースにEC2のセキュリティグループを指定したインバウンドルールを追加し、画面下の[セキュリティグループを作成]をクリックします。
2022-02-23_19h01_33.png
これにより、EFS用のセキュリティグループの作成は完了です。

次にEFSのコンソールから、[ファイルシステム]>[作成したファイルシステム名]>[ネットワーク]>[管理]をクリックし、現在設定されているマウントターゲットを削除します。
2022-02-23_18h56_23.png

そしてマウントターゲットを新たに追加し、先ほど作成したEFS用のセキュリティグループを指定して保存をクリックします。
2022-02-23_19h08_26.png
これでマウントターゲットの設定は完了です。

もう一度EC2にログインし、マウントを実行してみます。

$sudo mount -t efs -o tls fs-07d78a63cf0e92891:/ efs/efs-test

今度はエラーもなく、成功した様子。

dfコマンドで確認してみると、ちゃんとマウントされていました!

$df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        475M     0  475M   0% /dev
tmpfs           483M     0  483M   0% /dev/shm
tmpfs           483M  460K  483M   1% /run
tmpfs           483M     0  483M   0% /sys/fs/cgroup
/dev/xvda1      8.0G  1.6G  6.4G  20% /
tmpfs            97M     0   97M   0% /run/user/1000
127.0.0.1:/     8.0E     0  8.0E   0% /home/ec2-user/efs-test

#最後に
EFSのマウントって簡単にできると思ってましたが、マウントターゲットとか、デフォルトセキュリティグループとか、ちゃんと理解していないとダメですね。
あらためて実際に手を動かすのって大事だなあと感じました。
この記事が誰かの助けとなれば幸いです。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?