前回、EFSの概要について記載しております。
今回は実際にEFSを使ってみたいと思います。
- ■用語説明:ファイルシステムについて
- ■流れ
- ■①マウントターゲットにアタッチするセキュリティグループの作成
- ■②ファイルシステムの作成
- ■③AmazonLinux2からEFSに接続
- ■補足:マウントヘルパー利用時のマウントオプションについて
■用語説明:ファイルシステムについて
LinuxのEXT4とかXFSのことではなく、
あくまでAWS上のEFSを利用する上での管理単位です。
EFSを利用するために最初に必ず作成するものです。
■流れ
① マウントターゲットにアタッチするセキュリティグループの作成
② ファイルシステムの作成
③ AmazonLinux2からEFSに接続
■①マウントターゲットにアタッチするセキュリティグループの作成
上図の「EFSマウントターゲット」用のSGのことです。
EFSではインバウント通信に2049/tcpを使用します。
(=NFSで利用するデフォルトポートと同じです。)
今回はEC2からのみマウントターゲットにアクセスするため、
1.EC2にアタッチしているSGからのみマウントターゲットにアクセス可能
2.2049/tcpのインバウント通信を許可
となるSGを新規作成します。
作成したSG(=test-efs)は以下の通りです。
■②ファイルシステムの作成
1.「ファイルシステムの作成」をクリックします。
2.「ステップ1」で以下の通り選択し「次のステップ」をクリックします。
※VPC、AZ、サブネット、SG、IPアドレスを指定します。
※選択したVPCに存在しないAZはグレーアウトされます。
※IPアドレスは任意のIPを指定可能ですがここでは「自動」を選択しています。
3.「ステップ2」で以下の通り選択し「次のステップ」をクリックします。
※タグは任意のものを作成します。ここではNameキーにtest-efsとしました。
※「ライフサイクル管理の有効化」は「なし」とします。
※「スループットモードの選択」は「バースト」とします。
※「パフォーマンスモードの選択」は「汎用」とします。
※「暗号化の有効化」はチェックを入れません。
4.「ステップ3」で以下の通り選択し「次のステップ」をクリックします。
※「ファイルシステムポリシー」と「アクセスポイント」は何も設定せずデフォルトのままとします。
5.「ステップ4」で設定内容を確認し、「ファイルシステムを作成」をクリックします。
6.作成に成功すると以下のような画面が表示されます。
※「EC2のマウント手順はこちら」をクリックすることで、設定手順を確認することができます。
■③AmazonLinux2からEFSに接続
1.AmazonLinux2にSSH接続します。
2.以下コマンドを実行します。
sudo yum install -y amazon-efs-utils
※私がインストールしたときには「amazon-efs-utils-1.25-3.amzn2.noarch」でした。
3.作成したEFSのファイルシステムのIDを確認します。
※「fs-」から始まるものです。
4.以下コマンドを実行します。
sudo su -
mkdir -p /mnt/test-efs && cd /mnt && ls -la
cp -p /etc/fstab /etc/fstab_org
vi /etc/fstab
※/etc/fstabは以下の通りです。
fs-XXXXXXX.efs.ap-northeast-1.amazonaws.com:/ /mnt/test-efs efs defaults,_netdev 0 0
参考URL:
EFS ファイルシステムをマウントする - Amazon Elastic File System
Amazon EFS ファイルシステムを自動的にマウントする - Amazon Elastic File System
5.以下コマンドを実行します。
mount -a
df -Th
echo "TEST" >> /mnt/test-efs/test1.txt
cat /mnt/test-efs/test1.txt && ls -l /mnt/test-efs/test1.txt
■補足:マウントヘルパー利用時のマウントオプションについて
上記「③AmazonLinux2からEFSに接続」では、/etc/fstabにエントリーを追加して、
EFSへの接続(=マウント)を行いました。
/etc/fstab以外にも以下コマンドで随時接続が可能です
sudo mount -t efs fs-XXXXXXX:/ /mnt/test-efs
この場合、自動的に以下のマウントオプションが使用されます。
nfsvers=4.1
rsize=1048576
wsize=1048576
hard
timeo=600
retrans=2
noresvport
以上です。