https://docs.aws.amazon.com/ja_jp/efs/latest/ug/wt1-getting-started.html
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/AmazonEFS.html
https://dev.classmethod.jp/articles/ec2-efs-mount-for-beginner/
https://qiita.com/satton6987/items/db79272a5ce9fb5706dd
前提:
作業簡略化のため
NFSとEC2に同じデフォルトセキュリティグループを割り当てる
デフォルトセキュリティグループに、inboundで2049(NFS)の許可を追加する
EFSとEC2インスタンスはAZ-aに作成
-- 1. コマンド等のインストール
-- 1.1 aws cli version 2 インストール
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version
-- 2. テスト用EC2インスタンス作成
aws ec2 run-instances \
--image-id ami-0404778e217f54308 \
--instance-type t3.nano \
--key-name key1 \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=instance01}]' \
--subnet-id subnet-11111111111111111 \
--security-group-ids sg-11111111111111111
-- 3. EFS ファイルシステムの作成
aws efs create-file-system \
--performance-mode generalPurpose \
--availability-zone-name ap-northeast-1a \
--no-backup
aws efs describe-file-systems
-- 4. マウント・ターゲットの作成
aws efs create-mount-target \
--file-system-id fs-11111111111111111 \
--subnet-id subnet-11111111111111111 \
--security-groups sg-11111111111111111
aws efs describe-mount-targets --file-system-id fs-11111111111111111
-- 5. ファイルシステムを EC2 インスタンスにマウント
sudo su -
yum -y update
yum -y install nfs-utils
mkdir /test
※ファイルシステムのDNS名:
[ファイルシステム ID].efs.[awsリージョン].amazonaws.com
df -h
mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-11111111111111111.efs.ap-northeast-1.amazonaws.com:/ /test
df -h
ls -l /test
echo testfile1 > /test/testfile1
ls -l /test
cat /test/testfile1
df -h
umount /test
df -h
-- 6. OS再起動時の自動再マウント設定
yum -y install amazon-efs-utils
vim /etc/fstab
fs-11111111111111111:/ /test efs tls,_netdev 0 0
df -h
mount -a
df -h
reboot
※127.0.0.1にマウントしているように見えるが、EFSにマウントされている
インスタンス停止→起動でも確認済み
-- 7. クリーンアップ
-- EC2インスタンスの削除
aws ec2 describe-instances
aws ec2 terminate-instances --instance-ids i-11111111111111111
-- マウント・ターゲットの削除
aws efs describe-mount-targets --file-system-id fs-11111111111111111
aws efs delete-mount-target --mount-target-id fsmt-11111111111111111
-- EFS ファイルシステムの削除
aws efs describe-file-systems
aws efs delete-file-system --file-system-id fs-11111111111111111