AWS EFS(Elastic File System) 特徴まとめと設定方法 備忘録
[1] EFSの特徴
・複数EC2からNFSマウント可能な共有ストレージサービス(NFSv4)
・1つのEFSでペタバイト級まで対応
・HA(複数AZに冗長化)
・フルマネージド(管理不要)
・格納使用量で自動スケールアウト(キャパシティプランニング不要)
・用途例
- 共有リポジトリ
- パッケージの共有ディレクトリ
- 分散並列処理のデータ共有アクセス
セキュリティ
・KMSによるディスク暗号、SSLによる通信経路暗号
・VPC(単一)内に設置可能
※サブネット内にプライベートIPをもつマウントターゲット(ENI)が生成される
※マウントターゲットには個別のSGを設定可能
・SG/NACLによるネットワークアクセス制御
・Linux標準Posix権限によるファイル/ディレクトリアクセス制御
・IAMによるEFSへのAPIアクセス制御
・2018年7月に東京リージョンに対応
コスト
・格納使用量で課金
※オプションで高スループットモード時は、使用量に応じてプラス
他サービスとの比較
参照)
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS) 2018/8/9 update
構成イメージ
[2] EFSの使い方
① EFSを作成
設定項目
・VPC
・AZ/サブネット ※指定VPC配下が自動選択
・SG
・タグの追加
・パフォーマンスモードの選択(汎用 or 最大 I/O)
・スループットモードの選択(バースト or プロビジョニング済み)
※バーストは、普段低スループットのユースケースでバーストで上昇した場合にカバーしてくれる機能
・暗号化の有効化
・ライフサイクル管理の有効化
※利用頻度の少ないファイルを低価格クラスに移行してくれる
② EFSをマウントするEC2側事前準備
sudo yum update -y
sudo yum install -y amazon-efs-utils
sudo mkdir /efs
amazon-efs-utilsはEFS用のユーティリティ
/efsにマウントする場合の例
③ EFSをマウント
mountコマンドを各EC2で実行
sudo mount -t efs -o tls fs-XXXXXXXX:/ /efs
※ fs-XXXXXXXXはファイルシステムID。コンソールで確認できる。
以上で/efsがNFSマウントされていることがわかる
$ df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 476M 0 476M 0% /dev
tmpfs tmpfs 493M 0 493M 0% /dev/shm
tmpfs tmpfs 493M 440K 493M 1% /run
tmpfs tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/xvda1 xfs 8.0G 1.3G 6.8G 17% /
tmpfs tmpfs 99M 0 99M 0% /run/user/1000
127.0.0.1:/ nfs4 8.0E 0 8.0E 0% /efs
[3] おまけ
① アクセス設定関連
・EFSのマウントターゲット(ENI)のSGのインバウンドには、「NFS:port 2049」が必要。あるいはEC2と同じSGにして SELF INBOUNDをALL OKにする方法もあり。
・マウント時の/efsはroot権限で作成されるので、別ユーザで利用の際は適宜ディレクトリ権限変更(chmodやchown)をしておく。
② マイグレーション
AWS DataSync
・既存のEC2やオンプレミスのデータをEFSに転送するには「AWS DataSync」サービスの「EFS File Sync」機能がある
※cpやsyncでも場合によっては可能だが、高スループット(5倍)で完了する
・VMware ESXi または EC2 のデータを、エージェントを介して移行可能
・コピーするデータの量に対して課金(0.04 USD/GB)