運び屋 (A carrier(forwarder) changed his career to an engineer)

Network / Storage/ AWS / Cloud Native / Kubernetes / コンテナー / SRE / DevOps

進化を続けるAWSのファイルストレージサービスのTieringをまとめてみた!


本記事はJapan AWS Top Engineers Advent Calendar 2024の25日目のエントリです。

  • この記事を読んで疑問点や不明点があれば、ご指摘頂ければ幸いです。
  • 2024/12/25時点での機能、金額を元にしています。差異があった場合は、記事をご覧になられた時のAWS公式の最新情報をご確認ください。

目次

  • なぜ今、AWSのファイルストレージのTieringをまとめたいのか?
  • AWS上のファイルストレージサービス
  • Tieringとは?
  • AWSのファイルストレージサービスのTiering一覧
  • まとめ

なぜ今、AWSのファイルストレージのTieringをまとめたいのか?

結論からお伝えすると、「AWSのファイルストレージはサービス・機能がとても多様化していて、全体として理解するのが難しくなっている。そんな中で、Tieringはファイルストレージの環境最適化の機能として有効だけれども、横断的に理解するための資料が無くわかりづらい。サービスを比較するのではなく、ただ俯瞰的に理解したい。資料が無いなら自分で書いてまとめよう」と考えたからです。
直接のきっかけとなったのは、AWS re:Invent 2024期間中のUpdateで「FSx の新しいストレージクラスである Amazon FSx Intelligent-Tiering の発表」というタイトルのAWSのリリースノート、機能追加が出たことです!!

これはAWS re:Invent 2024期間のストレージの発表のため、JAWS-UGのストレージ専門支部であるStorage-JAWSのAWS re:Invent 2024のre:Cap会であるStorage-JAWS#6でも、取り上げていただいた魅了的なアップデートです。

  • 上記のStorage-JAWSの動画をご覧になられていない方はスピーカーの方々がわかりやすくUpdateをまとめたり、デモを交えて説明されている素晴らしいセッション、LTばかりですので是非、ご覧いただければと思います。視聴後のアンケートも是非よろしくお願いします(Storage-JAWS運営メンバーとしての案内)。

...だがしかし、
上記のリリースノートのタイトル・内容の文面とは裏腹に、実態はAmazon FSx for OpenZFSのみ機能で、FSxシリーズ全体で利用できるものではありません。他に続くサービスもこのブログの執筆時の時点ではありません。
「この表記は紛らわしい」と個人的に感じましたので、せっかくなので「AWS上のファイルTieringとは何か?」を整理しようと考えました。
以下がリリースノートの一部引用です。FSxシリーズの話か、それもとFSx for OpenZFSの話なのか、誤認を生じる表記が所々あると思います。この辺の誤認が発生しないような書き方をこのブログでは心がけていきます。

  • 「本日、AWSは、Amazon FSx 向けの新しいストレージクラスである Amazon FSx Intelligent-Tiering の一般提供を発表しました。このクラスは、FSx SSDストレージクラスよりも最大 85%、オンプレミスの従来の HDD ベースの NAS ストレージよりも最大 20% 低コストで、ネットワークアタッチドストレージ (NAS) で完全な弾力性とインテリジェントな階層化を実現できます。この新しいストレージクラスが、Amazon FSx for OpenZFS で本日からご利用いただけるようになりました。」

  • 「Amazon FSx を使用すると、お客様はポイントインタイムスナップショット、データクローン、ユーザークォータなど、使い慣れた NAS 機能を備えたフルマネージド型クラウドファイルシステムを起動して実行できます。これまで、お客様はミッションクリティカルでパフォーマンス重視のワークロードのNASデータセットを FSx for OpenZFS に移行し、既存の SSD ストレージクラスを使用して予測可能な高パフォーマンスを実現していました。」

では、早速中身に入っていきましょう。

AWS上のファイルストレージサービス

この章の項目

  • AWS上のストレージサービス

  • AWS上のファイルストレージサービス

AWS上のストレージサービス

はじめに、AWS上のストレージサービスを見ていきましょう。 以下のAWS Webpageの「AWS でのクラウドストレージ」を見る限り、「カテゴリ」としては、以下図の11個あり、それぞれそこから更にサービス、機能が分かれています。

AWS でのクラウドストレージ:https://aws.amazon.com/jp/products/storage/


AWS上のファイルストレージサービス

ファイルストレージは上記図の内、Amazon Elastic File System(EFS)、Amazon FSx、Amazon File Cacheの3つですが今回の記事ではTiering機能が無いキャッシュサービスであるAmazon File Cache以外のEFS、FSxシリーズを見ていきます。 ファイルストレージの特徴、選択の仕方についてはAWSブログ「AWS ファイルストレージサービスの選び方」にわかりやすくまとまっています。
例えば、以下の「ストレージの種別」の項目で、「ブロックストレージ」と「オブジェクトストレージ」、そして今回説明する「ファイルストレージ」の3つの種類の理解を確認し、

ストレージの種別
以下の「ファイルストレージのプロトコル」の項目で、NFS(Network File System)、 SMB(Server Message Block)の2つのプロトコルについて、そして「AWS のファイルストレージサービス」の項目で、Amazon FSx for Lustreの独自プロトコルを含めた3つのプロトコルについて、確認しましょう。
ファイルストレージのプロトコル

AWS のファイルストレージサービス

また、「AWS ファイルストレージサービスの比較」の項目では、以下の図で執筆時点のFSx for Lustreを除くサービスの一覧と、選定のポイントが書かれています。「各サービスが対応するプロトコル」では、「FSx for NetApp ONTAP は NFS と SMB の両方のプロトコルに対応しているだけではなく、iSCSI も対応しているマルチプロトコルである点が特徴」としてFSx for ONTAPがユニークな面にも触れています。

AWS ファイルストレージサービスの比較
各サービスが対応するプロトコル

続いて「AWS ファイルストレージサービスの選び方」の項目の「求めている内容から検討する」にこのブログのメインテーマであるTiering、EFSのライフサイクルポリシーに触れられています。このブログでは、AWS re:Invent 2024のUpdateを踏まえて上記の表を最新化/補完する形で書いていこうと思います。

求めている内容から検討する

Tieringとは?

Tieringと聞いて皆さんはどういったものを思い浮かべますでしょうか?
AWSの代表的なストレージであるAmazon S3を見てみましょう。Tieingが名前に含まれている「Amazon S3 Intelligent-Tiering ストレージクラス」の機能説明の部分で、この機能を以下のようにコストの最適化の観点で紹介しています。

  • 「Amazon S3 Intelligent-Tiering ストレージクラスは、アクセスパターンが変化したときに、最もコスト効率の高いアクセス階層に自動的にデータを移動することで、コストを最小限に抑えるように設計されています。」

ただし、現在では徐々に適用範囲やユースケースが広がっているように思います。
例えば、AWSブログの「持続可能な AWS インフラストラクチャの最適化、第二部:ストレージ編」の「データアクセスパターンを分析し、ストレージ階層を利用する」の項目では、
以下2つの説明を添えてS3のライフサイクル管理を自動化されたTieringを利用し、持続可能にすることを提案しています。 * 「データのアクセスパターンを分析した上で適切なストレージ階層を選択することで、クラウド上でより持続可能なストレージソリューションを提供します。」

  • 「アクセスパターンが不明または変化するデータについては、Amazon S3 Intelligent-Tiering を使用して、アクセスパターンを監視し、階層間でオブジェクトを自動的に移動させます。」

図2. Amazon S3 のデータアクセスパターン

このように、コスト最適化だけでなく、Sustainabilityの観点からもストレージのTieringは重要であることがわかります。
私はS3に限らずファイルストレージのサービスであるEFS、FSxシリーズでコストとパフォーマンスの最適化の観点で利用したり、設計の支援をすることが多くなっていますので、ユーザーのニーズにあわせてサービスの種類・機能が豊富になっているファイルストレージに深掘りしていきます。

AWSのファイルストレージサービスのTiering

この章の項目

  • AWSのファイルストレージサービスのTiering一覧

  • 関連情報

AWSのファイルストレージサービスのTiering一覧

サービス EFS FSx for OpenZFS FSx for ONTAP FSx for Lustre FSx for Windows
Tieringの有無 あり あり あり 無し 無し
Tieringの粒度 ファイル
レベル
データブロック
レベル
データブロック
レベル
N/A N/A
Tieringの設定単位 ファイルシステム ファイルシステム ボリューム N/A N/A
Tieringのクラス/プール 1. 標準、
2. 低頻度アクセス(EFS IA)、
3. EFS Archive
1. 高頻度アクセス、
2. 低頻度アクセス、
3. アーカイブ
1. プライマリストレージ(SSD)、
2. 容量プールストレージ(HDD)
N/A N/A

「Tieringの粒度」をあえて記載させていただきました。こちらは、S3やEFSはファイル/オブジェクトレベルのTieringのため、該当のファイル/オブジェクトがReadされると、アクセスされたと判定されてファイルの中身のデータブロックがほとんど読まれていなくてもTieringが実行されません。 一方、FSx for OpenZFS、FSx for ONTAPはデータブロックレベルのTieringのため、Tieringによるコスト/パフォーマンスの最適化がされる可能性のあるデータブロックがより広くなる可能性があります。

  • 例として、このブログを開いてタイトルを見ただけで離脱された場合、EFSã‚„S3はTieringの対象外としますが、FSx for OpenZFS、FSx for ONTAPはタイトル以外の読まれていないデータブロックをTieingします。FSx for ONTAPは4Kの単位でデータブロックで判定して4MでまとめてTieringをしています。FSx for OpenZFSについては、ドキュメントをまだ見つけられていないので、ご存知の方がいらっしゃったら教えていただけると幸いです。

  • FSx for OpenZFSのIntelligent Tieringクラスはファイルシステム単位でマルチAZ構成のみの利用。

    FSx for OpenZFS作成画面

  • FSx for ONTAPのTieringはファイルシステム配下のボリュームの単位でTieringでファイルシステム、ボリューム作成後もTiering Policyの変更・チューニングが可能。シングルAZ、マルチAZどちらの構成も可能。

FSx for ONTAPのファイルシステム作成画面

  • EFSのTieringはファイルシステム作成時に実行する場合は「カスタマイズ」を選択し、「ライフサイクル管理」
    EFSのファイルシステムの作成画面のライフサイクル管理設定部分(カスタマイズ)

関連情報

EFSのTiering関連情報:

  • EFS概要: 「Amazon EFS には 3 つのストレージクラスがあります。1 つは、頻繁に使用されるデータに対してミリ秒未満のレイテンシーパフォーマンスを実現する EFS 標準、四半期に数回しかアクセスされないデータに対してコスト最適化された EFS 低頻度アクセス (EFS IA)、および年に数回以下にアクセスされる長期データに対してコスト最適化された EFS Archive です。 」

  • Amazon EFS 低頻度アクセス:「Amazon EFS は、あなたのファイルが最後にアクセスされた時間に基づいて、より低コストのリージョナル EFS IA ストレージクラスに自動的かつ透過的に移動します。」

  • Amazon EFS Archive:「Amazon EFS will automatically and transparently move your files to the lower cost EFS IA and Archive storage classes based on the last time they were accessed.」

FSx for OpenZFS関連情報:

FSx for ONTAP関連情報:

  • Amazon FSx for NetApp ONTAP の特徴:「伸縮自在なキャパシティープールの階層化
    Amazon FSx for NetApp ONTAP の各ファイルシステムには、プライマリストレージと容量プールストレージの 2 つのストレージ階層があります。プライマリストレージは、データセットのアクティブな部分専用に構築されたプロビジョニングされたスケーラブルな高性能 SSD ストレージです。容量プールストレージは、ペタバイトサイズにスケールできる完全に伸縮自在なストレージ階層であり、アクセス頻度の低いデータ向けにコストが最適化されています。Amazon FSx for NetApp ONTAP は、アクセスパターンに基づいて SSD ストレージから容量プールストレージにデータを自動的に階層化します。これにより、わずかな量のデータについて SSD ストレージの料金を支払うだけで、ワークロードで SSD レベルのパフォーマンスを実現できます。容量プールストレージは、データを階層化すると自動的に拡大および縮小し、時間の経過とともに拡大するデータセットの部分に伸縮自在なストレージを提供します。このデータの容量を計画またはプロビジョニングする必要はありません。」

まとめ

AWSのファイルストレージのTieringについてまとめてみましたが、いかがでしょうか?
ファイルシステムの選択はこれまで使い慣れたものを選択されることが多いと思います。ただ、コスト/パフォーマンス最適化、データ連携、アプリケーション構成、セキュリティー、などの観点から見ると他のサービスの特徴、機能面からフラットに検討してみてはいかがでしょうか?

今回取り上げた中でもEFS、FSx for OpenZFS、FSx for ONTAPそれぞれTiering方法に違いがあり、利用方法・ユーザー体験を考慮した上での選択が必要になるかと思います。料金については、利用方法や目的によって実際の金額や妥当性が大きく異なり、機能追加により変わることが多い部分なので、今回はあえて比較が一人歩きしないように一覧に含んでいません。
それぞれのサービスの活きる場所が明確化して、ユーザー事例も増えてきたら、再度整理していきたいと考えています。

きっと、 Amazon FSx Intelligent-Tiering が今後更なるパワーアップをしていくのだと期待しています。今後も進化を続けるAWSのファイルストレージ、そしてTieringに注目していきましょう!!
このブログが、どなたかの参考になれば幸いです。

では、また。

Bye now!!

Yoshiki Fujiwara