AWS EFS(Amazon Elastic File System)とは?S3・EBSとの違い・料金・使い方を解説
AWS EFS(Amazon Elastic File System)は、AWSが提供するフルマネージド型のファイルストレージサービスです。NFSプロトコルで複数のEC2インスタンスから同時にマウントでき、容量は使った分だけ自動で伸縮します。この記事では、EFSとは何かを起点に、S3・EBSとの違い、ストレージクラスと料金の考え方、スループットモード、EC2へのマウント手順までを最新仕様に沿って整理します。なお本記事が扱うのはAWSの「EFS」です。カメラ用レンズの「EF-Sマウント」やWindowsの暗号化機能「EFS(Encrypting File System)」とは別物のため、混同しないようご注意ください。
目次
まとめ:この記事の結論
先に要点をまとめます。詳しい根拠と手順は本文で解説します。
- EFSの正体:複数のEC2から同時にマウントできる、フルマネージドの共有ファイルストレージ(NFS)。容量は自動伸縮で、事前のサイズ設計が不要。
- S3・EBSとの違い:S3は「オブジェクト」、EBSは単一インスタンス向けの「ブロック」、EFSは複数台で共有できる「ファイル」。共有ファイルシステムが要るならEFSが第一候補。
- 料金の勘所:保存したデータ量に対する従量課金。アクセス頻度の低いデータをIA・Archiveクラスへ自動移動させるとコストを大きく下げられる。
- 性能設定:スループットは既定の「Elastic」が多くの用途で推奨。パフォーマンスモードはGeneral Purposeが既定で、Max I/Oは旧世代。
ここからは、それぞれの根拠を順に見ていきます。
Amazon EFSとは:フルマネージドの共有ファイルストレージ
Amazon EFSは、サーバーやOSの管理が不要なサーバーレス型のファイルストレージです。利用者はファイルシステムを作成するだけで、NFSクライアントとしてEC2インスタンスやコンテナからマウントして使えます。ファイルの増減に応じて容量が自動的に拡張・縮小するため、あらかじめストレージサイズを決めてプロビジョニングする必要がありません。
最大の特徴は、複数のサーバーから同じファイルシステムへ同時にアクセスできる点です。たとえばWebサーバーを複数台に増やしたとき、アップロード画像や設定ファイルを全台で共有したいケースで力を発揮します。自前でNFSサーバーを構築・運用する負荷を肩代わりしてくれる、という位置づけです。
EFSの基本的な仕組み
EFSはVPC内に「マウントターゲット」を作成し、そこを経由してEC2インスタンスからアクセスします。データは(既定のRegional構成の場合)複数のアベイラビリティーゾーン(AZ)に冗長化して保存され、設計上の耐久性は99.999999999%(イレブンナイン)に達します。アクセス制御はネットワークレベルのセキュリティグループに加え、IAMやEFSアクセスポイントを使って細かく設定できます。保存データと転送データの双方を暗号化でき、暗号鍵はAWS KMSで管理します。
EFSとS3・EBSの違い
AWSの主要ストレージは、データの持ち方とアクセス方法で性格が分かれます。EFSは「ファイルストレージ」、S3は「オブジェクトストレージ」、EBSは「ブロックストレージ」です。それぞれの違いを整理すると次のとおりです。
| 項目 | Amazon EFS | Amazon S3 | Amazon EBS |
|---|---|---|---|
| ストレージ種別 | ファイル | オブジェクト | ブロック |
| アクセス方式 | NFSでマウント | HTTP/S API | EC2にアタッチ |
| 同時共有 | 複数EC2から同時 | 多数から同時 | 原則1インスタンス |
| 容量 | 自動で伸縮 | 実質無制限 | 事前指定・拡張可 |
| 代表用途 | 共有ファイル・コンテナ | バックアップ・静的配信 | OSやDBのディスク |
| 可用性 | 複数AZ | 複数AZ | 単一AZ |
ファイル・オブジェクト・ブロックの使い分け
ファイルストレージ(EFS)は、PCの共有フォルダのように階層構造でファイルを扱い、ドライブとしてマウントしてそのまま読み書きできます。複数サーバー間の共有に向きます。オブジェクトストレージ(S3)はファイルを「オブジェクト」として保管し、API経由で出し入れする方式で、バックアップやログ、静的Webコンテンツ、データレイクに向きます。ブロックストレージ(EBS)はEC2に直結する仮想ディスクで、OS本体やデータベースのように低レイテンシで占有利用したい場面に向きます。共有ファイルシステムが必要ならEFS、単一サーバーの高速ディスクならEBS、大量データの保管・配信ならS3、と覚えると選びやすくなります。S3側の操作性はStorage Browser for Amazon S3の概要と基本機能の解説もあわせて参考にしてください。
ストレージクラスとライフサイクル管理
EFSはアクセス頻度に応じて Standard・IA・Archive の3つのストレージクラスを持ち、ライフサイクル管理によってクラス間を自動で移動させられます。これがコスト最適化の中心的な仕組みです。なお、これらストレージクラスとは別軸で、データを複数AZに置くか単一AZに置くかという「ファイルシステムの種別(Regional/One Zone)」の選択があります(後述)。
| クラス | 想定アクセス頻度 | 特徴 |
|---|---|---|
| EFS Standard | 頻繁 | SSDで低レイテンシ |
| EFS IA | 四半期に数回 | 低コスト・取り出し課金あり |
| EFS Archive | 年に数回以下 | 最安・IA比 最大50%安 |
標準のEFS Standardは高頻度アクセス向けで、サブミリ秒級の低レイテンシを提供します。アクセスが減ったデータは、低頻度向けのIA、さらに長期保管向けのArchiveへ移すほどストレージ単価が下がります。AWS公式によると、IAはStandard比で最大約95%、ArchiveはIA比で最大50%低いストレージ価格とされています。ただしIAとArchiveは読み書き時にデータアクセス料金が発生し、ファイル単位の最小課金(128KiB)もあるため、頻繁にアクセスするデータを安易に低頻度クラスへ置くと割高になる場合があります。さらにEFS Archiveには最低90日間の保管期間があり、保管から間もないうちにデータを削除・変更しても残り期間分が課金されます。年に数回以下しかアクセスしない、本当に長期保管向けのデータに絞って使うのが基本です。
ファイルシステムの種別には、複数AZにまたがる「Regional(推奨)」と、単一AZに保存して約47%安くなる「One Zone」があります。ライフサイクル管理のIntelligent-Tiering(インテリジェント階層化)を有効にすると、アクセスパターンの変化に応じてクラス間の移動が自動最適化され、運用の手間をかけずにコストを抑えられます。
パフォーマンスとスループットモード
EFSの性能は「パフォーマンスモード」と「スループットモード」の二軸で決まります。陳腐化しやすいポイントなので、現行の推奨を押さえておきましょう。
| スループットモード | 概要 | 向いている用途 |
|---|---|---|
| Elastic(既定) | 自動でスケール・使った分だけ課金 | 変動的で読めない負荷 |
| Bursting | 容量に比例+一時的バースト | 一般的・容量が大きい |
| Provisioned | スループットを固定で指定 | 常時高く一定の要求 |
スループットモードはコンソールの既定が「Elastic」で、多くのユースケースで推奨されています。負荷が読みにくい、あるいはスパイク(瞬間的な急増)があるワークロードに適し、容量設計が不要です。安定して高いスループットが必要だと分かっている場合はProvisioned、容量に応じたバーストで足りる場合はBurstingを選びます。なお、データをEFS Archiveに置く構成はElasticスループットが前提となる点に注意してください。
パフォーマンスモードは「General Purpose」と「Max I/O」の2種類ですが、現在はGeneral Purposeが既定であり、AWSも常にGeneral Purposeの利用を推奨しています。Max I/Oは高度に並列化されたワークロード向けの旧世代モードで、新規のファイルシステムでは基本的に選ぶ必要はありません。One Zoneのファイルシステムは常にGeneral Purposeで動作します。
EFSの料金の考え方
EFSは使った分だけ支払う従量課金(ペイ・アズ・ユー・ゴー)です。コストは主に次の要素で決まります。
- ストレージ料金:保存しているデータ量に対し、ストレージクラスごとの単価で課金。
- データアクセス料金:IA・Archiveのデータを読み書きしたときに発生。
- スループット料金:ElasticやProvisionedで、読み書き量や指定スループットに応じて発生。
コストを抑える基本は、アクセス頻度の低いデータをライフサイクル管理でIA・Archiveへ自動的に移すことです。あわせて、不要になったファイルやファイルシステムを定期的に整理し、必要十分なスループットモードを選ぶことが効きます。具体的な単価はリージョンや時期で変わるため、見積もりの際は必ずAWS公式の料金ページで最新の金額を確認してください。
EFSの基本的な使い方(作成からマウントまで)
EFSは「ファイルシステムを作成し、マウントターゲットを用意して、EC2からマウントする」という流れで使い始めます。以下はAWS CLIを使った基本的な操作例です(環境によりサブネットIDやセキュリティグループIDは読み替えてください)。
1. ファイルシステムを作成する
aws efs create-file-system --creation-token my-efs-demo
作成後に表示されるファイルシステムID(fs-から始まるID)を控えておきます。マネジメントコンソールからウィザード形式で作成することもできます。
2. マウントターゲットを作成する
EC2と同じVPCのサブネットにマウントターゲットを作成します。NFSのポート(TCP 2049)への通信を許可したセキュリティグループを指定する点がポイントです。
aws efs create-mount-target \
--file-system-id fs-xxxxxxxx \
--subnet-id subnet-xxxxxxxx \
--security-groups sg-xxxxxxxx
3. EC2インスタンスにマウントする
EC2側では、AWS推奨のEFSマウントヘルパー(amazon-efs-utils)を使うとTLS暗号化込みで簡単にマウントできます。以下はAmazon Linux 2での例です(Amazon Linux 2023ではyumの代わりにdnfを使用します)。
sudo yum install -y amazon-efs-utils
sudo mkdir /mnt/efs
sudo mount -t efs -o tls fs-xxxxxxxx:/ /mnt/efs
複数のEC2インスタンスで同じ手順を踏めば、同一のファイルシステムを共有して読み書きできます。VPC内のプライベート通信に閉じたい場合のネットワーク設計は、AWS VPCエンドポイントを使い、NATゲートウェイを使用しない理由とは?も参考になります。
EFSの主なユースケース
EFSは「複数の実行環境からファイルを共有したい」場面で広く使われます。代表的な用途は次のとおりです。
- Webコンテンツの共有:複数台のWebサーバーで画像やプラグイン、設定ファイルを共有する。
- コンテナの永続ストレージ:ECSやEKS上のコンテナ間で状態やデータを共有する。コンテナ基盤の自動化はECS Express Modeとは何か – AWS ECSの新機能でコンテナデプロイを自動化して容易化する機能も参照。
- 開発・ビルド環境:チームでソースや中間生成物を共有し、作業を並行して進める。
- データ分析・メディア処理:解析の中間ファイルや映像素材を複数ノードで扱う。分析基盤としてはAmazon Redshiftとは?データウェアハウスとしての概要と基本機能と組み合わせる構成も検討できる。
- バックアップ・移行:オンプレミスのNASやファイルサーバーの移行先として使う。
よくある質問(FAQ)
Q. EFSとS3はどちらを使うべきですか?
OSにマウントしてファイルとして直接読み書きしたい、複数サーバーで共有したいならEFSです。APIで大量データを保管・配信したい、バックアップやデータレイクに使いたいならS3が適します。両者は競合ではなく用途で使い分けます。
Q. EFSの料金は高いと聞きますが、抑える方法は?
ライフサイクル管理でアクセス頻度の低いデータをIA・Archiveへ自動移動させるのが基本です。マルチAZが不要ならOne Zone、スループットが読めないならElasticを選ぶなど、要件に合わせた設定でコストを最適化できます。
Q. WindowsサーバーからEFSは使えますか?
EFSはNFSベースで、主にLinux系での利用を想定しています。Windowsファイルサーバー(SMB)を移行したい場合は、Amazon FSx for Windows File Serverが適した選択肢になります。
Q. 「EFS」で検索するとカメラのレンズが出てきますが?
「EF-S」はキヤノンの一眼レフ用レンズマウント規格で、本記事のAWS EFSとは無関係です。また、Windowsのファイル暗号化機能「EFS(Encrypting File System)」も別物です。AWSのファイルストレージを指す場合は「Amazon EFS」「AWS EFS」と表記すると区別しやすくなります。
Q. パフォーマンスモードはどちらを選べばよいですか?
原則としてGeneral Purposeを選びます。これが既定かつ推奨で、ほとんどのワークロードで最も低いレイテンシを提供します。Max I/Oは旧世代のため、新規構築で積極的に選ぶ理由は通常ありません。