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
5.1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
真のサーバーレスへ向けたAuroraの進化 Aurora Limitless Database
2023/12/11のre:Growth 2023 OSAKAで発表した資料です
TomoyaIwata
December 11, 2023
More Decks by TomoyaIwata
See All by TomoyaIwata
CIで使うClaude
iwatatomoya
0
120
Lambdaの常識はどう変わる?!re:Invent 2025 before after
iwatatomoya
1
1.3k
Aurora DSQLはサーバーレスアーキテクチャの常識を変えるのか
iwatatomoya
1
2.4k
これでLambdaが不要に?!Step FunctionsのJSONata対応について
iwatatomoya
2
6.6k
Qdrantでベクトルデータベースに入門してみよう
iwatatomoya
0
2.8k
詳解 AWS Lambdaコールドスタート
iwatatomoya
2
3.4k
AWS SDKのClientはFactory経由で作ろう
iwatatomoya
1
1.1k
OpentelemetryでアプリケーションのObservabilityを強化しよう
iwatatomoya
0
1.3k
AWS Lambdaは俺が作った
iwatatomoya
2
3.4k
Other Decks in Technology
See All in Technology
オブザーバビリティ、本当に活用できてる? 〜API連携×生成AIで成熟度を自動評価〜
dmmsre
0
1.1k
グローバルチームと挑むプロダクト開発
sansantech
PRO
1
160
環境凍結という Toil を倒す -セルフサービス型 Ephemeral テスト環境の 設計と実践
shirouz
1
530
Why is RC4 still being used?
tamaiyutaro
0
300
AI Agent SaaS を支える自社仮想化基盤への挑戦と実運用 / ai-agent-saas-virtualization
flatt_security
2
1.9k
AIに障害切り分けを全部やってもらった。 。 。 。
estie
0
370
依頼文化をやめる日 EM視点で語るPlatform EngineeringとInclusive SRE / Discussing Platform Engineering and Inclusive SRE from an EM's Perspective
shin1988
4
3.1k
知らん間に、回ってる
ming_ayami
0
240
Kotlin 開発のツラミを爆破した話! / Explode the difficulty of Kotlin dev!
eller86
0
150
Keeping applications secure by evolving OAuth 2.0 and OpenID Connect
ahus1
PRO
1
150
そのタスクオンスケですか?
poropinai1966
0
140
AI Driven AI Governance
pict3
0
160
Featured
See All Featured
How to Ace a Technical Interview
jacobian
281
24k
How to make the Groovebox
asonas
2
2.3k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
340
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.5k
Technical Leadership for Architectural Decision Making
baasie
3
430
How STYLIGHT went responsive
nonsquared
100
6.2k
Evolving SEO for Evolving Search Engines
ryanjones
0
240
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
We Have a Design System, Now What?
morganepeng
55
8.2k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Paper Plane (Part 1)
katiecoart
PRO
0
9.5k
RailsConf 2023
tenderlove
30
1.5k
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