🌍

Amazon Aurora Limitless Databaseについてまとめていく

2024/05/22に公開

これはなに?

Amazon Aurora Limitless Databaseについて調べつつ、メモしていくものです。
誤りが含まれている可能性があります。

2024/05/21時点での情報であり、かつ、執筆途中です

Amazon Aurora Limitless Databaseの特徴

  • 書き込み性能のスケールアウト / スケールインが可能
    • 最大n millions/sec の書き込みトランザクションに対応可能
  • ペタバイト級のデータを管理可能
  • エンドポイントが一つ
    • Read/Writeでエンドポイントを使い分ける必要がなく、DB shard group endpointへのリクエストを、Transaction RoutersがAurora WriterやShardsに振り分けてくれる
  • フルマネージドなシャーディング機能

Amazon Aurora Limitless Databaseの制限事項

  • 限定プレビューの段階であり、一般利用不可・公式ドキュメントなし
  • PostgreSQL互換版のみ
  • Partitionは非サポート
    • ユースケースがないという判断らしい
  • シャードに対するグローバルなインデックスは不可
    • DBごと(ノードごと?)らしい
  • 対応するextensionが少ない
    • (情報源未確認)

Amazon Aurora Limitless Databaseを支える主要技術

  • Grover
    • 独自のストレージエンジン
    • 3つのAZに2つずつ分散して書き込み、可用性向上
  • Caspian
    • 独自のハイパーバイザ
    • 無停止でのスケールアップ / スケールダウンを可能にする
  • Amazon Time Sync Service
    • サービス自体は既存で、時刻同期のサービス
    • 新たに、Precision Time Protocol(PTP)に対応し、NTPより高精度なマイクロ秒単位での時刻同期が可能
      • NTPは、ミリ秒単位での時刻同期

Amazon Aurora Limitless Databaseが適しているユースケース

  • Auroraでは対応できないような大規模なワークロード
    • n millions/secの書き込みトランザクションを捌きたい
    • ペタバイト級のデータを管理したい

Amazon Aurora Limitless Databaseが適さないユースケース

  • 小規模なワークロード
    • シャーディング等のオーバーヘッドで性能劣化することもあるかもしれない
  • コストを抑えたい
    • 高機能な分、Limitless DatabaseはAuroraよりも高単価。

フルマネージドなシャーディング機能

「テーブルモード」という概念が導入され、テーブルごとにシャーディング対象かどうかなどが指定できる。テーブルモードは、rds_aurora.limitless_create_table_mode で指定する。指定できるテーブルモードは以下の4つ。

  • Sharded:シャーディング対象のテーブルであることを示す
  • Sharded(co-located):"Sharded" と同じシャードに配置したい対象テーブル
    • 自分の理解だと、「分割されたテーブルの断片」を「シャード」、「(複数の)シャードを持ち、シャードごとのクエリ処理を行うもの」を「ノード(または、ワーカ)」と呼んでいるイメージであったが、Limitless Databaseの資料では、「(複数の)シャードを持ち、シャードごとのクエリ処理を行うもの」を「シャード」と呼んでいるように見える
  • Reference:すべてのシャードにコピーして配置されるテーブル。例えば、"Sharded"のテーブルとよくjoinするようなテーブルを"Reference"に指定することで、オーバーヘッドの低減を図ることができる
  • Standard:シャーディング対象でない通常のテーブル

参考資料

Discussion