
【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 | バーストクレジット残高 |
| PercentIOLimit | IO上限使用率 |
| PermittedThroughput | 許可スループット |
| MeteredIOBytes | 計測IOバイト数 |
| StorageBytes | ストレージ使用量 |
制限値(固定値/ハードリミット/ソフトリミット)
| 固定値 | 制限値 |
|---|---|
| ファイルシステムサイズ | 無制限 |
| スループット(バーストモード) | ストレージサイズに依存 |
| マウントターゲット数/VPC | 1,000 |
| 接続数/マウントターゲット | 25,000(NFS)、60,000(プロビジョニング) |
| ハードリミット | 制限値 |
|---|---|
| スループット(プロビジョニングモード) | 最大10 GB/s |
| ソフトリミット | 制限値 |
|---|---|
| ファイルシステム数/リージョン | 1,000 |
AWS CLIのサンプルコード
CloudFormationのサンプルコード
Terraformのサンプルコード
料金計算
| 課金項目 | 説明 |
|---|---|
| ストレージ容量 | 使用したストレージ容量(Standard、IA) |
| スループット | プロビジョニングドスループットモードの場合 |
| リクエスト | Infrequent Access(IA)へのアクセスリクエスト |
| データ転送 | リージョン間のレプリケーション |