【Amazon EFS(Elastic File System)】
Amazon EFS(Elastic File System)はNFS(※1)をサポートするファイルストレージサービスです。ファイルストレージとは、データをファイルやフォルダの単位で階層構造として管理するストレージ形式のことをいいます。
EFSは、主に複数のEC2インスタンスやオンプレミスからアクセスされるファイル共有ストレージとして利用されます。EFSのファイル共有を開始するには、EC2 LinuxインスタンスやオンプレミスのNFSプロトコルに対応したサーバーなどから、EFSファイルシステムをマウント(※2)します。
(※1)NFS:Network File System … Linuxを含むUNIX系コンピュータ間においてファイル共有に使用されるプロトコル
(※2)マウント … ストレージなどをOSに認識させて利用可能にすること
【図を表示】
本項では下記のEFSの特徴について説明します:
・可用性と安全性
・排他制御
・ストレージ容量のスケーリング
・パフォーマンスモードとスループットモード
・マウントターゲット
■可用性と安全性
EFSはフルマネージドサービスなので、ユーザーが意識することなく可用性と安全性が確保されています。
・可用性:EFSはリージョン内の複数のAZにまたがってサービスを提供しています。特定のAZに障害が発生しても他のAZでサービスが継続されるため、高い可用性を提供します。また、デフォルトでAWS Backupを使用したバックアップが有効になっています。
・安全性:EFSはデフォルトで保管時のデータの暗号化が有効になっています。また、EFSファイルシステムのマウント時にTLS(Transport Layer Security:セキュアな通信を行うプロトコル)の使用もできるので、安全にデータを転送できます。
■排他制御
NFSプロトコルを利用したファイル共有では、ファイルに対するロック機構(排他制御)が使用されています。排他制御はファイルを更新している間に他のユーザーが同一ファイルを更新することを防ぎ、データの整合性を保ちます。
NFSプロトコルをサポートしたEFSは、数千のクライアントから同時にアクセスが可能です。
■ストレージ容量のスケーリング
EFSボリュームは保存したデータ量に伴って自動的にスケーリング(拡張・縮小)が行われ、実質的に容量が無制限に使用できます。使用するEFSボリュームの容量を事前に決める必要がなく、保存したデータ分のみに料金が発生します。
■パフォーマンスモードとスループットモード
EFSでは、ファイルシステムに対する読み取り・書き込み性能(パフォーマンス)をユーザーが調整できます。パフォーマンスの設定には、ファイルシステム作成時にのみ設定する「パフォーマンスモード」と、運用中に変更が可能な「スループットモード」があります。パフォーマンスモードではファイルシステムの基本的な性能を設定し、スループットモードでは秒間の転送容量(GB/秒)を調整して一時的な高負荷に対応することができます。
パフォーマンスモード(EFS作成時に設定)には以下の2つがあります:
・汎用パフォーマンスモード ... 一般的な用途向けのモード
・最大I/Oパフォーマンスモード ... ビッグデータの解析などの大容量データや、数千台のクライアントの処理向けのモード
スループットモード(運用中に変更可能)には以下の2つがあります:
・バーストスループットモード ... ストレージの容量に従ってベースライン性能(基本性能)が設定され、一時的に負荷が高くなった場合はベースライン性能の2倍まで性能向上できる
・プロビジョンドスループットモード ... ユーザーが予約した(provisioned)性能をAWSが保証してスループットを提供する
バーストスループットモードのベースライン性能はストレージの容量によって設定されるため、データ量が多ければ多いほど高いスループットを得ることができます。逆に、データ量は少ないがアクセス頻度の多いようなケースではバーストスループットモードでは性能要件を満たせない場合があります。その場合はプロビジョンドスループットモードに設定することで最適な性能を得ることができます。
■マウントターゲット
EFSにEC2インスタンスからアクセスするには「マウントターゲット」を設定します。マウントターゲットとは、EFSファイルシステムをネットワーク経由で接続するためのエンドポイントです。マウントターゲットを利用することで、EC2インスタンスやオンプレミスのシステムが、ファイルシステムとしてEFSにアクセスできるようになります。マウントターゲットは1つのAZにつき1つ配置します。複数のAZに配置する(マルチマウントターゲット)ことで高可用性を確保できます。