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.5k
真のサーバーレスへ向けた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
これでLambdaが不要に?!Step FunctionsのJSONata対応について
iwatatomoya
2
3.6k
Qdrantでベクトルデータベースに入門してみよう
iwatatomoya
0
310
詳解 AWS Lambdaコールドスタート
iwatatomoya
1
1.8k
AWS SDKのClientはFactory経由で作ろう
iwatatomoya
1
710
OpentelemetryでアプリケーションのObservabilityを強化しよう
iwatatomoya
0
920
AWS Lambdaは俺が作った
iwatatomoya
2
2.2k
SnapStartの未来についての期待と妄想
iwatatomoya
1
1.3k
実例から学ぶ! AWSを活用したシステム開発の勘所
iwatatomoya
1
3k
目指せ完全制覇!3大クラウドの認定資格制度と勉強方法について
iwatatomoya
0
9.3k
Other Decks in Technology
See All in Technology
watsonx.ai Dojo #5 ファインチューニングとInstructLAB
oniak3ibm
PRO
0
160
Microsoft Azure全冠になってみた ~アレを使い倒した者が試験を制す!?~/Obtained all Microsoft Azure certifications Those who use "that" to the full will win the exam! ?
yuj1osm
1
110
TSKaigi 2024 の登壇から広がったコミュニティ活動について
tsukuha
0
160
20241220_S3 tablesの使い方を検証してみた
handy
3
330
UI State設計とテスト方針
rmakiyama
2
420
小学3年生夏休みの自由研究「夏休みに Copilot で遊んでみた」
taichinakamura
0
150
新機能VPCリソースエンドポイント機能検証から得られた考察
duelist2020jp
0
210
コンテナセキュリティのためのLandlock入門
nullpo_head
2
320
スタートアップで取り組んでいるAzureとMicrosoft 365のセキュリティ対策/How to Improve Azure and Microsoft 365 Security at Startup
yuj1osm
0
210
Oracle Cloud Infrastructure:2024年12月度サービス・アップデート
oracle4engineer
PRO
0
170
継続的にアウトカムを生み出し ビジネスにつなげる、 戦略と運営に対するタイミーのQUEST(探求)
zigorou
0
520
アップデート紹介:AWS Data Transfer Terminal
stknohg
PRO
0
180
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
2
170
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
2
290
Why Our Code Smells
bkeepers
PRO
335
57k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
A Tale of Four Properties
chriscoyier
157
23k
Faster Mobile Websites
deanohume
305
30k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Building Your Own Lightsaber
phodgson
103
6.1k
A better future with KSS
kneath
238
17k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
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