ファイルシステムの作成、マウントまで

紹介~わたしのEFSの使い方~

EFSはかなり好きなサービス。
3つのことで使っている。

①ALB+EFSでメール機能を冗長化
EFSはメールボックスを共有化するのに使っている。
マスタースレーブサーバのどちらが落ちてもメール送受信を継続できる。
②WordPress冗長化
ドキュメントルートを共有化するのに使っている。
ただし、普通に使っては遅すぎる。
CloudFrontやOPcacheで早くした。
③マスタースレーブサーバ間のデータやり取り
地味に役に立っている。
ファイルやディレクトリ置くだけで簡単に共有できるのでありがたい。
rsyncは苦手だし、ftpは面倒くさい。

使い方紹介ついでにファイルシステムを作成、使えるようにするまでの手順も紹介しておきます。

作業記録~ファイルシステムの作成~

ここではファイルシステムを作成し、マウントするところまでを記載しておく。

ファイルシステムへのアクセス

VPC:任意

アベイラビリティーゾーンサブネットIPアドレスセキュリティグループ
ap-northeast-1apublic-a自動default
ap-northeast-1cpublic-c自動default
ap-northeast-1dpublic-d自動default

オプション設定

項目設定解説
タグ追加されたタグはありませんタグをつけるかは好みかと。
パフォーマンスモード汎用パフォーマンスモードは汎用でいいだろう。「汎用パフォーマンスモードは、1 秒あたり 7,000 回のファイルシステムオペレーションに制限されています。たいていの一般的なユースケースでは、この制限でも十分です。」とのことなので。
スループットモードバーストプロビジョニングで速度上げることできるようだがお金がかなりかかる。
暗号化なし暗号化に関してはまた後日調べよう。セキュリティ要件を満たす場合などは暗号化する必要あるようだ。
ライフサイクルポリシーなし低頻度アクセスとみなす日数を指定して、その期間アクセスしなかったらEFS IAにファイルが移行する。料金が割安になるようだ。ただし、EFS IA に移行されたファイルへのアクセスは、別途、低頻度アクセスリクエスト料金がかかるとのこと。
アクセスポイントの数0EFS ファイルシステム内の共有データセットへアプリケーションアクセスを提供する作業を簡素化する新しい EFS 機能。
ファイルシステムポリシーなしファイルシステムへの API アクセスおよび NFS クライアントアクセスを制御できるようだ。デフォルトでルートアクセスを無効にする *デフォルトで読み取り専用アクセスを強制する *すべてのクライアントに対して転送時の暗号化を強制する の3つがチェックボックスで指定できるがどれも不要。JSONで更に複雑なポリシーも設定できるようだ。

https://aws.amazon.com/jp/getting-started/tutorials/create-network-file-system/AWS
AWSチュートリアルに従って作成しています。

作業記録~ファイルシステムのマウント~

https://docs.aws.amazon.com/ja_jp/efs/latest/ug/installing-other-distro.html
amazon-efs-utilsをCentOS7で使えるようにするコマンド。
AmazonLinux2とかだったらもっと簡単なのだが。

sudo yum -y install git	
git clone https://github.com/aws/efs-utils
sudo yum -y install make
sudo yum -y install rpm-build
sudo make rpm
sudo yum -y install ./build/amazon-efs-utils*rpm

手動マウント、自動マウント設定。

sudo mkdir /efs
sudo mount -t efs fs-********:/ /efs
df -h
-----
Filesystem                                      Size  Used Avail Use% Mounted on
devtmpfs                                        880M     0  880M   0% /dev
tmpfs                                           903M     0  903M   0% /dev/shm
tmpfs                                           903M   17M  887M   2% /run
tmpfs                                           903M     0  903M   0% /sys/fs/cgroup
/dev/nvme0n1p1                                  8.0G  1.1G  7.0G  13% /
tmpfs                                           181M     0  181M   0% /run/user/1000
fs-********.efs.ap-northeast-1.amazonaws.com:/  8.0E  122M  8.0E   1% /efs
-----

vi /etc/fstab
-----
:
fs-********.efs.ap-northeast-1.amazonaws.com:/ /efs               efs     defaults,_netdev 0 0
:
-----
sudo mount -a

これをマスタースレーブサーバで実施、EFSでのファイル共有が可能になりました。