AWS EFS(Elastic File System)についてです。
- ■AWSが扱うストレージの種類について
- ■EBSとEFSの違いについて
- ■EFSについて
- ■EFSを使用する際のマウントターゲットについて
- ■EFSを利用するためのNFSクライアントの設定について
- ■EFSのユースケースについて
■AWSが扱うストレージの種類について
AWSでは、以下の通り3つのストレージサービスがあります。
① ブロックストレージ
⇒ EBS、インスタンスストア
②オブジェクトストレージ
⇒ S3、Glacier
③ファイルストレージ
⇒ EFS
■EBSとEFSの違いについて
詳しい方からするとたくさんあるみたいですが、
私としてはざっくり以下を理解していればいいかなって感じです。
※EBS、EFSの優位性ではなく、
あくまで使い分けの上で理解しておくと混乱せずにすむかなって内容です。
・EBSは一つのEC2からしかマウントできない。
・EFSは複数のLinuxのEC2からマウント可能。
・EBSは単一のAZで冗長化している
・EFSは複数のAZで冗長化している
・EBSはブロック単位でアクセス
・EFSはファイル単位でアクセス
■EFSについて
前述の通り、ファイルストレージです。
イメージしやすいところではNFS(=ネットワーク共有)のことです。
実際、EFSではNFSv4.0/4.1を使用しています。
注意したいところとしては、CIFS/SMBはサポート外です。
つまり、Windowsで使えるファイル共有(=SMB)ではなく、
Linux(Debian、RHEL)からマウントして使うケースが想定されています。
「Windowsからは利用できない!」って覚えておいてください。
■EFSを使用する際のマウントターゲットについて
EFSは下図のように、AZ毎に作成されるマウントターゲットを使って接続します。
マウントターゲットが接続先って感じです。
マウントターゲットはDNS名とIPアドレスが固定で割り当てられます。
■EFSを利用するためのNFSクライアントの設定について
nfs-utils、nfs-commonも使えますが、EFSマウントヘルパーの利用が推奨です。
EFSマウントヘルパーはamazon-efws-utilsパッケージに含まれています。
AmazonLinuxから利用するには、yumコマンドでインストール可能です。
RHEL/CentOSからはGitHubにソースコードがありますので、そちらを利用します。
※設定方法は別記事を予定しています。
■EFSのユースケースについて
オンプレLinux環境で既にNFSを利用されている方であれば、
それをAWS上で実現するにはEFSを使えばよいかと。
これから使ってみたいなって方は、
homeディレクトリ配下をEFSでマウントすると、
複数ユーザがどのEC2で作業していても自分のhomeディレクトリにいつでもアクセスできることになるので便利かと思います。
※オンプレでも上記は可能ですがディスクサイズ設計がめんどくさいので、
敬遠しがちだったりします。
以上です。