はじめに
EC2インスタンス(AmazonLinux)にてEFSボリュームを自動マウントする設定についてアウトプットしたいと思います。
環境
項目 | 説明 |
---|---|
EC2 | Amazon Linux 2 AMI (HVM), SSD Volume Type |
Size | t2.micro |
作業前提
- EFSボリュームの作成が完了している
- ネットワーク環境の設定ができている(EC2からEFSボリュームへアクセス可能な状態)
※前提条件をクリアしていない場合は過去の記事をご覧下さい。
【AWS】AmazonLinuxにEFSボリュームのNFSマウントを実施してみる
手順
EC2インスタンスへログイン済みであることを前提としています。
手動マウント
※下記手順を実施済みの場合は飛ばして問題ないです。
①ルートユーザーへスイッチ
sudo su
②事前にディスク状態を確認
df -Ph
実行例
[root@ip-10-0-0-120 ec2-user]# df -Ph
Filesystem Size Used Avail Use% Mounted on
devtmpfs 474M 0 474M 0% /dev
tmpfs 492M 0 492M 0% /dev/shm
tmpfs 492M 400K 492M 1% /run
tmpfs 492M 0 492M 0% /sys/fs/cgroup
/dev/xvda1 8.0G 1.3G 6.8G 16% /
tmpfs 99M 0 99M 0% /run/user/1000
[root@ip-10-0-0-120 ec2-user]#
③amazon-efs-utilsパッケージインストール
yum -y install amazon-efs-utils
④EFSマウント
mkdir マウントしたいディレクトリ
mount -t efs <ファイルシステムID>:/ <マウントしたいディレクトリ>
実行例
[root@ip-10-0-0-120 ec2-user]# mkdir /test
[root@ip-10-0-0-120 ec2-user]# mount -t efs fs-7f41435e:/ /test
[root@ip-10-0-0-120 ec2-user]#
⑤マウント確認
df -Ph
実行例
[root@ip-10-0-0-120 ec2-user]# df -Ph
Filesystem Size Used Avail Use% Mounted on
devtmpfs 474M 0 474M 0% /dev
tmpfs 492M 0 492M 0% /dev/shm
tmpfs 492M 404K 492M 1% /run
tmpfs 492M 0 492M 0% /sys/fs/cgroup
/dev/xvda1 8.0G 1.3G 6.8G 16% /
tmpfs 99M 0 99M 0% /run/user/1000
fs-7f41435e.efs.ap-northeast-1.amazonaws.com:/ 8.0E 0 8.0E 0% /test
[root@ip-10-0-0-120 ec2-user]#
⑥アンマウント
umount <マウント済みディレクトリ>
df -Ph
実行例
[root@ip-10-0-0-120 ec2-user]# umount /test
[root@ip-10-0-0-120 ec2-user]#
[root@ip-10-0-0-120 ec2-user]# df -Ph
Filesystem Size Used Avail Use% Mounted on
devtmpfs 474M 0 474M 0% /dev
tmpfs 492M 0 492M 0% /dev/shm
tmpfs 492M 400K 492M 1% /run
tmpfs 492M 0 492M 0% /sys/fs/cgroup
/dev/xvda1 8.0G 1.3G 6.8G 16% /
tmpfs 99M 0 99M 0% /run/user/1000
[root@ip-10-0-0-120 ec2-user]#
→/test
がアンマウントされている(dfの結果に存在しない)ことを確認
自動マウント設定
自動マウントの設定をしていきます。
### ①/etc/fstabバックアップ
cp -p /etc/fstab /etc/fstab_`date +'%Y%m%d'`
※date +'%Y%m%d'
はサーバ内の当日日付になります。(自動入力)
実行例
[root@ip-10-0-0-120 ec2-user]# cp -p /etc/fstab /etc/fstab_`date +'%Y%m%d'`
[root@ip-10-0-0-120 ec2-user]#
[root@ip-10-0-0-120 ec2-user]# ll /etc | grep fstab
-rw-r--r-- 1 root root 91 May 27 00:48 fstab
-rw-r--r-- 1 root root 91 May 27 00:48 fstab_20200701
[root@ip-10-0-0-120 ec2-user]#
②自動マウント設定追加
(ファイルシステムID):/ <マウントしたいディレクトリ> efs defaults,_netdev 0 0
を/etc/fstab
に追記
echo "(ファイルシステムID):/ <マウントしたいディレクトリ> efs defaults,_netdev 0 0" >> /etc/fstab
※必ず>>
として下さい。(>
の場合、ファイル全体が上書きされてしまうため)
実行例
[root@ip-10-0-0-120 ec2-user]# echo "fs-7f41435e:/ /test efs defaults,_netdev 0 0" >> /etc/fstab
[root@ip-10-0-0-120 ec2-user]# cat /etc/fstab
#
UUID=be4f19b3-a8ae-4d74-a7a0-b12b49e21194 / xfs defaults,noatime 1 1
fs-7f41435e:/ /test efs defaults,_netdev 0 0
[root@ip-10-0-0-120 ec2-user]#
③バックアップファイルと比較
追記したファイルとバックアップファイルを比較し、差異が修正した箇所のみであることを確認。
/etc/fstab /etc/fstab_`date +'%Y%m%d'`
実行例
[root@ip-10-0-0-120 ec2-user]# diff /etc/fstab /etc/fstab_20200701
3d2
< fs-7f41435e:/ /test efs defaults,_netdev 0 0
[root@ip-10-0-0-120 ec2-user]#
④マウント確認
/etc/fstab
の記述通りマウントできることを確認
mount <マウントしたいディレクトリ>
df -Ph
実行例
[root@ip-10-0-0-120 ec2-user]# mount /test
[root@ip-10-0-0-120 ec2-user]# df -Ph
Filesystem Size Used Avail Use% Mounted on
devtmpfs 474M 0 474M 0% /dev
tmpfs 492M 0 492M 0% /dev/shm
tmpfs 492M 404K 492M 1% /run
tmpfs 492M 0 492M 0% /sys/fs/cgroup
/dev/xvda1 8.0G 1.3G 6.8G 16% /
tmpfs 99M 0 99M 0% /run/user/1000
fs-7f41435e.efs.ap-northeast-1.amazonaws.com:/ 8.0E 0 8.0E 0% /test ← マウントできている
[root@ip-10-0-0-120 ec2-user]#
自動マウント確認
①EC2の再起動実施
sudo reboot
②再起動後のマウント確認
再起動後にログインし、NFSボリュームがマウントされていることを確認
df -Ph
実行例
[ec2-user@ip-10-0-0-120 ~]$ df -Ph
Filesystem Size Used Avail Use% Mounted on
devtmpfs 474M 0 474M 0% /dev
tmpfs 492M 0 492M 0% /dev/shm
tmpfs 492M 408K 492M 1% /run
tmpfs 492M 0 492M 0% /sys/fs/cgroup
/dev/xvda1 8.0G 1.3G 6.8G 16% /
fs-7f41435e.efs.ap-northeast-1.amazonaws.com:/ 8.0E 0 8.0E 0% /test ← マウントされている
tmpfs 99M 0 99M 0% /run/user/1000
[ec2-user@ip-10-0-0-120 ~]$
まとめ
- AmazonLinuxにEFSボリュームを自動マウントさせるためには、
/etc/fstab
を修正する必要がある。 - amazon-efs-utilsパッケージは必須