[AWS]EFSを使ってみよう!設定編!

By | 2018年8月18日

 Amazon Elastic File System(以下:EFS)のマウント手順をまとめます。
マウントのパターンは複数あると思いますが、今回はEC2インスタンス新規起動時(またはAutoScalingでの起動時)に自動マウントする手順で説明していきます。

 なお、作成済みのインスタンスにマウントする場合はこちらを参考にしてください。
 今回の方法ではEC2インスタンスの新規立ち上げ時にEFSをマウントする方法を取りますが、マウント済みのAMIを作成しておけば今後は容易にEFSマウント済み環境を使うことも可能です。

準備編:[AWS] EFSを使ってみよう!準備編!
設定編:この記事!
評価編:[AWS]EFSを使ってみよう!性能評価編!

 

EC2インスタンス新規起動時の設定


 インスタンスの新規起動時に自動的にEFSをマウントする設定を行います。
EC2の新規起動またはAutoScalingの起動設定からインスタンスの作成を行って下さい。なおECSのインスタンスを作成する場合にはAMIの選択を間違えないように注意してください。

「インスタンスの詳細の設定」までステップを進めたら、ページ下部にある「高度な詳細」を選択します。

 

ユーザーデータの編集


 ユーザーデータにテキストで画像のようなコードを記入します。このコードはAWS EFSドキュメントにも上がっています。
前回の記事で作成したシステムファイルのIDをマウントポイントのパスを指定します。
マウントポイントは任意ですので、上記の画像のままでも問題ありません。

1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash
yum update -y
yum install -y nfs-utils
FILE_SYSTEM_ID={マウントするファイルID}
AVAILABILITY_ZONE=$(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone )
REGION=${AVAILABILITY_ZONE:0:-1}
MOUNT_POINT={マウントポイントのパス}
mkdir -p ${MOUNT_POINT}
chown ec2-user:ec2-user ${MOUNT_POINT}
echo ${FILE_SYSTEM_ID}.efs.${REGION}.amazonaws.com:/ ${MOUNT_POINT} nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev 0 0 >> /etc/fstab
mount -a -t nfs4

 
 なお、もしも作成する予定のインスタンスがECSのインスタンスであった場合ではユーザーデータは下記のように記述します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Content-Type: multipart/mixed; boundary="==BOUNDARY=="
MIME-Version: 1.0
 
--==BOUNDARY==
Content-Type: text/cloud-boothook; charset="us-ascii"
 
# Install nfs-utils
cloud-init-per once yum_update yum update -y
cloud-init-per once install_nfs_utils yum install -y nfs-utils
 
# Create /efs folder ←ここは任意のディレクトリ名でもOK
cloud-init-per once mkdir_efs mkdir /efs
 
# Mount /efs ←上記で作成したマウント左記のディレクトリ名
cloud-init-per once mount_efs echo -e '{マウントするファイルID}.efs.{リージョン名}.amazonaws.com:/ /efs nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 0 0' >> /etc/fstab
mount -a
 
--==BOUNDARY==
Content-Type: text/x-shellscript; charset="us-ascii"
 
#!/bin/bash
# Set any ECS agent configuration options
echo "ECS_CLUSTER={所属するECSのクラスター名}" >> /etc/ecs/ecs.config
 
--==BOUNDARY==--

 

セキュリティグループについて


 EFSをマウントするためにセキュリティグループを調整する必要があります。ただし調整先のセキュリティグループはEFSのセキュリティグループのみです。
 そのため、今回は新規作成をしていますがEC2インスタンスのセキュリティグループは任意のもので問題ありません。EC2インスタンスの設定はこれで完了なので、通常通りインスタンスの作成を行います。

 

 EC2インスタンスが立ち上がるまでの間に必要な設定を行います。

 

 EFSに設定しているセキュリティグループの「2049」ポートを開放します。今回は2049ポートにEC2インスタンスのセキュリティグループを設定しました。

 

起動後の確認


 EC2インスタンスが起動したあと、正常にマウントされているか確認をしてください。
なおdfコマンドでEFSの使用量を確認することができますが、EFS内の容量はリアルタイムで更新されているわけではないため注意が必要です。

 EC2インスタンスの立ち上げに失敗している場合にはユーザーデータが正しく設定されているか確認を行ってください。
EC2インスタンスが正常に立ち上がっているにも関わらずマウントできていない場合には、手動でマウント可能であるか確認をしてください。できない場合にはVPCが異なっていないか、セキュリティグループのポート開放は正しいかを確認してください。

 

次回、検証編

 これでマウントの設定が完了しました。しかしここまでは公式ドキュメントを読んでいれば理解できる範囲です。
次回は「東京リージョンでのEFSの性能調査」を行います。ぶっちゃけこれが一番重要かつ必要な情報なので・・・。

リンク:つぎ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)