これは何?
AWS re:Invent 2023で発表されたAuroraの新機能「Amazon Aurora Limitless Database 」を使う側の目線でご紹介します。
Amazon Auroraとは?
- AWSが開発した独自のRDBエンジンで、RDSのひとつ
2種類の互換DBを選択可能
-- MySQL
-- PostgreSQL - 高機能高性能
通常の5倍のパフォーマンス
最大128TBのストレージ
最大15台のリードレプリカ
マルチAZでデータ保存し高い耐障害性
Limitless Databaseとは?
「AWS re:Invent 2023」で発表されたAurora Postgrersの新機能
- 既存のProvisioned、ServerlessV1、ServerlessV2に加えた4つ目の新たな稼働方式
-- 書き込み性能をスケールアウト/スケールインすることができる
-- 1秒あたり数百万件の書き込みトランザクションに対応
-- ペタバイト単位のデータを管理できる
※一般には利用不可
公式ドキュメントも未公開
従来方式との違い
スケールアウト、アケールアップが無停止で可能となる。
-- 書き込み性能のスケールアウト/スケールインが無停止でできる
-- 数百万/秒のトランザクションを処理できる
-- 従来の10倍以上のペタバイト単位のデータを管理できる
さらに、1つのエンドポイントで利用可能!
従来は書き込み用と読み取り用でエンドポイントが分かれていたが、1つのエンドポイントでオートスケーリングできるように改善されました。
- 従来の稼働方式
-- 従来はアプリ側でエンドポイントの使い分けが必要
-- 読み込みはスケールアップ、スケールアウトどちらにも対応していましたが、スケールアウトは読み取り専用のリーダーエンドポイントのみが対応
-- 書き込みはスケールアウトができず、ライターエンドポイントに対するスケールアップのみ対応
- 今回のLimitless Database
-- アプリ側は使い分け不要になり、1つのエンドポイントに接続するだけです。
-- 新たに追加されたLimitless Database用の1つのエンドポイントで読み書きどちらもスケールアウト、スケールアップにマルチAZで対応
従来のエンドポイントも残っており、合計3つのエンドポイントが利用できます。移行時の互換性のために残しているのではないでしょうか?
分散管理「シャーディング」
データを「シャード」という単位で分割管理する仕組み
複数のシャード(ノード)に分散してデータを書き込みすることでスケールアウトを実現
シャードは通常、ユーザが管理するのは難しいがLimitless Databaseにより完全マネージド化
使い方(インスタンス作成)
クラスターにシャードグループを追加する方式
従来通りコンソールまたはAPIでAuroraクラスターを作成
DBシャードグループ(Limitless Database)を追加
Auroraキャパシティユニット(ACU)の最大値を選択可能
既存のクラスターにも追加できると推測
ユースケース
大規模なトランザクションで有効
- 1秒あたり数百万の書き込みトランザクションを処理し、ペタバイト単位のデータを管理できるため、今までAuroraで対応できなかった大規模なデータベースワークロードを1つのデータベースで利用可能
- 逆に小さすぎるワークロードではシャーディング等のオーバーヘッドで適さない可能性あり
- これだけの高機能であるため、現行のAurora Serverlessよりも高単価となり、性能特性と費用対効果で使い分けることになる
まとめ
Amazon Aurora Limitless Databaseは、AWSで今まで対応できなかった大規模なワークロードのRDBに対応できるようになりました。
テーブル作成DDLへのシャーディング設定等、使う上での考慮事項は多々ありそうです。