Amazon Aurora Limitless Databaseの利用費を試算してみる
Amazon Aurora Limitless DatabaseはAWSが提供する、シャーディングによる水平スケールで書き込み性能やペタバイトクラスのデータに対応したデータベースです。
このモンスター級データベースを動作検証する際に、多くの人が気になるであろう、利用費について解説します。
Amazon Aurora Limitless Databaseで発生するコスト
Limitless Databaseは主に以下の3点の利用費が発生します
- コンピューティングリソース(IO-OptimizedLimitlessACUUsage-Limitless)
- ストレージ(IO-OptimizedStorageUsage)
- バックアップ(BackupUsage)
※ 引用元
ストレージとバックアップは従来のAuroraと同じ考えを適用でき、コンピューティングリソースについては、注意が必要です。
Limitless DatabaseのコンピューティングはServerless v2で動作し、その性能は Aurora Capacity Unit(ACU)という単位で管理されます。
このコンピューティングリソースの大事なポイントは以下の3点です
- Serverless v2はStandardではなくI/O Optimizedであること
- クラスターに設定した最小ACUによりノード数やシャーディング数が決定されるが、利用費の観点ではクラスターが利用するACUで決定されること
- 可用性のための冗長構成(スタンバイ数)によりコンピューティングの費用が1~3倍になること
Serverless v2のStandardとI/O Optimizedの違い
Serverless v2はStandardとI/O Optimizedの2種類があります。
Standardは汎用的に利用可能な一方で、I/O操作について別途費用(東京リージョンの場合は $0.24/100万リクエスト)が発生します。
I/O Optimizedは名前の通りI/O性能に優れています。I/Oの操作費用が発生しない一方で、単価はStandardに比べて割高です。
東京リージョンでStandardとI/O OptimizedのACU単価は以下の通りです。
- Standard : $0.15
- I/O Optimized : $0.20
東京・大阪リージョンのServerless v2のACU単価は2024年11月下旬に大幅値下げされています。
ACUとノード数の関係
Limitless DatabaseクラスターのコンピューティングリソースはServerless v2で動作し、最大・最小ACUを設定できます。
このクラスターにはシャーディングのためのルーティング等を行うルーターノードとシャーディングされたコンピューティングノードが存在します。
このルーター数とシャード数は次のドキュメントにあるように、クラスターの最大ACUで決定されます。
例えば、最大ACUを最小の16に設定すると、ルーター2台、シャード2個の4ノード構成となります。一方で、最大ACUを上限いっぱいの2000にすると、ルーター7台、シャード13台の20台構成となります。
利用費という観点では、ルーターノード数やシャード数を意識する必要はなく、クラスターがどれだけのACUを消費しているかで利用費が決定されます。
この利用しているACUはメトリクス DBShardGroupCapacityで確認できます。
スタンバイのACUはプライマリに追従
Limitless Databaseは、コンピューティングノードを別AZのスタンバイノードにフェイルオーバーさせる冗長化("redundancy")が可能です。
冗長構成はスタンバイなし(redundancy=0)からフェイルオーバー先スタンバイを2つもつ(redundancy=2)までの範囲で指定できます。
スタンバイのACUはWriterと連動します。つまり、スタンバイ数(0~2)に応じて、コンピューティングの費用も1~3倍になります。
Limitless Databaseのコンピューティングを費用を求めてみる
以上を踏まえて、Limitless Databaseのコンピューティング費用を具体的に求めてみます。
スタンバイ無しのミニマム構成
クラスターのACUの最大・最小を最小値の16(最小構成)でredundancyが0の場合を考えます。
東京リージョンのAurora I/O-Optimizedのper ACU hourは$0.20のため、クラスター単位でのインスタンス時間単価は 16(ACU) * 0.20(ACU-Hour) * 1 = $3.2 となります。
ルーターノード数(2)やシャード数(2)を意識する必要はありません。
スタンバイ2台構成
同じACU設定でredundancyを2とすると、クラスター単位での時間単価は 16 * 0.20 * (1+2) = $9.6 となります。
まとめ
Amazon Aurora Limitless Databaseはシャーディングにより書き込み性能がスケールするデータベースであり、ルーターやデータベースシャードグループなど複数のコンポーネントで構成されます。コンピューティングリソースはServerless v2によりワークロードに応じてスケールします。
クラスターに設定した最大ACUによってルーターノード数やシャード数は変動しますが、コンピューティングリソースの費用という観点では、クラスターが消費しているACUでベースラインが決定し、スタンバイ数に応じてクラスター全体の費用は1~3倍となります。
検証の際は、可用性(フェイルオーバー等)やシャーディングによるライトスループットなど、用途に応じてLimitless Databaseクラスターを構成しましょう。