7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

本記事で言及している Amazon Aurora Limitless Database は 2023/12/25 時点で Preview の機能です。運用環境での使用は推奨されません。また将来的に動作や仕様が変更される可能性があります。

はじめに

AWS re:Invent 2023で発表されたAuroraの新機能「Amazon Aurora Limitless Database 」を使う側の目線でご紹介します。

color is【クラウドLT大会vol.6】大型アップデート祭りで発表したセッションの内容に、時間の関係で話せなかった内容を加えて記事化したものです。

セッション資料

Amazon Auroraとは?

  • AWSが開発した独自のRDBエンジンで、RDSのひとつ
  • 2種類の互換DBを選択可能
    • MySQL
    • PostgreSQL
  • 高機能高性能
    • 通常の5倍のパフォーマンス
    • 最大128TBのストレージ
    • 最大15台のリードレプリカ
    • マルチAZでデータ保存し高い耐障害性

…でしたが、今回の新機能でさらにパワーアップしました!

image.png

Limitless Databaseとは?

「AWS re:Invent 2023」で発表されたAuroraの新機能!

  • 既存のProvisioned、ServerlessV1、ServerlessV2に加えた4つ目の新たな稼働方式
  • 書き込み性能をスケールアウト/スケールインすることができる
  • 1秒あたり数百万件の書き込みトランザクションに対応
  • ペタバイト単位のデータを管理できる
  • 現在はまだPostgreSQL互換のみを限定プレビュー
    • 一般には利用不可
    • 公式ドキュメントも未公開

私も限定プレビューへ申し込みましたが、まだ利用できていません。従って本記事の内容は一部推測が含まれますのでご了承ください

従来方式との違い

スケールアウト、アケールアップが無停止で可能になり、真のサーバレスに!

  • 書き込み性能のスケールアウト/スケールインが無停止でできる
  • 数百万/秒のトランザクションを処理できる
  • 従来の10倍以上のペタバイト単位のデータを管理できる
    image.png

さらに、1つのエンドポイントで利用可能!

従来は書き込み用と読み取り用でエンドポイントが分かれていたが、1つのエンドポイントでオートスケーリングできるように改善されました。

  • 今回のLimitless Database
    • アプリ側は使い分け不要になり、1つのエンドポイントに接続するだけ!
    • 新たに追加されたLimitless Database用の1つのエンドポイントで読み書きどちらもスケールアウト、スケールアップにマルチAZで対応
    • 従来のエンドポイントも残っており、合計3つのエンドポイントが利用できます。移行時の互換性のために残しているのではないかと推測します
      image.png

分散管理「シャーディング」

データを「シャード」という単位で分割管理する仕組み

  • 複数のシャード(ノード)に分散してデータを書き込みすることでスケールアウトを実現
  • シャードは通常、ユーザが管理するのは難しいがLimitless Databaseにより完全マネージド化

image.png

使い方(インスタンス作成)

クラスターにシャードグループを追加する方式

  • 従来通りコンソールまたはAPIでAuroraクラスターを作成
  • DBシャードグループ(Limitless Database)を追加
    • Auroraキャパシティユニット(ACU)の最大値を選択可能
    • 既存のクラスターにも追加できると推測
      image.png

image.png

使い方(テーブル作成)

セッションパラメータでテーブルのモードを指定

  • テーブルに対してモードを指定し、関連性を定義することで、シャード内(ノード内)での高速なテーブル結合を行います。
    image.png
  • テーブル作成時にモードとキーの指定します
    • Sharded: シャーディング対象テーブル
      image.png

    • Sharded(co-located): Shardedと同じシャードに配置したい対象テーブル
      image.png

    • Reference: 全てのシャードにコピーして配置されるテーブル
      image.png

    • Standard: シャード管理されない通常のテーブル
      image.png

Limitless Databaseを実現する内部の技術

内部では下記3つの技術で分散管理の複雑さを完全マネージド化しています。
利用する際には意識しませんが、ソフトウェア/ハードウェア両面ですごい技術を駆使していますので少しだけ紹介させてください。

  • Grover

    • Auroraストレージエンジン
    • 3つのAZへ2つずつ分散して書き込み
    • AuroraのI/Oを80%削減!
      image.png
  • Caspian

    • 新たに開発したハイパーバイザ
    • 無停止でスケールアップ/ダウンが可能に!
      image.png
  • Amazon Time Sync Service

    • 既存の時刻同期サービス
    • 新たにPrecision Time Protocolに対応
    • マイクロ秒以下の精度で時刻同期が可能になり、ノード分散管理を実現!
      image.png

ユースケース

大規模なトランザクションで有効

  • 1秒あたり数百万の書き込みトランザクションを処理し、ペタバイト単位のデータを管理できるため、今までAuroraで対応できなかった大規模なデータベースワークロードを1つのデータベースで利用可能
  • 逆に小さすぎるワークロードではシャーディング等のオーバーヘッドで適さない可能性あり
  • これだけの高機能であるため、現行のAurora Serverlessよりも高単価となり、性能特性と費用対効果で使い分けることになると推測します
  • 移行の方法としては既存のクラスタに追加でき、従来のエンドポイントが残るのであれば、下記で容易に実現できるのではないかと思います。
    • 現行のクラスタにLimitless Databaseを追加
    • アプリ側のエンドポイントを切り替え
    • 従来のインスタンスを削除

まとめ

Amazon Aurora Limitless Databaseは、AWSで今まで対応できなかった大規模なワークロードのRDBに対応できるようになりました。
テーブル作成DDLへのシャーディング設定等、使う上での考慮事項は多々ありそうです。
公式ドキュメントが発表されたら制約を熟読してどんどん使っていきましょう!

参考サイト

7
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?