自由気ままに書いちゃおう

好きなことをつらつらと・・・

AWS EFS(Elastic File System)について1-概要

AWS EFS(Elastic File System)についてです。

■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アドレスが固定で割り当てられます。

f:id:guri2o1667:20200621171422p:plain

■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ディレクトリにいつでもアクセスできることになるので便利かと思います。
※オンプレでも上記は可能ですがディスクサイズ設計がめんどくさいので、
 敬遠しがちだったりします。


以上です。

 

www.guri2o1667.work

www.guri2o1667.work