【学習記録】Amazon Elastic File System(EFS)について勉強

Amazon Elastic File System(EFS)について勉強しました。
復習したことや新しく得た知識などをメモします。

EFSの公式ドキュメントはこちらです。

aws.amazon.com

Amazon Elastic File System (Amazon EFS) は、シンプルでサーバーレスのセットアンドフォーゲットの伸縮自在なファイルシステムを提供します。これにより、ストレージをプロビジョニングまたは管理することなくファイルデータを共有できます。

EFSの使い方の雰囲気はこちらの動画を見るとイメージしやすかったです。

www.youtube.com

EFSを使用して、異なるVPC間でファイルの共有が可能

EFSを使用すると異なるVPCAWSアカウントとファイルシステムを共有できるようです。(まだ理解あやふやなので要勉強)

docs.aws.amazon.com

現場の状況によってはかなり便利なサービスになりそうですね。

既にVPCとEFSが接続してる状態で新しくVPCを作成してEFSを共有するには以下のような手順になるようです。

新しくVPCを作成->VPC間でVPC peering connectionを設定->新しいVPC内にEC2インスタンスを起動し、既存のEFSにマウントターゲットを設定する

VPCピアリングはVPC間での接続を可能にする設定とのこと。
ドキュメントはこちらです。

docs.aws.amazon.com

EFSとの通信にはNFSというプロトコルを使う、ポート番号は2049

docs.aws.amazon.com

オンプレミスサーバーから Amazon EFS にアクセスするには、オンプレミスサーバーから NFS ポート (2049) へのインバウンドトラフィックを許可するために、マウントターゲットセキュリティグループにルールを追加する必要があります。

ポート番号について言及されている箇所を抜粋しました。

試験問題でEFSを使うためのセキュリティグループの設定について問われることもあるようなので、NFSの2049番ということを覚えておきます。

EFSの保存データの暗号化はファイルシステム作成中に暗号化の有効設定を行う必要がある

EFSは作成された後に暗号化を有効にすることはできないようで、暗号化を有効にする場合はEFS作成時に有効設定を行う必要があるとのことです。
そのため、暗号化設定がされていないEFSの保存データ(data-at-rest)を暗号化したい場合は、新しく暗号化を有効にしたEFSを作成して既存のEFSからデータをコピーする必要があるようです。

ただ、こちらに関しては公式ドキュメントでの説明を見つけられず模試の解説で知った情報なので、公式ドキュメントの方も探したいと思います。(模試を信用してないというわけではなく、公式ドキュメントを参照して初めて調査完了というクセをつけたいため)

データ転送時にデータ暗号化を行いたい場合は、EFSマウントヘルパーを使用する

EFSで使用されるNFSプロトコルは暗号化されているプロトコルではないため、同じ物理ネットワークでは転送中のデータを盗み見ることができる。

AWSNFSとEFSの通信を暗号化するオプションを提供しているので、暗号化する場合はそのマウントヘルパーを使用する

docs.aws.amazon.com

EFSにはパフォーマンスモードとスループットモードがある

docs.aws.amazon.com

パフォーマンスモード さまざまなクラウドストレージワークロードをサポートするために、 Amazon EFS には汎用モードと最大 I/O モードの 2 つのパフォーマンスモードが用意されています。ファイルシステムは、作成時にパフォーマンスモードを選択し、変更することはできません。

スループットモード ファイルシステムに選択できるスループットモードは、バーストスループットとプロビジョニングされたスループットの 2 つがあります。バーストスループットモードで、Amazon EFS のスループットは、スタンダードストレージクラスのファイルシステムのサイズが大きくなるにつれて上昇します。

レイテンシーを抑えたい場合は汎用モードのパフォーマンスモードが最適のようです。

高いスループットが求められる場合はプロビジョンドスループットモードが最適のようです。

ビッグデータ分析などは最大I/Oモードが最適のようです。

EFSのタイプ別の比較はまだまだ調べ始めたばかりなのでもっと勉強します。

EFSの代表的なユースケース

EFSの代表的なユースケースは以下のようなものがあるそうです。

EFSはEBSと似たような使われ方をするらしく、EBSと比べながら特徴を覚えたほうが良さそうです。

EFSはマルチAZだが、EBSはシングルAZ。
EFSは百台以上のインスタンスが同時に接続するが、EBSは一台のインスタンスが接続する。
EFSはビッグデータ分析などに使われるが、EBSはボリュームを増やしたりNoSQLデータベースとしての用途で使われることがある。

雑感

EFSも理解が浅く知らないことだらけなのでまずはインプットすることに集中していきます。