自由気ままに書いちゃおう

好きなことをつらつらと・・・

AWS EFS(Elastic File System)について2-使ってみる

前回、EFSの概要について記載しております。

www.guri2o1667.work


今回は実際にEFSを使ってみたいと思います。

■用語説明:ファイルシステムについて

LinuxのEXT4とかXFSのことではなく、
あくまでAWS上のEFSを利用する上での管理単位です。
EFSを利用するために最初に必ず作成するものです。

■流れ

① マウントターゲットにアタッチするセキュリティグループの作成
② ファイルシステムの作成
③ AmazonLinux2からEFSに接続

■①マウントターゲットにアタッチするセキュリティグループの作成

f:id:guri2o1667:20200621171422p:plain

上図の「EFSマウントターゲット」用のSGのことです。
EFSではインバウント通信に2049/tcpを使用します。
(=NFSで利用するデフォルトポートと同じです。)

今回はEC2からのみマウントターゲットにアクセスするため、
1.EC2にアタッチしているSGからのみマウントターゲットにアクセス可能
2.2049/tcpのインバウント通信を許可
となるSGを新規作成します。

作成したSG(=test-efs)は以下の通りです。

f:id:guri2o1667:20200622095032p:plain

■②ファイルシステムの作成

1.「ファイルシステムの作成」をクリックします。

f:id:guri2o1667:20200622095244p:plain


2.「ステップ1」で以下の通り選択し「次のステップ」をクリックします。
※VPC、AZ、サブネット、SG、IPアドレスを指定します。
※選択したVPCに存在しないAZはグレーアウトされます。
※IPアドレスは任意のIPを指定可能ですがここでは「自動」を選択しています。

f:id:guri2o1667:20200622095520p:plain


3.「ステップ2」で以下の通り選択し「次のステップ」をクリックします。
※タグは任意のものを作成します。ここではNameキーにtest-efsとしました。

f:id:guri2o1667:20200622095742p:plain


※「ライフサイクル管理の有効化」は「なし」とします。

f:id:guri2o1667:20200622095830p:plain

※「スループットモードの選択」は「バースト」とします。

f:id:guri2o1667:20200622095907p:plain

※「パフォーマンスモードの選択」は「汎用」とします。

f:id:guri2o1667:20200622100117p:plain

※「暗号化の有効化」はチェックを入れません。

f:id:guri2o1667:20200622100209p:plain


4.「ステップ3」で以下の通り選択し「次のステップ」をクリックします。
※「ファイルシステムポリシー」と「アクセスポイント」は何も設定せずデフォルトのままとします。

f:id:guri2o1667:20200622100644p:plain

5.「ステップ4」で設定内容を確認し、「ファイルシステムを作成」をクリックします。

f:id:guri2o1667:20200622100931p:plain


6.作成に成功すると以下のような画面が表示されます。

※「EC2のマウント手順はこちら」をクリックすることで、設定手順を確認することができます。
f:id:guri2o1667:20200622101024p:plain

■③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-」から始まるものです。

f:id:guri2o1667:20200622102413p:plain

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

以上です。

 

www.guri2o1667.work