EFS・FSx
Amazon EFS と Amazon FSx は、複数のサーバーから同時に使えるファイルストレージのマネージドサービスです。SAA では「OS・プロトコル・用途から、EFS と 4 種類の FSx のどれを選ぶか」がよく問われます。
ひとことで言うと: EFS は Linux 向けの共有フォルダ、FSx は「Windows のファイルサーバー」「HPC 用の超高速ファイルシステム」などの定番製品を AWS が丸ごと運用してくれるサービスです。
たとえるなら、社内の共有フォルダを自前のサーバーで運用する代わりに、容量の追加も故障対応も管理会社に任せるイメージです。どの会社(製品)に任せるかは、使っている OS や接続方式で決まります。
このページで押さえる論点
ファイルストレージとは
ファイルストレージは、フォルダとファイルの階層で整理したデータを、ネットワーク越しに複数のサーバーから同時に読み書きできるストレージです。パソコンの「共有フォルダ」と同じ感覚で使えます。接続には次のようなプロトコル(通信の決まりごと)を使います。
- NFS: 主に Linux / UNIX で使うファイル共有のプロトコル
- SMB: 主に Windows で使うファイル共有のプロトコル
EBS は原則 1 台のインスタンスにつなぐディスク、S3 は API でオブジェクトを読み書きするストレージです。「複数の EC2 から同じファイルを同時に読み書きしたい」「既存のアプリがファイルパスでデータを扱う」なら、ファイルストレージを選びます。
Amazon EFS の基本
Amazon EFS(Elastic File System)は、NFS(NFSv4.0 / v4.1)でマウントする、サーバーレスのファイルシステムです。容量を事前に決める必要がなく、ファイルを置いた分だけ自動で増え、消した分だけ減ります。料金も使った容量に応じてかかります。
- Linux 向けです。Windows の EC2 からの利用はサポートされていません(Windows なら FSx for Windows File Server)
- 多数の EC2 インスタンスや、コンテナ(ECS / EKS)、Lambda 関数から同時にマウントして共有できます
- VPC 内の各 AZ にマウントターゲット(EFS への接続口となる IP アドレス)を作り、インスタンスはそこ経由で接続します。アクセスはセキュリティグループで制御します
- オンプレミスのサーバーからも、Direct Connect や VPN 経由でマウントできます
- 保存時の暗号化(KMS)と転送中の暗号化(TLS)に対応しています
| ファイルシステムのタイプ | データの保存先 | 向いている場面 |
|---|---|---|
| リージョン(推奨) | リージョン内の複数の AZ に冗長化して保存。AZ の障害時も使い続けられる | 本番環境、可用性・耐久性が必要なデータ |
| 1 ゾーン | 1 つの AZ だけに保存。AZ 全体の障害でデータを失うおそれがある | 開発環境、再作成できるデータでコストを下げたい |
EFS のストレージクラスとライフサイクル管理
EFS には、アクセス頻度に応じた 3 つのストレージクラスがあります。S3 と同じく、保存料金が安いクラスほど、アクセスしたときの料金がかかります。
| ストレージクラス | 想定するアクセス |
|---|---|
| EFS 標準(Standard) | 頻繁にアクセスするファイル |
| EFS 低頻度アクセス(IA) | 四半期に数回程度 |
| EFS アーカイブ(Archive) | 年に数回程度 |
ライフサイクル管理は、一定期間アクセスがないファイルを自動で安いクラスへ移す機能です。S3 のライフサイクルルールが「作成からの日数」で動くのに対し、EFS は最後にアクセスされてからの日数で判断します。コンソールで作成したときの既定値は次のとおりです。
- IA への移行: 標準ストレージで 30 日間アクセスがないファイルを IA へ
- アーカイブへの移行: 標準ストレージで 90 日間アクセスがないファイルをアーカイブへ
- 標準への移行: 既定では、IA / アーカイブのファイルにアクセスしても標準に戻しません。性能を重視するなら「初回アクセス時」に戻す設定にします
ディレクトリやファイル名などのメタデータは、常に標準ストレージに置かれます。
EFS のスループットモードとパフォーマンスモード
EFS の性能は、スループットモード(どれだけのデータ量を運べるか)とパフォーマンスモード(レイテンシーと同時処理のバランス)の 2 つの設定で決まります。
| スループットモード | 仕組み | 向いている場面 |
|---|---|---|
| エラスティック(推奨) | 読み書きの量に合わせて自動でスケールし、読み書きしたデータ量に応じて課金 | 負荷が予測できない、急に跳ね上がる |
| プロビジョンド | 必要なスループットを指定し、その量に応じて課金。保存容量と関係なく高いスループットを出せる | 必要な性能が分かっていて、保存容量は小さい |
| バースト | 保存容量に比例したベースライン(1 GiB あたり 50 KiB/秒)で動き、クレジットがある間は一時的に上げられる | 保存容量に見合ったスループットで足りる |
パフォーマンスモードには汎用(既定・レイテンシーが最も低い)と最大 I/O(高度に並列化された処理向け、ただし 1 回ごとのレイテンシーが高い)があります。AWS はすべてのファイルシステムで汎用モードを使うことを強く推奨しています。最大 I/O は 1 ゾーンのファイルシステムやエラスティックスループットでは使えません。
「保存しているデータは少ないのに高いスループットが必要で、バーストモードではクレジットが足りない」という問題なら、エラスティックかプロビジョンドに切り替えます。
Amazon FSx の 4 種類
Amazon FSx は、実績のある商用・オープンソースのファイルシステムを、AWS がフルマネージドで提供するサービスです。次の 4 種類があり、既存の環境や必要なプロトコルで選びます。
| 種類 | プロトコル | クライアント OS | 使いどころ |
|---|---|---|---|
| FSx for Windows File Server | SMB | Windows・Linux・macOS | Windows のファイルサーバーの移行。Active Directory 連携 |
| FSx for Lustre | Lustre 独自(POSIX 準拠) | Linux のみ | HPC、機械学習、動画処理などの高速な並列処理 |
| FSx for NetApp ONTAP | NFS・SMB・iSCSI | Windows・Linux・macOS | NetApp ONTAP などの NAS からの移行、複数プロトコル |
| FSx for OpenZFS | NFS | Windows・Linux・macOS | ZFS などの Linux ベースのファイルサーバーからの移行 |
FSx for Windows File Server
Windows Server 上に作られた、Windows ネイティブのファイル共有です。SMB でアクセスし、Microsoft Active Directory(AWS Managed Microsoft AD または自社の AD)と連携してユーザー認証とアクセス制御(Windows の ACL)を行います。
- シングル AZ: 1 つの AZ 内で冗長化し、コンポーネントの障害を自動で検出・対処する
- マルチ AZ: 別の AZ にスタンバイのファイルサーバーを置き、AZ の障害時に自動でフェイルオーバーする
- オンプレミスからも Direct Connect や VPN 経由でアクセスできる
FSx for Lustre
HPC(ハイパフォーマンスコンピューティング)や機械学習向けの、高速な並列ファイルシステムです。ミリ秒未満のレイテンシーで、多数のサーバーから同時に大量のデータを読み書きできます。
- S3 バケットとリンクでき、S3 のオブジェクトがファイルとして見えます。処理結果を S3 に書き戻すこともできます。「S3 にあるデータを高速に処理したい」の定番の答えです
- スクラッチ: データを複製しない一時的な処理用。障害時にデータは保持されないが安い
- 永続(Persistent): データを複製し、障害時はファイルサーバーを置き換える。長期の保存や処理向け
FSx for NetApp ONTAP と FSx for OpenZFS
FSx for NetApp ONTAP は、NFS・SMB・iSCSI を 1 つのストレージで扱えるのが特徴です。Linux と Windows の両方から同じデータを使いたい場合や、オンプレミスの NetApp 製品から移行する場合に選びます。FSx for OpenZFS は、ZFS を使った Linux のファイルサーバーを NFS のまま移行する場合に選びます。
どのファイルストレージを選ぶか
問題文の「OS」「プロトコル」「用途」を拾えば、ほぼ答えが決まります。下のフローチャートで試してみましょう。
質問に答えてファイルストレージを選ぶ
要件を思い浮かべて「はい / いいえ」で答えてください。答えた経路が上から順に表示されます。
※簡略化しています: 性能・料金・可用性(シングル AZ / マルチ AZ)の細かい違いは分岐に含めていません。FSx for Windows File Server や NetApp ONTAP、OpenZFS も Linux から使えますが、ここでは典型的な選び方だけを示しています。
問題文のキーワード → 選ぶべき答え
| 問題文によく出る言い回し | 選ぶべき答えと理由 |
|---|---|
| 「複数の Linux EC2 で共有」「NFS」「容量の管理をしたくない」 | Amazon EFS。容量が自動で増減する |
| 「複数の AZ の EC2 から同じファイルにアクセス」「AZ 障害に耐える共有ストレージ」 | Amazon EFS(リージョンタイプ) |
| 「めったに使わないファイルのコストを自動で下げたい」(EFS) | EFS のライフサイクル管理で IA / アーカイブへ |
| 「負荷が予測できない」「スループットが急増する」(EFS) | エラスティックスループット |
| 「Windows のファイル共有」「SMB」「Active Directory」「NTFS の ACL」 | FSx for Windows File Server |
| 「Windows のファイルサーバーで AZ 障害に耐えたい」 | FSx for Windows File Server のマルチ AZ |
| 「HPC」「機械学習」「並列処理」「S3 のデータを高速処理」 | FSx for Lustre(S3 とリンク) |
| 「短期間の処理で、一時的なデータでよい」「最安」(Lustre) | FSx for Lustre のスクラッチ |
| 「NetApp から移行」「NFS・SMB・iSCSI を同時に」「マルチプロトコル」 | FSx for NetApp ONTAP |
| 「ZFS のファイルサーバーから移行」 | FSx for OpenZFS |
引っかけポイント
- 「Windows の EC2 から EFS をマウントして共有する」→ ✕。EFS は Windows からの利用をサポートしない。Windows は FSx for Windows File Server
- 「複数の EC2 でファイルを共有するなら EBS のマルチアタッチ」→ ✕(多くの場合)。io1 / io2・同じ AZ・クラスター対応ファイルシステムが前提。ファイル共有は EFS か FSx
- 「FSx for Lustre は Windows からも使える」→ ✕。Lustre のクライアントは Linux のみ
- 「FSx for Lustre のスクラッチは本番データの長期保存に向く」→ ✕。スクラッチはデータを複製せず、障害時にデータが保持されない。長期は永続タイプ
- 「EFS の 1 ゾーンは AZ 障害に耐える」→ ✕。1 つの AZ にしか保存しないので、AZ 全体の障害でデータを失うおそれがある
- 「EFS は最大 I/O モードにすれば常に速くなる」→ ✕。最大 I/O は 1 回ごとのレイテンシーが高く、AWS は汎用モードを推奨している
- 「EFS は事前に容量を決めて作る」→ ✕。容量はファイルの量に合わせて自動で増減する
まとめ: SAA 試験で押さえるポイント
- 複数の Linux サーバーで共有 → EFS(NFS、容量は自動で増減、リージョンタイプは複数 AZ に保存)
- EFS のコスト削減はライフサイクル管理(既定: 30 日アクセスなしで IA、90 日でアーカイブ)。負荷が読めないならエラスティックスループット
- Windows・SMB・Active Directory → FSx for Windows File Server(AZ 障害対策はマルチ AZ)
- HPC・機械学習・S3 のデータを高速処理 → FSx for Lustre(一時処理はスクラッチ、長期は永続)
- NetApp からの移行・マルチプロトコル → FSx for NetApp ONTAP、ZFS からの移行 → FSx for OpenZFS
- 1 台の EC2 のディスクは EBS、API で読み書きするなら S3
確認問題
参考リンク
AWS 公式ドキュメント(外部サイトが開きます)。