はじめに
職場でEFSをEC2にマウントする機会がありました
すんなり終わると思っていたのですが、何点か戸惑うポイントがあったので、そちらについて整理していきます
作業概要
1 EFSの構築及びセキュリティグループの設定
以下の参考リンクをもとにEFSの構築とセキュリティグループの設定を実施しました
ほぼそのままでしたが、マウントされるEC2にアタッチされていたセキュリティグループのアウトバウンド通信を開け忘れていて、少し詰まりました
2 EFSのマウント
マウントポイントは
EC2:/home/applicaiton/shared
EEF:/shared_EFS
にてマウントしました
その際のコマンドは以下のようになります
sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport 【EFSのファイルシステムID】.efs.【リージョンID】.amazonaws.com:/shared_EFS /home/applicaiton/shared
3 EC2のマウントポイントの権限変更
今回の要件は、特定のグループに所属するユーザのみが本ファイルの書き込み(w)及び実行(x)ができることなので、まず以下コマンドでマウントポイントとしてるディレクトリの権限変更をします
chomd 774 home/applicaiton/shared
chown <ユーザ所有権> <グループ所有権> home/applicaiton/shared
これで今回の要件で指定したユーザとそんユーザが所属グループしか、ファイルの本ファイルの書き込み(w)及び実行(x)ができなくなりました
参考
4 ユーザの追加
既に作成されているユーザを指定のグループに追加します
usermod -aG <指定のグループ> <指定のユーザ>
ただこのグループ追加のさいにSSSDに関するエラーがでました。
そのため一旦/var/lib/sss/db/にあるファイルを削除することで、本エラーは解決しました
参考
5 fstabで自動マウントの設定
以下コマンドで自動マウントの設定を追加します
これで本作業は終了です
【マウントターゲットID】.efs.ap-northeast-1.amazonaws.com:/EFS側のマウントポイント EC2側のマウントポイント nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport 0 0
ちなみに、fstabが正しく設定されているか(自動マウントの設定ができているか)は、以下のコマンドで確認できます
umout
*マウント解除
mount -a
*fstabに記載されている内容を実行
mount
*マウントされているボリュームを表示
参考
詰まったポイント
・エンドポイントを作成するか問題
公式ドキュメントにはこちらのリンクのように、VPCエンドポイントについての記載があります
作業当日色々悩んだ果てに、結局エンドポイントを作成してしまいましたが、後日AWSの方に問い合わせたところ、今回の構築のようにEFSをEC2にマウントするだけであるならば、VPCエンドポイントの作成は不要とのことでした
仮に、VPCとEFS APIとの間にプライベート接続を確立する際には必要になります
→例えば、CLIを使用してEFSを操作する際などですね
・EC2にアタッチされていたセキュリティグループのNFS開け忘れ
今回はEC2とマウントターゲット(EFS作成時に作成される)間のNFS通信ですので、セキュリティグループを対応させておく必要があります
EC2にアタッチされていたセキュリティグループのアウトバウンドに、NFSの開け忘れがありました
プライベート構築する際には、EC2にアタッチするアウトバウンドを全開けすることが多いので、盲点だったなと反省しております