Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
札幌IT石狩鍋_1.pdf
Search
Nakagawa Shota
February 19, 2025
750
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
札幌IT石狩鍋_1.pdf
Nakagawa Shota
February 19, 2025
More Decks by Nakagawa Shota
See All by Nakagawa Shota
Innovation Sandbox on AWS で作るサンドボックス環境
snakagawax227
0
730
AWS DevOps Agent はオンコールエンジニアに代わるのか?
snakagawax227
0
1k
reInforce_amazon_inspector_code_security.pdf
snakagawax227
0
400
AWSで始める負荷テスト入門
snakagawax227
5
7k
これから始める脆弱性診断
snakagawax227
0
1.8k
迅速にAWS移行をすすめるベストプラクティス
snakagawax227
0
1.8k
これから始めるAWS移行のベストプラクティス
snakagawax227
0
3.2k
AWSコスト最適化のポイントのご紹介
snakagawax227
0
8.3k
テレワーク化を進めるミツイワ様でAmazon WorkSpacesの支援をした事例紹介
snakagawax227
1
2.1k
Featured
See All Featured
Designing Experiences People Love
moore
143
24k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
sira's awesome portfolio website redesign presentation
elsirapls
0
450
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
600
Paper Plane (Part 1)
katiecoart
PRO
2
12k
Fireside Chat
paigeccino
43
4.1k
WCS-LA-2024
lcolladotor
0
890
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
410
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
Transcript
2025/02/18 札幌IT⽯狩鍋#1 中川翔太 Amazon Aurora DSQL の勘所
⾃⼰紹介 中川 翔太(Shota Nakagawa) クラスメソッド株式会社 クラウド事業本部コンサルティング部 ソリューションアーキテクト 仕事:AWS全般のお悩み相談 略歴:N/W製品ヘルプデスク→AWS運⽤→現職 趣味:道の駅巡り、ダーツ
アジェンダ • Amazon Aurora DSQL とは • Amazon Aurora DSQL
の考慮事項 • まとめ
Amazon Aurora DSQL とは
昨年末にAWSのイベントで発表されました 内容を⼊⼒してください
Amazon Aurora DSQL とは • PostgreSQL 互換の分散 SQL DB(いわゆる NewSQL)
• インフラストラクチャの管理なし • 事実上無制限にスケール ◦ クエリ処理, コミット, ストレージの各層で独⽴してスケールする • マルチリージョンで Active/Active 可能で99.999%の⾼可⽤性 ◦ 単⼀リージョンも可能 • 楽観的同時実⾏制御を採⽤ • ユースケース ◦ 規模の⼤⼩関係なく様々なワークロードから使⽤可能 ◦ VPCを必要としないのでLambdaなどサーバレス利⽤と相性いい • 2025年2⽉17⽇時点でプレビュー • プレビュー期間中は無料で利⽤可能
アーキテクチャ https://aws.amazon.com/jp/blogs/database/introducing-amazon-aurora-dsql/
楽観的同時実⾏制御 楽観的同時実⾏制御(OCC)を採⽤して⾼い書き込みスループットを実現 • OCCはトランザクションがデータをロックせずに処理を⾏い、コミット時に 競合をチェックする⽅法 • 競合があった場合はコミットせずにアボート(中断)する • 他のトランザクションと競合する可能性は低いという前提 •
多くのRDBで採⽤されている悲観的同時実⾏制御はロックすることで常に⼀ 貫性が保証されている。⼀⽅でスループットや並列性が低下します
他社DBと⽐較して4倍⾼速
Amazon Aurora DSQL の考慮事項
ケース1. 在庫管理システムで購⼊処理が競合 ECサイトでスニーカーの在庫が1点のとき、2⼈の購⼊者が同時に購⼊しようとした 競合エラー発⽣
ケース1. 在庫管理システムで購⼊処理が競合 • 何が起きた? ◦ 購⼊者A, Bのトランザクションが同時に在庫データを読み取り、Bが先に UPDATEをコミットすることで在庫を0に更新 ◦ 購⼊者Aのトランザクションが更新を試みた際、⾃⾝が読み取った時点
のデータが変更されていることを検知し、OCC例外が発⽣ • どうするべきか? ◦ 書き込みトランザクションは失敗する可能性がある前提に設計 ▪ リトライできるように ▪ 多い場合は間隔をランダムに(Exponential Backoff and Jitter) ▪ 最⼤クエリ時間を考慮したタイムアウトを実装 ◦ データモデリングを⾒直す ▪ 競合が起きやすい箇所(ホットスポット)を避ける設計 ▪ 例)購⼊記録を追加するDB、在庫管理は集計する
ケース2:病院の当直管理でシフトのキャンセルが重なった 最低必要⼈数を下回った 病院の当直シフト管理システムで、最低2名以上の当直医が必要なところ、3名の当 直予定者から2名が同時にキャンセルを申請した
ケース2:病院の当直管理でシフトのキャンセルが重なった FOR UPDATE FOR UPDATE • 医師A, Bが同時に当直医師数を確認し、異 なるシフトレコードを更新した結果、個々 の更新は成功するものの、意図せず最低必
要⼈数を下回ってしまう状態となった(ラ イトスキュー)。 • 参照時点で関連データ全体をロック (SELECT FOR UPDATE)することで、2つ ⽬のトランザクションを早期に失敗させ、 意図しない更新を防ぐ。
他に気をつけること • 主キーを分散した設計にする ◦ UUIDのようにランダム性のある値を使⽤する ◦ パーティショニングやスケーリングで使⽤されるためパフォーマンスに 影響する • 事前に制約を確認する
◦ PostgreSQL互換とはいえ制約は多い ◦ 例)外部キー制約が現状サポートされていない ▪ 関連データを⾮同期で更新するようにする
まとめ
まとめ • Amazon Aurora DSQLはサーバレスな分散SQLデータベース • 楽観的同時実⾏制御を採⽤して⾼い書き込みスループットを実現 • その代わり、トランザクションの競合を避けるリトライ処理やホットスポッ トを避ける設計が必要
• プレビュー期間中は無料で試せますので是⾮お試しください!
参考
参考URL • Amazon Aurora DSQL • Concurrency control in Amazon
Aurora DSQL • Introducing Amazon Aurora DSQL • DSQL Vignette: Transactions and Durability • AWS re:Invent ふりかえり勉強会「クラスメソッド re:Growth 2024 東京」 で Aurora DSQL を話してきました! • Aurora DSQLの楽観同時実⾏制御を⼿を動かして学ぶ • Amazon Aurora DSQLの主キーで気をつけるべきこと • NewSQLなんも分からん⼈がゼロからAmazon Aurora DSQLを理解する(前 編) • NewSQLなんも分からん⼈がゼロからAmazon Aurora DSQLを理解する(後 編)
None