EFS

【VPC内リージョンサービス】

EFS(Elastic File System) は、AWSが提供するフルマネージド型のNFS(Network File System)です。

複数のEC2(Elastic Compute Cloud)インスタンスから同時にマウントでき、さらにECS(Elastic Container Service) on Fargate / EKS(Elastic Kubernetes Service)などのコンテナ環境からも利用できるため、Webサーバーやアプリケーション層の共有ストレージとして柔軟に活用できます。

EFSは、マルチAZ(Availability Zone)構成によりデータを自動的に冗長化し、障害発生時にも高い可用性を維持します。

ファイルシステムは スループットモードに対応しており、負荷に応じてスループットとI/O性能を自動スケールさせることができます。また、バースト機能により、小規模なファイルシステムでも一時的に高いパフォーマンスを発揮できます。

データの保存階層としては、標準ストレージに加えてIA階層(Infrequent Access)を利用でき、アクセス頻度の低いデータを自動的に低コストストレージへ移動してコスト最適化を実現します。

POSIX(Portable Operating System Interface)互換のファイルシステムであり、UNIX系システムのパーミッション管理やディレクトリ構造をそのまま利用できます。さらに、IAM認証によるアクセス制御を組み合わせることで、POSIXパーミッション+セキュリティグループ+IAMポリシーの多層的なセキュリティを実現します。

AWS Backup と連携して定期的なバックアップを自動化でき、データ保護やコンプライアンス要件にも対応します。

重要用語

関連サービス

ユースケース

複数EC2からの共有ファイルストレージ複数のEC2インスタンスに同じEFSをマウントし、アプリケーションの設定ファイルやアップロードファイルなどを共有する。
コンテナ・サーバーレス用共有ストレージECS・EKS・Lambdaなどから同じファイルシステムにアクセスし、ワークフローの中で生成されるファイルを共有・再利用する。
ホームディレクトリやユーザーデータの共有VDI環境やLinuxユーザーのホームディレクトリをEFS上に置き、どのインスタンスにログインしても同じファイルにアクセスできるようにする。

ベストプラクティス

アクセスポイントの利用アプリケーションごとにアクセスポイントを作成し、権限とパスを分離する。
パフォーマンスモードの選択スループット要件に応じてパフォーマンスモードとスループットモードを選ぶ。
セキュリティグループとPOSIX権限ネットワークとファイルシステムの両方でアクセス制御を行う。

高可用性・バックアップ・リトライ

高可用性・バックアップ・リトライ設計のポイント
【デフォルト】AWS内部で冗長化
 ・EFS のデータ本体(少なくとも3つのマルチAZ構成)
 ・メタデータ(マルチAZ構成)
 ・NFS エンドポイント(マウントターゲットはマルチAZに配置)
 ・ストレージの自動スケーリング(自動拡張 最大ペタバイト級)
【マウントターゲット】のマルチAZ化(AZ ごとにマウントターゲットのENIを作成)
【アプリケーション側】もマルチAZ化(アプリ側が単一 AZ だと冗長化にならない)
【スループットモード】の選択(Bursting:デフォルト / Provisioned Throughput)
【AWS Backup】(EFS 自身にバックアップ機能がない)
 ・EFS のバックアップは Backup Vault(AWS Backup の専用ストレージ) に保存される
 ・自動バックアップスケジュール
 ・保持期間(Retention)
 ・手動/自動バックアップの統合管理
 ・クロスリージョンバックアップ
 ・クロスアカウントバックアップ
 ・Backup Vault Lock(削除防止)

セキュリティ

関連サービス設定内容
Subnet(公開リソースと内部リソースの分離)【NFSサーバ】
 Privateの専用SubnetでマルチAZ構成
SG(リソース単位のアクセス制御)【NFSサーバ】
 インバウンド:2049(NFS)
 アウトバウンド:すべて許可
KMS(データの暗号化と鍵の安全管理)【ファイルシステムの暗号化が必要】
 独自KMSキーを使うことを推奨(鍵操作、監査)
Secrets Manager(機密情報の安全管理)-
SSM Parameter Store(設定情報の一元管理)-
CloudTrail(操作履歴の記録・監査・追跡)【自動記録】
作成・更新・削除・設定変更は自動記録される。(コントロールプレーンAPI)
データ操作は追跡できない(データプレーンAPI)
Config(リソースの構成状態・設定変更を記録)【Configが有効な場合】
ファイルシステム/マウントターゲット変更履歴・暗号化/ポリシー/バックアップ準拠評価
GuardDuty(脅威を自動検出)【GuardDutyが有効な場合】
VPC内ENI通信異常の検知

ログ・監視

標準メトリクス
メトリクス名説明
ClientConnectionsクライアント接続数
DataReadIOBytesデータ読み取りバイト数
DataWriteIOBytesデータ書き込みバイト数
MetadataIOBytesメタデータIOバイト数
TotalIOBytes合計IOバイト数
BurstCreditBalanceバーストクレジット残高
PercentIOLimitIO上限使用率
PermittedThroughput許可スループット
MeteredIOBytes計測IOバイト数
StorageBytesストレージ使用量

制限値(固定値/ハードリミット/ソフトリミット)

固定値制限値
ファイルシステムサイズ無制限
スループット(バーストモード)ストレージサイズに依存
マウントターゲット数/VPC1,000
接続数/マウントターゲット25,000(NFS)、60,000(プロビジョニング)

ハードリミット制限値
スループット(プロビジョニングモード)最大10 GB/s

ソフトリミット制限値
ファイルシステム数/リージョン1,000

AWS CLIのサンプルコード

CloudFormationのサンプルコード

Terraformのサンプルコード

料金計算

課金項目説明
ストレージ容量使用したストレージ容量(Standard、IA)
スループットプロビジョニングドスループットモードの場合
リクエストInfrequent Access(IA)へのアクセスリクエスト
データ転送リージョン間のレプリケーション
料金計算ツール

公式ページ

AWSドキュメント EFS