[アップデート] Amazon FSx for OpenZFS がリリースされました #reinvent

2021.12.01

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

しばたです。

本日Amazon FSxシリーズに新たにAmazon FSx for OpenZFS(以後FSx for OpenZFS)が追加されました。
ファイルシステムにOpenZFSを使ったマネージドなファイルサーバーとなります。

AWSからのアナウンスは以下。

Amazon FSx for OpenZFS 概要

FSx for OpenZFSの特徴としては名前の通りファイルシステムにOpenZFSを採用してることに加え、基盤となるホストでGravitonプロセッサーとAWS SRD(Scalable Reliable Datagram)ネットワークを採用することで高性能でありながらコストを抑えることができるとされています。

前掲のアナウンスによれば、100-200ミリ秒のレイテンシーで100万IOPS、非圧縮データで4GB/sec、圧縮データで12GB/sec、圧縮+キャッシュ利用で12.5GB/secのスループットを発揮できると謡われています。
(なお、ユーザーガイドの記述だと「インメモリキャッシュありで100万IOPS、12.5GB/secのスループット」「ディスク直接アクセスで16万IOPS、非圧縮データで4GB/sec、圧縮データで8-12GB/secのスループット」とされています。微妙に表現が異なりますが大まかな性能は把握していただけるかと...)

ファイルアクセスはNFS(v3、v4、v4.1、v4.2)で行います。

サーバーの構成としては暗号化必須、現状Single AZ構成のみサポートされています。
Single AZ構成ですが同一AZ内で自動的にデータのレプリケーションによるデータ保護を行い、ハードウェア故障を検知した場合は自動的にインフラのリプレースを行うとされています。
(無停止ではなくダウンタイムの発生する自動復旧と思われます)

また、バックアップに関してはその他FSxシリーズと同様にクラッシュ整合性を持つネイティブバックアップ *1が可能です。

ユースケース

FSx for OpenZFSの想定されるユースケースとしては「シンプルに高速なファイルサーバーを必要とする場合」となる様です。
純粋にユーザーが利用するファイルサーバーの他にEC2やコンテナ環境からのからのアクセスも利用範囲として挙げられています。

改めてFSxシリーズを比較すると以下の様な感じになると思います。
利用用途やファイルシステムへのアクセス方法などを比較し使い分けると良いでしょう。

サービス 主な用途、ユースケース ファイルシステム プロトコル
Amazon FSx for Windows File Server Windows Serverの移行、エンタープライズ NTFS SMB (v2 - v3.1.1)
Amazon FSx for Lustre 分散ファイルシステム、機械学習、HPC、動画処理など Lustre - (POSIX準拠I/F)
Amazon FSx for NetApp ONTAP NetAppストレージの移行、高性能、エンタープライズ WAFL iSCSI
CIFS
SMB (v2 - v3.1.1)
NFS (v3、v4、v4.1)
Amazon FSx for OpenZFS シンプルで高速、EC2、コンテナからの利用 OpenZFS NFS (v3、v4、v4.1、v4.2)

利用可能リージョン

本日時点で以下のリージョンで利用可能です。

  • US East (N. Virginia)
  • US East (Ohio)
  • US West (Oregon)
  • Europe (Ireland)
  • Europe (Frankfurt)
  • Canada (Central)
  • Asia Pacific (Tokyo)

大阪はまだですが東京ならすぐに使えます。

料金

利用料金の詳細は料金ページをご覧ください。

本日(2021年12月1日)時点の東京リージョンだと以下の様になります。

費目 単価 備考
SSDストレージ 0.108 USD/GB-month Zstandardによるデータ圧縮可
バックアップストレージ 0.050 USD/GB-month Zstandardによるデータ圧縮可
スループットキャパシティ 0.350 USD/MBps-month
SSD IOPS単価 0.0068 USD/IOPS-month デフォルト付与(1GiB辺り3IOPS)を超える分の課金

また、他のサービスとストレージ単価・スループット単価を 極めて雑に 比較するとこんな感じになります。

サービス SSD単価 スループット単価
FSx for OpenZFS 0.108 USD/GB (Single-AZ only) 0.350 USD/MBps
FSx for Windows 0.156 USD/GB (Single-AZ) 2.530 USD/MBps
FSx for ONTAP 0.300 USD/GB (Multi-AZ only) 1.511 USD/MBps
EFS 0.192USD (1-Zone) - (Burst mode)
7.20 USD/Mbps (Provisionig mode)

各サービスの利用料金はこれら以外の要素もあり、実際のサービス選定においては料金以外の特性の方が重要です。
こちらはあくまでもFSx for OpenZFSのざっくりとした価格感を把握するためのものにすぎないことをご承知おきください。

試してみた

それでは実際に試してみます。

今回は私の検証アカウントの東京リージョンで新規にFSx for OpenZFS環境を作ってみます。
作成にあたり事前にVPC環境は準備済みです。

マネジメントコンソールからAmazon FSxにアクセスし「ファイルシステムを作成」します。

ファイルシステムに新たに「Amazon FSx for OpenZFS」が増えていますので選択して「次へ」

「クイック作成」と「スタンダード」作成を選べますが、今回はいろいろパラメーターを見てみたいので「スタンダード作成」を選んでみます。

ファイルシステム名やストレージ容量などの基本情報を入力します。
今回は最低容量の64GiBでスループットも推奨値にお任せしておきます。

(なお最大IOPSは160000、最大スループットは4096MBpsとなっていました)

リソースを配備するサブネットや暗号化キーは環境に合わせてよしなに設定してください。

ちなみに東京リージョンだと残念ながらapne1-az4アベイラビリティゾーンでは作成できない模様です。
(私のアカウントだと ap-northeast-1a = apne1-az4)

Amazon FSx does not currently support OpenFs file system creation in the following Availability Zones: ap-northeast-1a

apne1-az1apne1-az2では作成できました。

ルートボリューム設定はこんな感じです。
今回はテストですので「クオータ設定無し」「その他はデフォルトのまま」としておきました。

バックアップやメンテナンス設定は他のFSxシリーズと同じ感じですね。
今回はデフォルトのままとしています。

確認画面を経て「ファイルシステムを作成」します。

作成が完了するまでしばらく待ちます。

出来上がりはこんな感じです。

だいたいの項目は他のFSxシリーズと似た様な感じですが「ボリューム」タブは独自感があります。
今回は試しませんが、追加ボリュームの作成画面はこんな感じです。

「アタッチ」ボタンをクリックするとLinuxおよびWindowsクライアントからのアクセス方法を例示してくれます。

接続確認

別途用意したAmazon Linux 2 EC2から接続確認をしていきます。

「アタッチ」ボタンをクリックして例示された手順の通りmountコマンドでマウントするだけです。
(nfs-utilsがインストールされていない環境では事前にインストールしておく必要があります)

# FSx for OpenZFSをマウントする例
mount -t nfs -o nfsvers=4.1 <your file system id>.fsx.ap-northeast-1.amazonaws.com:/fsx/ <local mount path>

とりあえず今回は/data/を作成しマウントすることにします。

# 今回は /data/ にマウント
sudo mkdir /data/
sudo mount -t nfs -o nfsvers=4.1 fs-xxxxxxxxxx.fsx.ap-northeast-1.amazonaws.com:/fsx/ /data/

# dd で適当に書き込み (参考 : https://dev.classmethod.jp/articles/amazon-fsx-for-netapp-ontap/ )
sudo dd if=/dev/zero of=/data/test.tmp ibs=1M obs=1M count=10000

ddコマンドで書き込んだ結果はこんな感じです。

# Zstandardによる圧縮ありの場合
$ sudo dd if=/dev/zero of=/data/test.tmp ibs=1M obs=1M count=10000
10000+0 records in
10000+0 records out
10485760000 bytes (10 GB) copied, 36.005 s, 291 MB/s

指定スループットは64MBpsですが4倍くらいの値が出ていますね。Zstandardによる圧縮が利いている様です。
ちなみに圧縮無しの場合はこんな感じでした。

# Zstandardによる圧縮無しの場合
$ sudo dd if=/dev/zero of=/data/test2.tmp ibs=1M obs=1M count=10000
10000+0 records in
10000+0 records out
10485760000 bytes (10 GB) copied, 90.9855 s, 115 MB/s

これでも64MBpsを超えてますが、まあ、ddで雑に試してますのでキャッシュが利いていたりするんだと思います。
実際の業務ではより厳密な形で性能評価をすると良いでしょう。

最後に

以上となります。

Single-AZ構成のみとなりますが確かに安くシンプルに高いパフォーマンスを得ることができそうだと感じました。
FSxシリーズはその特性上どうしても高単価になりがちですのでこの様なコストメリットのあるサービスが増えるのはありがたいですね。

脚注

  1. 詳細は非公開だがおそらくEBSスナップショットベースのもの