AWS のファイルストレージを使いたいとき、Amazon EFS と Amazon FSx っていう選択肢がよく出てきますよね。どちらもマネージドなファイルストレージですが、対応するプロトコルとか、使いどころが結構違います。
この記事では、EFS と FSx の違いをざっくりまとめてみました。自分のアプリやワークロードに合うほうを選ぶ際の参考になればうれしいです!
Amazon EFS とは?
Amazon EFS (Elastic File System) は、Linux 向け NFS 共有を手軽に使いたいときに便利なマネージドファイルストレージです。
特徴
-
サーバーレス & 自動スケーリング
ストレージ容量が必要に応じて伸び縮みするので、最初にサイズを決めなくても大丈夫。使った分だけ課金されます。 -
NFSv4.x 対応
Linux の EC2 インスタンスやコンテナ (ECS/EKS) など、NFS をサポートする環境なら複数台から同時にマウント可能。 -
料金体系
従量課金(使った分だけ)。Infrequent Access みたいなクラスを使ってコストを下げることもできます。
主なユースケース
- Docker/ECS/EKS など、複数インスタンスやコンテナから共有するストレージ
- 分散処理やビッグデータ系でのデータ共有
- Linux でシンプルにファイルサーバーを実現したいとき
メリット
- 設定がシンプル:サーバーレスなため、インフラ運用の手間が少ない
- 自動スケール:使用量が増えても手動でボリュームを拡張する必要なし
注意点
- Windows 環境には不向き(SMB じゃなくて NFS)
- 性能に限界(バーストクレジットなどを把握しておかないと、思ったほどスループットが出ないことも)
Amazon FSx とは?
Amazon FSx は、Windows や Lustre、NetApp ONTAP など、特定のファイルシステムをマネージドで提供するサービス群の総称です。用途によっていくつか種類があります。
1. FSx for Windows File Server
- Windows の SMB 共有に対応
- Active Directory や NTFS パーミッションなど、Windows ネイティブのファイル共有をクラウドで使える
2. FSx for Lustre
- HPC(ハイパフォーマンスコンピューティング)用の並列ファイルシステム
- 機械学習やビッグデータ解析など、大規模データを超高速で扱うシーンに強い
3. FSx for NetApp ONTAP
- NetApp ONTAP をマネージドで提供
- NFS と SMB の両対応、Snapshot や FlexClone など NetApp 独自機能をそのまま使える
主なポイント
- AWS がバックエンドを管理:ユーザーはファイルシステムの設定や操作に専念
- 選んだファイルシステムによって料金や機能が異なる:用途やワークロードに合わせて選ぶ必要がある
使いどころ
- Windows ファイルサーバーをクラウドに → FSx for Windows
- 超高速 I/O が必要 → FSx for Lustre
- NetApp オンプレ運用を移行 → FSx for NetApp ONTAP
EFS と FSx の違いを比較
項目 | EFS | FSx |
---|---|---|
主な目的 | Linux NFS 共有をサクッと使いたい | Windows や Lustre、NetApp ONTAP など特化型 |
プロトコル | NFS (v4.x) | SMB / NFS / Lustre (種類による) |
スケーラビリティ | サーバーレス&自動スケール | 容量やパフォーマンスを指定して作成する場合も |
ユースケース一例 | コンテナ共有、Linux 間ファイル共有など | Windows ファイル共有、高速並列処理など |
料金体系 | 従量課金(使った分だけ) | 容量や性能の設定で変動(指定リソースに応じて) |
メリット | シンプルな運用、NFS 共有が簡単 | Windows / HPC / NetApp など特化機能が使える |
デメリット (注意点) | Windows 環境に不向き、高性能はやや弱い | サービスによっては設定が複雑になりがち |
結局どっちを使えばいいの?
-
Linux + NFS で共有ファイルを使いたい → EFS
- サーバーレスで自動スケールしてくれるのがラク。Docker/ECS/EKS のコンテナからも使いやすい。
-
Windows のファイルサーバーが欲しい → FSx for Windows
- Active Directory とか NTFS パーミッションとか、Windows ネイティブ機能が必要ならコレ。
-
機械学習やビッグデータ解析で超高速 I/O が必要 → FSx for Lustre
- HPC 向けに設計されてるから、大規模データ処理でスループットがかなり出せる。
-
NetApp ユーザー → FSx for NetApp ONTAP
- オンプレで NetApp を使ってるなら、そのままクラウドに持ってきやすい。
まとめ
- EFS は “NFS 共有をサーバーレスで使える” シンプルなファイルシステム。Linux 環境ならまずはコレ。
- FSx は “Windows / HPC / NetApp” など、特定のユースケース向けに最適化されたファイルシステムをマネージドで提供するファミリー。
要件に合わせてどっちを選ぶか決めましょう。
EFS で十分なケースも多いですが、Windows や高速処理など特化ニーズがあるなら FSx がベターです。
何か質問や補足があればコメントで教えてください! ではまた!