EFSをLinuxにマウントする
AWSでEFSを使う用事があったので、Linuxでの設定方法を調査した。
Amazon Elastic File Systemとは
Linux向けのファイルシステム。
特徴は以下のような感じ、
・EC2およびオンプレでマウント可能
・フルマネージド
・スケーラブル
・汎用/最大 I/O の二つのパフォーマンスモード
・バースト/プロビジョニングの二つのスループットモード
・リージョンサービス
同様のストレージサービスにはEBSとS3があるが、複数マシンからマウント可能という点で差別化されている。
aws.amazon.com
料金
料金はS3やEBSより高い。
課金はリソース分の従料課金制。
東京リージョンだと、標準モードならS3の6倍くらいかかる。
サービス | 料金 |
EFS 標準ストレージ | 0.36USD/GB |
EFS 低頻度アクセスストレージ | 0.054USD/GB |
S3(最初の50TB) | 0.025USD/GB |
EBS | 0.025USD/GB |
ざっくり使用手順
①ファイルシステムの作成
(i)ファイルシステムアクセスの設定
・・・VPC内のEC2からアクセスする前提のため、どのVPC内で使うか選択する。
(ii)マウントターゲットの作成
・・・作成するAZ/サブネット/IP(任意)/セキュリティグループを設定する
(iii)オプション設定の構成
・・・タグ/ライフサイクル/スループットモード/パフォーマンスモード/暗号化を設定する
②EC2の準備
マウントターゲットをマウントするため、マウントヘルパーをインストールする。マウントヘルパーはAmazon EFS ファイルシステムマウント用のツールで、mountと完全互換。
下記AMIは標準でサポートしているためインスタンスを立てるだけで良いとのこと。
・Amazon Linux
・Amazon Linux 2
・Red Hat Enterprise Linuxバージョン 7 以降
・Ubuntu 16.04 LTS 以降
docs.aws.amazon.com
③マウントヘルパーでマウントターゲットをマウントする。
これは②のリンクの公式手順通りに実行すればOK。
#file-system-id を [File System ID (ファイルシステム ID)] 値と置き換える。 #これはファイルシステム作成時に記載されている。 #/mnt/efsは自分で作ったec2上のマウント先 sudo mount -t efs fs-12345678:/ /mnt/efs
マウントターゲット
EFSを利用するためにはEC2のあるサブネットにマウントターゲットを作成する。また、セキュリティグループを設定することで、マウントターゲットへの通信を制限することができる。セキュリティグループは設置するサブネットに設定されたものと同一のもの以外にべつのセキュリティーグループを設定できる。
※図はAmazonから
アンマウントする
アンマウントは普通にumountすればOKです。
#/mnt/efsにマウントしている場合。 umount /mnt/efs
https://docs.aws.amazon.com/ja_jp/efs/latest/ug/mounting-fs-mount-cmd-general.html