Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
真のサーバーレスへ向けたAuroraの進化Aurora Limitless Database
Search
TomoyaIwata
December 11, 2023
Technology
1
4.9k
真のサーバーレスへ向けたAuroraの進化 Aurora Limitless Database
2023/12/11のre:Growth 2023 OSAKAで発表した資料です
TomoyaIwata
December 11, 2023
Tweet
Share
More Decks by TomoyaIwata
See All by TomoyaIwata
Aurora DSQLはサーバーレスアーキテクチャの常識を変えるのか
iwatatomoya
1
1.5k
これでLambdaが不要に?!Step FunctionsのJSONata対応について
iwatatomoya
2
5.9k
Qdrantでベクトルデータベースに入門してみよう
iwatatomoya
0
1.2k
詳解 AWS Lambdaコールドスタート
iwatatomoya
1
2.8k
AWS SDKのClientはFactory経由で作ろう
iwatatomoya
1
910
OpentelemetryでアプリケーションのObservabilityを強化しよう
iwatatomoya
0
1.2k
AWS Lambdaは俺が作った
iwatatomoya
2
2.8k
SnapStartの未来についての期待と妄想
iwatatomoya
1
1.4k
実例から学ぶ! AWSを活用したシステム開発の勘所
iwatatomoya
1
3.4k
Other Decks in Technology
See All in Technology
業務効率化をさらに加速させる、ノーコードツールとStep Functionsのハイブリッド化
smt7174
2
130
ACA でMAGI システムを社内で展開しようとした話
mappie_kochi
1
310
コンテキストエンジニアリング入門〜AI Coding Agent作りで学ぶ文脈設計〜
kworkdev
PRO
0
190
リセラー企業のテクサポ担当が考える、生成 AI 時代のトラブルシュート 2025
kazzpapa3
1
150
AI時代だからこそ考える、僕らが本当につくりたいスクラムチーム / A Scrum Team we really want to create in this AI era
takaking22
8
4.1k
新規事業におけるGORM+SQLx併用アーキテクチャ
hacomono
PRO
0
180
能登半島災害現場エンジニアクロストーク 【JAWS FESTA 2025 in 金沢】
ditccsugii
0
480
E2Eテスト設計_自動化のリアル___Playwrightでの実践とMCPの試み__AIによるテスト観点作成_.pdf
findy_eventslides
2
600
カンファレンスに託児サポートがあるということ / Having Childcare Support at Conferences
nobu09
1
530
Where will it converge?
ibknadedeji
0
210
Codexとも仲良く。CodeRabbit CLIの紹介
moongift
PRO
0
150
ガバメントクラウド(AWS)へのデータ移行戦略の立て方【虎の巻】 / 20251011 Mitsutosi Matsuo
shift_evolve
PRO
2
190
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
339
57k
Context Engineering - Making Every Token Count
addyosmani
5
230
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
How to train your dragon (web standard)
notwaldorf
96
6.3k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.7k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
How GitHub (no longer) Works
holman
315
140k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.6k
A Tale of Four Properties
chriscoyier
161
23k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.7k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
Being A Developer After 40
akosma
91
590k
Transcript
真のサーバーレスへ向けたAuroraの進化 Aurora Limitless Database クラスメソッド株式会社 岩⽥ 智哉 1
2 ⾃⼰紹介 l クラスメソッド株式会社 サーバーサイドエンジニア l 2023 Japan AWS Top
Engineer l 2023 Japan AWS All Certifications Engineer l 前⼗字靭帯再建⼿術リハビリ中 l re:invent2023不参加😭 岩⽥ 智哉
3 Aurora Limitless Database!!
4 Aurora Limitless Databaseの概要 • Monday Night Liveで発表されたAuroraの新機能 • 書き込み性能を(スケールアップではなく)スケールアウトできる︕︕
• シャーディングの技術を応⽤しつつ、シャーディングの⾟みを解消 • 数100万/秒のトランザクションを処理可能 • ペタバイトクラスのデータを管理可能 • 現在プレビュー申請受付中 • 現時点ではPostgreSQL互換のみ
5 データベースのシャーディング id mod 4 1 2 3 4 •
クライアントはどのシャードに接続するべき︖ • シャードを跨いだ操作はどうする︖ • どうやって⼀貫性を保証する︖ • ノードのリバランシングはどうする︖︖ 「シャード」という単位で分割管理する技術 シャーディングは難しい… cluster1 cluster2 cluster3 cluster4
6 シャーディングの複雑さを解 消し、ユーザーが意識すべき ポイントを減らしているのが Aurora Limitless Database
7 注意事項 プレビュー申請出しましたが まだ触れてません ドキュメントもまだ公開されていなさそうな ので、re:inventの各セッションから集めた情 報に妄想を混じえながら説明していきます
8 Aurora Limitless Database を⽀える技術 •Grover •Caspian •Amazon Time Sync
Service
9 Grover 「AWS re:Invent 2023 - Monday Night Live Keynote
with Peter DeSantis 」より https://youtu.be/pJG6nmR7XxI?si=KThIxLju1QTU3TzM
10 Grover • Auroraのストレージエンジン • 3つのAZにまたがってAZ毎に2箇所に分散書き込み • Log based storage
11 Caspian • AWSが新たに開発したハイパーバイザ • インスタンスの再起動無しにスケールアップ可能 「AWS re:Invent 2023 -
Monday Night Live Keynote with Peter DeSantis 」より https://youtu.be/pJG6nmR7XxI?si=KThIxLju1QTU3TzM
12 Caspian management 「AWS re:Invent 2023 - [LAUNCH] Introducing Amazon
ElastiCache Serverless (DAT342)」より https://youtu.be/YYStP97pbXo?si=BRIzTArWEG8L98Kn
13 Amazon Time Sync Service • フルマネージドな時刻同期サービス • Precision Time
Protocol(PTP)をサポート(new!!) • マイクロ秒単位の時刻同期が可能に • コレをPostgreSQLのMVCCに活⽤ • MVCC…MultiVersion Concurrency Control
14 Amazon Time Sync Service 「AWS re:Invent 2023 - Monday
Night Live Keynote with Peter DeSantis 」より https://youtu.be/pJG6nmR7XxI?si=KThIxLju1QTU3TzM
15 分散システムの難しさ 0.000 0.005 0.004 0.006 commit commit 実際の時刻 commit
クライアント1 クライアント2 ノード1 ノード2 • ノード間で時刻はズレる • イベントの順序が逆転し得る
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 信頼区間の幅が⼩さいほど待機時間を短くできる
17 これらの技術を組み合わせ ることでシャーディングの 複雑さを解消
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
19 Distributed transaction routers • シャードグループのエンドポイントの背後で稼働 • ⾃動でスケールアップ/スケールアウト • データベースのメタデータを管理
• スキーマ • シャードキーとシャードのマッピング • トランザクション管理のためのタイムスタンプ管理 • クエリのプランニングと結果の集約
20 Data access shards • シャードキーに対応するテーブルの⼀部を管理 • referenceテーブル(後述)のコピーを所持 • ⾃動的にスケールアウトし、分割
• シャード内のローカルなクエリのプランニング • シャード内のローカルなトランザクション管理
21 シャードの管理 • シャードキーのハッシュに基づいてテーブルをフラグメントとい う単位で分割管理 • Transaction Routerはフラグメントへの参照を保持する • シャーディングされたテーブルは複数のパーティションに分割
「AWS re:Invent 2023 - [LAUNCH] Achieving scale with Amazon Aurora Limitless Database (DAT344) 」より https://youtu.be/a9FfjuVJ9d8?si=W2r3a0rCPrJGVoXX
22 Table slice • フラグメントはさらにスライスと呼ばれる単位に分割 • スケールアウトに伴うシャード分割時にスライスが移動 • ここでGroverが活躍︕︕ 「AWS
re:Invent 2023 - [LAUNCH] Achieving scale with Amazon Aurora Limitless Database (DAT344) 」より https://youtu.be/a9FfjuVJ9d8?si=W2r3a0rCPrJGVoXX
23 テーブルの種別 • sharded • シャーディングされるテーブル • co-located • 指定した別のテーブルと同じシャードに配置される
• reference • 全シャードにテーブル全体が複製される • standard • シャーディングされない普通のテーブル
24 shardedが向くテーブル • 書き込みが多いテーブル • シャードキーのカーディナリティが⾼いテーブル • 顧客テーブルを性別でシャーディングしても効果は薄い • ECサイトの顧客テーブルや受注テーブル
25 shardedかつco-locatedが向くテーブル • シャードキーを使って他のテーブルと結合されるテーブル • 単⼀シャード内でJOINが完結すれば処理が⾼速になる • ECサイトにおける受注テーブルなど • ※よく顧客テーブルと結合される
26 referenceが向くテーブル • 頻繁に参照・結合されるテーブル • 単⼀シャード内でJOINが完結すれば処理が⾼速になる • ECサイトにおける税率マスタなど • 書き込み頻度が少ないテーブル
• ACID特性を担保するために、全シャードにまたがる2相 コミットが必要になり、書き込み性能が出ない
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
28 開発はどう変わる︖ • テーブルの種別は何が適切か︖ • シャーディングを意識したテーブル設計 • シャードキーは何が適切か︖ • 極⼒単⼀シャードで処理が完結するように設計
• SQLのアクセスパスや実⾏計画でもシャードを意識する
29 まとめ Aurora Limitless Databaseを使うと 従来Auroraだけではカバーしきれなかった ワークロードもカバーできるように プレビューに申し込んで ガンガン検証しましょう︕︕
30 以上 ありがとうございました
31