Amazon Elastic File Systemは、ペタバイトデータまで自動的にスケールする共有ファイルシステムである。複数の異なるマシンからアクセスする必要のあるファイルシステムで有効である。高耐久性(負荷分散)と高可用性(スケール)の備えたよく見る構成 EC2 + Auto Scaling + ALB + EFS で使用される。
料金体制は、使用した容量・通信で従量課金され、スタンダードクラスで 0.36USD(GB-月)、すべてのストレージクラスで読み取り 0.04USD(GB), 書き込み 0.07USD(GB)の料金がかかる。
制限としては、以下のようなものがある。
EC2でEFSをマウントする
EC2で使用するには、Linux のmountとEFSのDNS名を使用して、特定のフォルダにマウントする。
- セキュリティグループを作成する
EC2 -> セキュリティグループ -> セキュリティグループを作成を押す。
下記の設定でセキュリティグループを作成する。 - EFSを作成する
EFS -> ファイルシステムの作成で、名前と対象のVPCを選択する。
作成したEFSを選択し、ネットワークのタブ -> 管理を押す。
セキュリティグループで、先ほど作成したものに変更する。
(任意)作成したEFSを選択し、右上の編集を押す。
(任意)自動バックアップを無効化する。
(任意)ライフサイクル管理で全てなしにする。 - EC2にEFSをマウントする
EC2で下記のコマンドを実行して、NFS クライアントをインストールする。下記のコマンドで、EFSをマウントする。$ sudo yum -y install nfs-utils
mount-target-DNSは、EFSコンソールの右上「アタッチ」を押すと、マウントするコマンドが確認できる。$ mkdir ~/efs-mount-point $ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-DNS:/ ~/efs-mount-point $ cd ~/efs-mount-point $ sudo chmod go+rw .
- 自動的に再マウントするようにする
マウントしたファイルシステムは、再起動後は保持されない。- EC2起動時にEFS ファイルシステムをマウントするよう設定する
[ファイルシステム] で、マウントする EFS ファイルシステムを選択する。
ファイルシステム ID の横に表示されるパスは、EC2 インスタンスが使用するマウントポイント。
このマウントポイントは変更できる。
ユーザーデータが自動的に生成される。 - EFS /etc/fstab マウントヘルパーで設定する
下記のコマンドで、/etc/fstab ファイルを開く。下記の行を追加する。sudo emacs /etc/fstab
[file-system-id]:/ [efs-mount-point] efs _netdev,noresvport,tls,iam 0 0
- file-system-id: Amazon EFS ファイルシステムの ID。
- efs-mount-point: EC2 インスタンスの EFS ファイルシステムのマウントポイント
- EC2起動時にEFS ファイルシステムをマウントするよう設定する
まとめ
今回は、EFSで共有ファイルシステムを作成・マウントの仕方を紹介した。