Amazon FSx for Lustre から Amazon S3 への自動インポート・エクスポート機能は多くのユーザーがご利用されているかと思います。
FSx for Lustre を経由して S3 へ透過的にアクセスできるこの機能はユーザーが S3 へのリクエストを意識することが少ないです。 しかし、意図せず S3 のリクエスト課金が高額になることがあります。 本記事ではこの機能を利用する際に関連する S3 のリクエスト課金についていくつかのポイントを備忘録として共有します。
自動インポート・エクスポート機能とは
FSx for Lustre は S3 バケットと連携でき、FSx for Lustre を介して S3 上のオブジェクト(ファイル)へアクセスできます。S3 を大容量で低コストなバックエンドストレージとして、FSx for Lustre が高速なアクセスを提供することで異なるストレージ特性を持つ階層型のファイルシステムを実現しています。
[アップデート]Amazon FSx for Lustreで複数のS3バケットをリンクできるようになりました #reinvent | DevelopersIO
S3 リクエスト課金は別途発生する
自動インポート・エクスポート機能を有効になっていると、FSx for Lustre と S3 の間のデータのやり取りはユーザーからみてシームレスです。
FSx for Lustre から S3 へのアクセス時に発生する Put, Get, ListObject のリクエストは言うまでもなく、FSx for Lustre の利用料には含まれておらず、別途 S3 の利用料として発生します。
S3 のリクエスト課金の詳細については以下のドキュメントをご参照ください。
region-Requests-Tier1 STANDARD、RRS およびタグに対する PUT、COPY、または POST リクエストに加え、すべてのバケットとオブジェクトに対する LIST リクエストの数 Amazon S3 の AWS 請求および使用状況レポートを理解する - Amazon Simple Storage Service
意図せず S3 の利用費が高額になるケース
私は最近、以下のブログを参考に Alphafold2 の実行環境を構築していました。
大規模なタンパク質構造予測を行うための研究者向けウェブアプリを構築するには | Amazon Web Services ブログ
私が最初に行ったステップは、Alphafold2 のデータベースのダウンロードでした。データベースのサイズは約 3.2TB と非常に大きく、単一のバイナリファイルや tar にまとめられた形式ではなく、多数の細かなファイルに分けられていました。この段階ではディスク性能は必要とされていないにもかかわらず、大容量のストレージとして 3TB を保存カノな FSx for Lustre を EC2 にマウントし、そこへ保存しました。
ダウンロードするファイル数が多くなると、それらを自動エクスポート機能で S3 へ保存する回数も増えます。結果として、S3 へのリクエストが頻繁に発生します。実際、約 1,700,000 回ものリクエストが生じ、想定外の S3 の利用コストが発生しました。
S3 リクエスト課金を最適化するには
今回の Alphafold2 のデータベースのように、各ファイルを個別に保存する必要があったため、小さいファイルをそのまま S3 に保存する必要があり、避けることはできませんでした。 一般的には高速なディスクアクセスが必要なときに FSx for Lustre を利用されます。HPC ワークロードが一例です。
中間ファイルの生成
HPC ワークロードでは、計算中に中間ファイルを生成するアプリケーション、ソフトウェアもあります。それら中間ファイルを都度 S3 へファイルを保存する必要はあまりありません。
FSx for Lustre では S3 と連携する際に特定のファイルシステムのパスを指定します。以下のキャプチャを例にすると/mnt/lustre
として FSx for Lustre をマウントすると、/mnt/lustre/s3
のパスが S3 と連携されているディレクトリのパスになります。
そこで中間ファイルを書き出し先のパスを/mnt/lustre
とすることで、Lustre ファイルシステムのみで読み書きできます。計算終了後の成果物は/mnt/lustre/s3
へ保存することで、自動的に S3 へも保存される構成をとれます。
おわりに
FSx for Lustre の自動エクスポート機能は非常に便利な機能である一方で、S3 へのリクエストコストが思わぬ料金になる可能性があります。本記事の情報をもとに適切な設計を検討して頂ければ幸いです。