たそらぼ

日頃思ったこととかメモとか。

EFSをLinuxにマウントする

AWSでEFSを使う用事があったので、Linuxでの設定方法を調査した。

Amazon Elastic File Systemとは

Linux向けのファイルシステム
特徴は以下のような感じ、
・EC2およびオンプレでマウント可能
・フルマネージド
・スケーラブル
・汎用/最大 I/O の二つのパフォーマンスモード
・バースト/プロビジョニングの二つのスループットモード
・リージョンサービス

aws.amazon.com


同様のストレージサービスにはEBSとS3があるが、複数マシンからマウント可能という点で差別化されている。
f:id:tasotasoso:20190707195449p:plain
aws.amazon.com

料金

料金はS3やEBSより高い。
課金はリソース分の従料課金制。
東京リージョンだと、標準モードならS3の6倍くらいかかる。

サービス 料金
EFS 標準ストレージ 0.36USD/GB
EFS 低頻度アクセスストレージ 0.054USD/GB
S3(最初の50TB) 0.025USD/GB
EBS 0.025USD/GB

aws.amazon.com

ざっくり使用手順

ファイルシステムの作成

 (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のあるサブネットにマウントターゲットを作成する。また、セキュリティグループを設定することで、マウントターゲットへの通信を制限することができる。セキュリティグループは設置するサブネットに設定されたものと同一のもの以外にべつのセキュリティーグループを設定できる。
f:id:tasotasoso:20190707192715p:plain
※図はAmazonから

アンマウントする

アンマウントは普通にumountすればOKです。

#/mnt/efsにマウントしている場合。
umount /mnt/efs

https://docs.aws.amazon.com/ja_jp/efs/latest/ug/mounting-fs-mount-cmd-general.html