Upgrade to Pro — share decks privately, control downloads, hide ads and more …

真のサーバーレスへ向けたAuroraの進化 Aurora Limitless Database

TomoyaIwata
December 11, 2023

真のサーバーレスへ向けたAuroraの進化 Aurora Limitless Database

2023/12/11のre:Growth 2023 OSAKAで発表した資料です

TomoyaIwata

December 11, 2023
Tweet

More Decks by TomoyaIwata

Other Decks in Technology

Transcript

  1. 2 ⾃⼰紹介 l クラスメソッド株式会社 サーバーサイドエンジニア l 2023 Japan AWS Top

    Engineer l 2023 Japan AWS All Certifications Engineer l 前⼗字靭帯再建⼿術リハビリ中 l re:invent2023不参加😭 岩⽥ 智哉
  2. 4 Aurora Limitless Databaseの概要 • Monday Night Liveで発表されたAuroraの新機能 • 書き込み性能を(スケールアップではなく)スケールアウトできる︕︕

    • シャーディングの技術を応⽤しつつ、シャーディングの⾟みを解消 • 数100万/秒のトランザクションを処理可能 • ペタバイトクラスのデータを管理可能 • 現在プレビュー申請受付中 • 現時点ではPostgreSQL互換のみ
  3. 5 データベースのシャーディング id mod 4 1 2 3 4 •

    クライアントはどのシャードに接続するべき︖ • シャードを跨いだ操作はどうする︖ • どうやって⼀貫性を保証する︖ • ノードのリバランシングはどうする︖︖ 「シャード」という単位で分割管理する技術 シャーディングは難しい… cluster1 cluster2 cluster3 cluster4
  4. 9 Grover 「AWS re:Invent 2023 - Monday Night Live Keynote

    with Peter DeSantis 」より https://youtu.be/pJG6nmR7XxI?si=KThIxLju1QTU3TzM
  5. 11 Caspian • AWSが新たに開発したハイパーバイザ • インスタンスの再起動無しにスケールアップ可能 「AWS re:Invent 2023 -

    Monday Night Live Keynote with Peter DeSantis 」より https://youtu.be/pJG6nmR7XxI?si=KThIxLju1QTU3TzM
  6. 12 Caspian management 「AWS re:Invent 2023 - [LAUNCH] Introducing Amazon

    ElastiCache Serverless (DAT342)」より https://youtu.be/YYStP97pbXo?si=BRIzTArWEG8L98Kn
  7. 13 Amazon Time Sync Service • フルマネージドな時刻同期サービス • Precision Time

    Protocol(PTP)をサポート(new!!) • マイクロ秒単位の時刻同期が可能に • コレをPostgreSQLのMVCCに活⽤ • MVCC…MultiVersion Concurrency Control
  8. 14 Amazon Time Sync Service 「AWS re:Invent 2023 - Monday

    Night Live Keynote with Peter DeSantis 」より https://youtu.be/pJG6nmR7XxI?si=KThIxLju1QTU3TzM
  9. 15 分散システムの難しさ 0.000 0.005 0.004 0.006 commit commit 実際の時刻 commit

    クライアント1 クライアント2 ノード1 ノード2 • ノード間で時刻はズレる • イベントの順序が逆転し得る
  10. 16 時刻の信頼区間が重ならないよう待機して対応 0.000 0.005 • 最早: 0.004 • 最遅: 0.006

    • 最早: 0.005 • 最遅: 0.007 commit 待機… 実際の時刻 commit クライアント1 クライアント2 ノード1 ノード2 • 最早: 0.008 • 最遅: 0.010 commit 0.009 信頼区間の幅が⼩さいほど待機時間を短くできる
  11. 18 Aurora Limitless Databaseのアーキテクチャ概要 コンピューティングレイヤがさらに2つのレイヤに • Distributed transaction routers •

    Data access shards 「AWS re:Invent 2023 - [LAUNCH] Achieving scale with Amazon Aurora Limitless Database (DAT344) 」より https://youtu.be/a9FfjuVJ9d8?si=W2r3a0rCPrJGVoXX
  12. 19 Distributed transaction routers • シャードグループのエンドポイントの背後で稼働 • ⾃動でスケールアップ/スケールアウト • データベースのメタデータを管理

    • スキーマ • シャードキーとシャードのマッピング • トランザクション管理のためのタイムスタンプ管理 • クエリのプランニングと結果の集約
  13. 20 Data access shards • シャードキーに対応するテーブルの⼀部を管理 • referenceテーブル(後述)のコピーを所持 • ⾃動的にスケールアウトし、分割

    • シャード内のローカルなクエリのプランニング • シャード内のローカルなトランザクション管理
  14. 22 Table slice • フラグメントはさらにスライスと呼ばれる単位に分割 • スケールアウトに伴うシャード分割時にスライスが移動 • ここでGroverが活躍︕︕ 「AWS

    re:Invent 2023 - [LAUNCH] Achieving scale with Amazon Aurora Limitless Database (DAT344) 」より https://youtu.be/a9FfjuVJ9d8?si=W2r3a0rCPrJGVoXX
  15. 23 テーブルの種別 • sharded • シャーディングされるテーブル • co-located • 指定した別のテーブルと同じシャードに配置される

    • reference • 全シャードにテーブル全体が複製される • standard • シャーディングされない普通のテーブル
  16. 27 テーブルの作り⽅ • DDLはPostgreSQL完全互換 • テーブルの種別やシャードキーはセッションパラメータをSETすることで指 定する • アプリのマイグレーション処理に⼀⼯夫必要になりそう •

    AWS環境のマイグレーション処理のみSET⽂を流すなど 「AWS re:Invent 2023 - [LAUNCH] Achieving scale with Amazon Aurora Limitless Database (DAT344) 」より https://youtu.be/a9FfjuVJ9d8?si=W2r3a0rCPrJGVoXX
  17. 31