1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon S3 Files vs Amazon EFS vs Amazon FSx for Lustre

1
Posted at

1. はじめに

意気揚々と以下の記事を書いたのですが、今自分の業務で Lustre 使っていたので何も考えずに比較対象として選んでいました。

でも広く利用されているのは Amazon EFS の方ですよね。
ということで比較対象に Amazon EFS を加えて同じベンチマークを実施した結果を共有しておきます。

2. 背景

Amazon S3 Files は Amazon EFS の技術基盤上に構築されたマネージドファイルシステムである。S3 バケットに NFS インターフェースを提供する S3 Files と、汎用 NFS ファイルシステムである EFS は、内部アーキテクチャを共有しながらも異なるユースケースを対象としている。

本資料では、S3 Files と FSx for Lustre の比較検証 (別資料) で使用した環境に EFS を追加し、同一条件で 3 サービスの I/O 性能を比較する。S3 Files と EFS の性能差を通じて、S3 統合レイヤーが性能に与える影響を明らかにする。

3. 概要

3.1 検証の目的

FSx for Lustre、Amazon S3 Files、Amazon EFS の 3 サービスについて、同一の EC2 インスタンス上で基本 I/O 性能を比較する。

3.2 検証の範囲

単一 EC2 インスタンスからの Direct I/O による基本性能比較であり、以下を含む。

  • シーケンシャル / ランダム Read/Write (fio, iodepth=1)
  • 大ファイル転送 (dd 4GiB, Direct I/O)
  • メタデータ操作 (5,000 ファイル create/stat/delete)
  • iodepth スイープ (1 / 16 / 32 / 64)
  • 小ファイル閾値テスト (4KB - 1MB)

3.3 結論の要約

EFS と S3 Files は基本テストの大半で極めて近い性能を示した (差は 10-20% 以内)。これは両サービスが同じ EFS 基盤を共有していることと整合する。一方、小ファイル Read では EFS が S3 Files を 1.5 倍上回り、S3 統合レイヤーのオーバーヘッドが示唆された。高 iodepth (>=32) の Seq Read では EFS と S3 Files がともに Lustre を上回った。ただし Seq Write では iodepth=16 で Lustre が依然として最速であり、逆転は iodepth=32 以降に限られる。

3.4 テスト結果一覧

基本テスト (iodepth=1, numjobs=4, Direct I/O)

カテゴリ テスト FSx for Lustre S3 Files EFS 最速
Seq スループット Write (MiB/s) 576.5 127.3 116.6 Lustre 4.5x/4.9x
Read (MiB/s) 590.7 282.7 292.3 Lustre 2.1x/2.0x
Seq レイテンシ Write (ms) 6.9 31.4 34.3 Lustre 4.6x/5.0x
Read (ms) 6.8 14.1 13.6 Lustre 2.1x/2.0x
Rand 4K Write (IOPS) 1,358 404 416 Lustre 3.4x/3.3x
Read (IOPS) 3,025 1,109 1,500 Lustre 2.7x/2.0x
Rand 4K レイテンシ Write (ms) 2.9 9.9 9.6 Lustre 3.4x/3.3x
Read (ms) 1.3 3.6 2.7 Lustre 2.8x/2.1x
Mixed 256K 70:30 Read (MiB/s) 278.8 79.3 92.1 Lustre 3.5x/3.0x
Write (MiB/s) 122.2 35.5 41.2 Lustre 3.4x/3.0x
dd 4GiB 単一ストリーム Write (MiB/s) 427.5 38.5 33.4 Lustre 11.1x/12.8x
Read (MiB/s) 293.3 74.8 76.6 Lustre 3.9x/3.8x
メタデータ 5000 files Create (ops/s) 939 108 121 Lustre 8.7x/7.8x
Stat (ops/s) 505 335 366 Lustre 1.5x/1.4x
Delete (ops/s) 972 216 245 Lustre 4.5x/4.0x

※ 比率は Lustre/S3 Files、Lustre/EFS の順。

iodepth スイープ (numjobs=1, Direct I/O)

テスト iodepth FSx for Lustre S3 Files EFS 最速
Seq Read (MiB/s) 1 299 71 77 Lustre 4.2x
16 478 786 868 EFS
32 478 1,019 1,127 EFS
64 482 1,049 1,164 EFS
Seq Write (MiB/s) 1 426 41 36 Lustre 10.4x
16 449 369 321 Lustre
32 462 656 596 S3 Files
64 461 1,067 1,067 S3 Files ≒ EFS
Rand 4K Read (IOPS) 1 732 270 327 Lustre 2.7x
16 2,182 4,585 5,387 EFS
32 2,162 13,355 11,256 S3 Files
64 2,149 27,158 22,333 S3 Files

小ファイル閾値テスト (numjobs=4, Direct I/O)

ファイルサイズ Lustre Read S3 Files Read EFS Read Lustre Write S3 Files Write EFS Write
4 KB (IOPS) 3,509 1,101 1,665 1,031 523 681
64 KB (IOPS) 2,320 855 1,265 723 467 506
128 KB (IOPS) 2,235 649 813 829 255 250
256 KB (IOPS) 1,360 593 643 412 216 206
1 MB (IOPS) 579 38 337 370 145 125

4. 内容

4.1 検証環境

EC2 インスタンス

項目
インスタンスタイプ m5.xlarge
vCPU 4
メモリ 16 GB
ネットワーク帯域 最大 10 Gbps
リージョン us-east-1
OS Ubuntu 22.04 LTS (kernel 6.8.0-1050-aws)

FSx for Lustre

項目
デプロイタイプ PERSISTENT_2
ストレージ容量 1.2 TiB
プロビジョニングスループット 125 MiB/s/TiB (公称値)
プロトコル Lustre (LNET over TCP)
マウントオプション rw, noatime, checksum, flock, lazystatfs

Amazon S3 Files

項目
マウントヘルパー amazon-efs-utils v3.0.0
プロトコル NFS v4.2 (TLS + IAM, efs-proxy 経由)
マウントオプション rw, relatime, vers=4.2, rsize=1048576, wsize=1048576, hard
バックエンド S3 専用バケット (Lustre と分離)

Amazon EFS

項目
パフォーマンスモード General Purpose
スループットモード Elastic
マウントヘルパー amazon-efs-utils v3.0.0
プロトコル NFS v4.1 (TLS + IAM, efs-proxy 経由)
マウントオプション rw, relatime, vers=4.1, rsize=1048576, wsize=1048576, hard
暗号化 有効 (KMS)

測定方法

FSx for Lustre / S3 Files の測定方法と同一。詳細は別資料「S3 Files vs FSx for Lustre 基本性能比較」を参照。

  • データ I/O: Direct I/O (O_DIRECT) + end_fsync=1 (Write)
  • dd: oflag=direct / iflag=direct, 3 回平均
  • メタデータ: バッファード I/O (シェルスクリプト), 5,000 ファイル, 3 回平均
  • iodepth スイープ: libaio, numjobs=1, iodepth 1/16/32/64

4.2 EFS と S3 Files の比較

EFS と S3 Files は同じ EFS 基盤を共有しているため、性能特性の類似度が注目される。

基本テスト

基本テスト (iodepth=1) において、EFS と S3 Files は大半の項目で 10-20% 以内の差に収まった。

テスト S3 Files EFS 差分
Seq Write (MiB/s) 127.3 116.6 S3 Files +9%
Seq Read (MiB/s) 282.7 292.3 EFS +3%
Rand 4K Write (IOPS) 404 416 EFS +3%
Rand 4K Read (IOPS) 1,109 1,500 EFS +35%
dd Write (MiB/s) 38.5 33.4 S3 Files +15%
dd Read (MiB/s) 74.8 76.6 EFS +2%
Meta Create (ops/s) 108 121 EFS +12%

Rand 4K Read で EFS が 35% 上回ったことが最大の差異。差異の原因は本検証のデータからは特定できないが、S3 Files 固有の内部処理 (S3 との同期管理等) が僅かなオーバーヘッドとなっている可能性がある。

iodepth スイープ

高 iodepth では EFS と S3 Files はともに Lustre を逆転し、類似のスケーリング曲線を描いた。

iodepth S3 Files Read (MiB/s) EFS Read (MiB/s) 差分
1 71 77 EFS +8%
16 786 868 EFS +10%
32 1,019 1,127 EFS +11%
64 1,049 1,164 EFS +11%

EFS が一貫して S3 Files を約 10% 上回る。この差の原因は本検証からは断定できないが、S3 Files 固有の処理が影響している可能性がある。

小ファイル Read

ファイルサイズ S3 Files (IOPS) EFS (IOPS) 差分
4 KB 1,101 1,665 EFS +51%
64 KB 855 1,265 EFS +48%
128 KB 649 813 EFS +25%
256 KB 593 643 EFS +8%
1 MB 38 337 EFS +787%

小ファイルで EFS と S3 Files の差が拡大した。特に 1MB Read では EFS が S3 Files の約 9 倍の IOPS を記録した。S3 Files の 1MB Read (52.9 ms) は S3 直接読み取りパスの影響を受けている可能性が高い一方、EFS はそのようなパス切り替えがなく、全サイズで安定した性能を示した。

4.3 3 サービスの位置づけ

観点 FSx for Lustre Amazon EFS Amazon S3 Files
低 iodepth スループット 最速 (2-11x)
高 iodepth Seq Read 上限あり (~480 MiB/s) 最速 (1,164 MiB/s) 準最速 (1,049 MiB/s)
高 iodepth Rand 4K Read 上限あり (~2.1K IOPS) 中 (22K IOPS) 最速 (27K IOPS)
小ファイル IOPS 最速
メタデータ操作 最速 (8.7x)
S3 データ直接アクセス DRA 経由 不可 ネイティブ
プロビジョニング 必要 不要 (Elastic) 不要
最小コスト ~$174/月 従量 従量
POSIX 準拠 完全 完全 close-to-open

5. おわりに

5.1 主要な所見

  1. EFS と S3 Files の共通基盤: 基本テストの大半で両サービスは 10-20% 以内の差に収まり、AWS が公表する共通の EFS 基盤と整合する結果であった。

  2. S3 統合のオーバーヘッド: 小ファイル Read (4KB) で EFS が S3 Files を 51% 上回り、1MB Read では約 9 倍の差が生じた。S3 Files の内部キャッシュ閾値 (128KB) を超えるファイルサイズで S3 直接読み取りパスに切り替わる動作が、EFS との差を拡大させている。

  3. 高 iodepth での 3 サービスの順位: Seq Read (depth=64) では EFS (1,164) > S3 Files (1,049) > Lustre (482)。Rand 4K Read (depth=64) では S3 Files (27,158) > EFS (22,333) > Lustre (2,149)。テストパターンにより EFS と S3 Files の優劣が入れ替わる。

  4. Lustre の位置づけは変わらず: EFS を加えても、低 iodepth・メタデータ・小ファイルでの Lustre の優位は変わらない。

5.2 用途別の推奨

ワークロード特性 推奨 根拠
低レイテンシ・HPC FSx for Lustre 低 iodepth で 2-11x 優位
S3 データへのファイルアクセス S3 Files S3 ネイティブ統合
汎用 NFS 共有ストレージ EFS S3 Files と同等以上の性能 + 完全 POSIX
高並列 Read (AI データローディング) EFS or S3 Files iodepth=64 で 1 GiB/s 超
コスト重視・小規模 EFS or S3 Files プロビジョニング不要

5.3 制約

  • 単一 EC2 インスタンス (m5.xlarge) での測定
  • Lustre は最小スループット構成 (125 MiB/s/TiB)
  • EFS は Elastic Throughput (General Purpose) のみ
  • マルチノード・アプリケーション実測は範囲外

一言

こんな記事でも宜しければフォローしてみてください。良いことがあるかも。
@___nix___

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?