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
Aurora MySQL ハマリポイントと対応
Search
tk3fftk
December 22, 2022
Technology
780
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Aurora MySQL ハマリポイントと対応
tk3fftk
December 22, 2022
More Decks by tk3fftk
See All by tk3fftk
Claude Team Plan導入・ガイド
tk3fftk
0
630
地域 SRE コミュニティ最前線 - ホンマでっかSRE勉強会
tk3fftk
0
690
どこまでゆるくて許されるのか
tk3fftk
0
980
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
6
1.8k
TROCCOで始めるクラウドコストを民主化するためのFinOps
tk3fftk
3
930
障害対応のRunbookは作った、でも本当に動くの? AWS FIS で EKS の AZ 障害を再現してみた
tk3fftk
1
300
AWSの資格って役に立つの?
tk3fftk
2
590
ヘルシーSRE
tk3fftk
2
490
セキュアなAI活用のためのLiteLLMの可能性
tk3fftk
5
3.5k
Other Decks in Technology
See All in Technology
Gifu WordPress Meetup #200 に向けて、私たちには何ができるだろうか?/ 2026-11-07 Gifu WordPress Meetup
torounit
0
210
現場を動かすAIエージェント#2_製造業現場でのAI活用から見た、ハマる罠と実践知
kintotechdev
2
190
FinOpsを導入してマルチプロダクトのコスト最適化を実現する
kworkdev
PRO
0
140
新卒エンジニア、 介護士になる
ryu1013
1
690
Flutter Widget Previewerで始めるUIプレビューとVRTの自動化
sakusaku3939
0
210
令和の今、あらためて IAM を考える。アクセスキーを「無くせない現実」との向き合い方
kazzpapa3
0
410
AI時代の組織作り:チーム開発から「個人×AI」への移行と、持続可能な「開発資本」の築き方
ham0215
2
290
増え続けるプロダクトの品質をどう担保するか。ProductSpecとTypeScriptによる取り組み
joere
3
910
バックオフィスに染み出すTypeScript ── clasp で安全に仕組みを作る
nealle
1
180
Active Directory と Entra ID のむむむな関係
murachiakira
PRO
3
1.7k
企画からFlutter実装まで、1つの機能を一貫して開発したプロセスと成果物
khiroyuki1003
1
160
サボる子はいねぇがー!AgentCoreハーネスの脆弱性に学ぶ、エージェントの入力バリデーション
iwamot
PRO
5
300
Featured
See All Featured
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
630
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.3k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
570
Designing for humans not robots
tammielis
254
26k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
550
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
540
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
From π to Pie charts
rasagy
1
440
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
610
Transcript
trocco® ӡ༻ͰֶͼΛಘͨ Aurora MySQL ϋϚϦϙΠϯτͱରԠ primeNumber SRE ߴ௩و (@tk3fftk)
ձ໊ࣾ גࣜձࣾprimeNumber දऔకCEO ాᬑ ༤थ ۀ 201511݄ Office ౦ژ্۠େ࡚ࡾஸ1൪1߸ JR౦ٸࠇϏϧ5F
© primeNumber.Inc ࢲͨͪͷϏδϣϯ ͋ΒΏΔσʔλΛɺ Ϗδωεͷྗʹม͑Δɻ primeNumberɺσʔλςΫϊϩδʔΧϯύχʔɻ ͋ΒΏΔσʔλ͕രൃతʹ૿͍͑ͯ࣌͘ʹɺ ୭͕͘͢ɺ؆୯ʹσʔλΛ͑ΔڥΛߏங͠ɺ σʔλ׆༻·ͰͷϓϩηεΛ࠷దԽɻ ߴͳςΫϊϩδʔͱಠࣗͷΞΠσΞͰɺੈքதͷϏδωεΛࢧԉ͠·͢ɻ
3
© primeNumber.Inc 4
© primeNumber.Inc ߴ௩و (Hiroki Takatsuka, @tk3fftk) גࣜձࣾprimeNumber ΤϯδχΞϦϯάຊ෦ SRE 5
• େࡕ → ਆށ → ౦ژ ◦ ࡢژʹ͍ͨͷͰ౦ւಓ৽װઢͷӡస ݟ߹ΘͤͷӨڹ͕ͬͭΓड͚·ͨ͠😇 • ϠϑʔגࣜձࣾͰ։ൃऀ͚ϓϥοτϑΥʔϜ ͷ։ൃɾӡ༻෦ (2016~2022) ◦ ྗ͍ͯͨ͠ͷ OSS ͷ CI/CD πʔϧ Screwdriver.cd ͷ։ൃɾSRE ◦ εΫϥϜϚελʔͬͨΓEMͬͨΓ • trocco® ʹ2021/10 ͔Β෭ۀͰSREͱͯؔ͠Θ
© primeNumber.Inc • Aurora MySQL Ͱ Reader ͷෛՙ͕ Writer (Clusterશମ)
ʹӨڹ༩͑Δ͜ ͱ͕͋ΔΑ ◦ Aurora MySQL ಛ༗ͷͰͳ͍͚Ͳग़͍͢ΞʔΩςΫνϟʹͳ͍ͬͯΔΑ ◦ trocco® ͷ Aurora ͷࣾͰͷ͍ํͰ͕ͬͭΓҾ͔͔͍ͬͬͯͨΑ • ্هΛղܾͯ͠·͕͔ͩ͋ͬͨΒผͷରԠೖΕͨΑ ࠓ͢͜ͱ 6
trocco® ͕໘ͨ͠՝
© primeNumber.Inc ϝϞϦރׇʹΑΔDBΠϯελϯεμϯ → Failover ൃੜ • τυϝΛͨ͠ͷػೳϦϦʔε࣌ͷ ALTER TABLE
8
© primeNumber.Inc Failover ޙ࠶ͼԼ͕Γଓ͚Δ FreeableMemory • ϦϦʔεʹࢧো͕ग़Δঢ়ଶ • ϝϞϦރׇ͕ݪҼͰམͪͨͷʹɺ·ͨϝϞϦ͕ʹʹݮ͍ͬͯ͘ ◦
Ͳ͜·ͰԼ͕Δͷ͔ɺͳͥ͜ΜͳʹԼ͕Δͷ͔ɺਆ (AWS Support) ʹفΔʑ 9
© primeNumber.Inc Q. فͬͯͳ͍ͰରԠͨ͠ΒͲ͏Ͱ͔͢ʁ • A. ͪΖΜ͍߹Θͤͱಉ࣌ʹௐࠪɺରࡦͷݕ౼ਐΊ͍ͯ·ͨ͠ • ఆظతʹ࠶ىಈ͢Δʁ ◦
trocco® ࢭΊΒΕͳ͍ (ࢭΊͨ͘ͳ͍) ▪ 24͓࣌ؒ٬͞Μͷసૹδϣϒ͕ಈ͍͓ͯΓɺॠஅͰӨڹ͕ग़ΔՄೳੑ͕͋Δ • (͜ͷ͋ͨΓผ్վળ͍͖͍ͯͨ͠ϙΠϯτͰ͢) • ϝϞϦ૿͢ઃఆ͢Δ or Ϧιʔε૿͢ʁ ◦ ͲͪΒ࠶ىಈ͕ඞཁʹͳΔͨΊɺ্هͱಉ͡ཧ༝Ͱ࠷ऴखஈʹ͔ͨͬͨ͠ ▪ ࠶ىಈͳ͠ͷखஈ͕͋͠ΔͷͳΒͦͬͪΛબͼ͍ͨ ◦ 11݄ʹRDSΫϥελҠߦΛ༧ఆ͍ͯͨ͠ͷͰɺ2ϲ݄͑ΕઃఆมߋͰ͖Δ 10
© primeNumber.Inc ͦͯ͠ AWS Support ΑΓճ͕ • > ͋ΔλΠϛϯάΑΓʮRollbackSegmentHistoryListLengthʯʹେ͖ͳ͕ݟΒΕΔΑ͏ʹͳ͓ͬͯΓ·ͨ͠ҝɺͪ͜ ΒফඅϝϞϦʹӨڹΛ༩͍͑ͯͨͷͰͳ͍͔ͱఆக͓ͯ͠Γ·͢ɻ
• > MySQL DBΤϯδϯʹ͓͍ͯɺwriter/readerͷํͰɺඇৗʹ࣮ߦ࣌ؒͷ͍ΫΤϦ͕ଘࡏ͍ͯ͠Δ߹ɺಡΈऔΓҰ؏ ੑΛ࣮ݱ͢ΔͨΊʹϩʔϧόοΫηάϝϯτʹաڈͷใΛอ࣋͠ͳ͚Ε͍͚ͳ্͍ؔɺϩϯάΫΤϦ࣮ߦதͷߋ৽ใ Λશͯอ࣋͠ͳ͚ΕͳΒͳ͍ͱ͍͏ಈ࡞ʹىҼͨ͠ͷͱͳΓ·͢ɻ͜ͷͱ͖ɺߋ৽ʹΑͬͯอ࣋͠ͳ͚ΕͳΒͳ͍աڈ ͷใͷྔ͕ɺͪ͜ΒͷϝτϦΫεͱͳΓ·͢ɻ͜ͷͨΊɺߋ৽ྔ͕ଟ͍DBʹ͓͍ͯ࣌ؒͷಡΈऔΓΫΤϦ͕࣮ࢪ͞Εͨ ߹ɺDBͷෛՙ্͕ঢ͢ΔՄೳੑ͕͍͟͝·͢ɻ 11
© primeNumber.Inc Failover ޙͷ RollbackSegmentHistoryListLength (RSHLL) • ࢦఠΒͬͯΔ͠໌Β͔ʹةͳͦ͏ͳܗΛ͍ͯ͠Δ 12
© primeNumber.Inc ͳͥ RollbackSegmentHistoryListLength (RSHLL) ͕૿େ͢Δ͔ • τϥϯβΫγϣϯͷҰ؏ੑΛ֬อ͢ΔͨΊʹɺMySQL աڈͷߦͷཤྺͷΑ͏ͳͷ Λ͍࣋ͬͯΔ
◦ ྫ͑ɺ1લ͔ΒऴΘΒͳ͍ SELECT จ͕͋ͬͨͱͯ͠ɺͦͷ SELECT Ͱ৮͍ͬͯΔߦ͕ผͷτϥϯ βΫγϣϯͰߋ৽͞Εͨͱͯ͠ɺσʔλͷҰ؏ੑΛอͭͨΊʹ SELECT ͕ऴΘΔ·Ͱݹ͍ߦࣺͯΒ Εͳ͍ ▪ ࣺͯΒΕ͍ͯͳ͍ݹ͍ߦ͕ཷ·ͬͯ͘Δͱ৭Μͳͱ͜ΖͰύϑΥʔϚϯεͷ͕ग़Δ • ࢀߟ: Chasing a Hung MySQL Transaction: InnoDB History Length Strikes Back - Percona Database Performance Blog • Aurora ΞʔΩςΫνϟతʹ͜ͷ͕ग़͘͢ͳ͍ͬͯΔ ◦ Aurora MySQL DB ΫϥελʔͰͷ͍ SELECT ΫΤϦͷτϥϒϧγϡʔςΟϯά ▪ > Aurora MySQL Ͱɺڞ༗ετϨʔδͷϘϦϡʔϜͷੑ্࣭ɺཤྺϦετͷ͞ΫϥελʔϨ ϕϧͰ͋ΓɺݸʑͷΠϯελϯεϨϕϧͰ͋Γ·ͤΜɻ 13
© primeNumber.Inc trocco® ͷ Reader ͷ͍ํ͕ग़͔ͬͨ͢ • ࣌ؒτϥϯβΫγϣϯΛுΔΑ͏ͳΫΤϦΛఆظతʹྲྀ͍ͯͨ͠ 14
RollbackSegmentHistoryListLength ͷ૿େʹରͯ͠ ͲͷΑ͏ͳରԠҊ͕͋ΓɺԿΛߦ͔ͬͨ
© primeNumber.Inc ͲͷΑ͏ͳରԠҊ͕͔͋ͬͨʁ • ظରԠ ◦ ࣮࣌ؒߦ͞Ε͍ͯΔΫΤϦΛࢭΊΔ ◦ ࣮࣌ؒߦ͞Ε͍ͯΔΫΤϦΛߴԽ͢Δ •
தظରԠ ◦ MySQL ͷϨϕϧΛมߋ͢Δ ◦ Reader ʹ͚࣮ͯߦ͍ͯ͠ΔΫΤϦΛผΫϥελʹ͚Δ ◦ Writer ͕ར༻Ͱ͖ΔϝϞϦΛ૿͢ (ཁ࠶ىಈ) ◦ Aurora engine ͷ version Λ্͛Δ (ཁ࠶ىಈ) 16
© primeNumber.Inc ͲͷΑ͏ͳରԠҊ͕͔͋ͬͨʁ • ظରԠ ◦ ࣮࣌ؒߦ͞Ε͍ͯΔΫΤϦΛࢭΊΔ ◦ ࣮࣌ؒߦ͞Ε͍ͯΔΫΤϦΛߴԽ͢Δ •
தظରԠ ◦ MySQL ͷϨϕϧΛมߋ͢Δ ◦ Reader ʹ͚࣮ͯߦ͍ͯ͠ΔΫΤϦΛผΫϥελʹ͚Δ ◦ Writer ͕ར༻Ͱ͖ΔϝϞϦΛ૿͢ (ཁ࠶ىಈ) ◦ Aurora engine ͷ version Λ্͛Δ (ཁ࠶ىಈ) 17
© primeNumber.Inc ࣮࣌ؒߦ͞Ε͍ͯΔΫΤϦΛࢭΊΔɾߴԽ • Reader Ͱݕग़͞Ε͍ͯΔ slowquery Λௐࠪͯ͠Ұ࣌ఀࢭ 18
© primeNumber.Inc Reader ʹ͚࣮ͯߦ͍ͯ͠ΔΫΤϦΛผΫϥελʹ͚Δ • Aurora ͷΫϩʔϯػೳ + binlog ϨϓϦέʔγϣϯΛͬͯੳ༻
Aurora Ϋϥ ελΛ࡞ ◦ ظରԠͰࢭΊͨ Redash, trocco® ʹΑΔ trocco® ͷσʔλసૹΛ࠶։ͤ͞Δత ◦ ίετݮͷͨΊຊମΫϥελΑΓ1ͭԼͷΠϯελϯεαΠζͰՔಇ ▪ CPUUtilization, BufferCacheHitRatio, SwapUsageͳͲΛݟܾͯఆ ▪ ϦιʔεʹՃ͑ϨϓϦέʔγϣϯϥά (AuroraBinlogReplicaLag) Λࢹ • සൟʹϥάΔΑ͏ͳΒ্͛Δ͜ͱݕ౼ • ੳ༻Ͱ͋Εؾܰʹམͱͯ͠ΠϯελϯεαΠζมߋɺͱ͍͏͜ͱՄೳͳͣ 19
© primeNumber.Inc FreeableMemory ͷݮগ؇͔ʹͳͬͨ 20
© primeNumber.Inc ͲͷΑ͏ͳରԠҊ͕͔͋ͬͨʁ (࠶ܝ) • ظରԠ ◦ ࣮࣌ؒߦ͞Ε͍ͯΔΫΤϦΛࢭΊΔ ◦ ࣮࣌ؒߦ͞Ε͍ͯΔΫΤϦΛߴԽ͢Δ
• தظରԠ ◦ MySQL ͷϨϕϧΛมߋ͢Δ ◦ Reader ʹ͚࣮ͯߦ͍ͯ͠ΔΫΤϦΛผΫϥελʹ͚Δ ◦ Writer ͕ར༻Ͱ͖ΔϝϞϦΛ૿͢ (ཁ࠶ىಈ) ◦ Aurora engine ͷ version Λ্͛Δ (ཁ࠶ىಈ) 21
© primeNumber.Inc Writer ͕ར༻Ͱ͖ΔϝϞϦΛ૿͢ (ཁ࠶ىಈ) • innodb_buffer_pool_size Λ DBInstanceClassMemory*3/4 (default)
→ DBInstanceClassMemory*5/8 ◦ BufferCacheHitRatio, SwapUsage Λݟͯஅ ▪ BufferCacheHitRatio ΄΅100%ͩͬͨͨΊ (SwapUsage ͣͬͱθϩͩͬͨ) 22
© primeNumber.Inc Aurora engine ͷ minor version Λ্͛Δ (ཁ࠶ىಈ) •
ϝϞϦؔ࿈ͷ bugfix ͱ͔ imporovement ͕ೖ͍ͬͯΔՄೳੑ͕͋Δ ◦ Release notes for Amazon Aurora MySQL-Compatible Edition - Amazon Aurora • Zero Downtime Patching ·ͩར༻Ͱ͖ͳ͍ engine όʔδϣϯͩͬͨ ◦ ͦͦຊʹαʔϏεӨڹग़ͣ͞ʹ͑Δͷ͔ݕূ͠ͳ͍ͱ͏ͷ͜Θ͍ 23
© primeNumber.Inc ࠓޙͷల 24 • binlog ͷར༻ΛΊΔ ◦ binlog Λ༗ޮʹ͍ͯ͠ΔͱΫϥογϡޙͷ෮چ͕࣌ؒ͘ͳΔɺͱͷ͜ͱ
▪ ࢀߟ: Amazon Aurora ετϨʔδͱ৴པੑ - Amazon Aurora ◦ όοΫτϥοΫػೳ͕͑ͳ͍ • Aurora ΫϩʔϯػೳΛͬͨ߹ͷσʔλͷ࣋ͪํίετ໘Ͱݒ೦ ◦ ίϐʔΦϯϥΠτ ͰσʔλΛอ࣋ɾߋ৽͢Δ ▪ ޮѱ͍͔ʁΫϩʔϯ࡞࣌ͷσʔλΛແବʹอ࣋͠ଓ͚ͯ͠·͍ͬͯΔ͔ʁͳͲ • ސ٬૿ʹΑΓݟࠐ·ΕΔDBෛՙΛԼ͛Δ
© primeNumber.Inc ·ͱΊɾॴײ • Aurora Reader ʹ͛ͨΫΤϦ͕ΫϥελશମʹӨڹΛ༩͑ಘΔ ◦ RollbackSegmentHistoryListLength
ͷ૿େʹΑΔϦιʔεফඅɾύϑΥʔϚϯεԼͳͲ • ࣌ؒͷτϥϯβΫγϣϯ͕ආ͚ΒΕͳ͍߹ҎԼͷରԠΛೖΕͯΈΔ ◦ Ϋϥελ͝ͱͯ͠ Reader ʹ͛ͯͨΫΤϦΛͦͬͪʹ͛Δ ◦ MySQL ϨϕϧΛREAD COMMITTEDʹ͢Δ • AWS Support ͪΌΜͱ׆༻͖͢ ◦ ʮΒͳ͍͜ͱΛΒͳ͍ʯྖҬʹ͍ͭͯฦΛ͘ΕΔ 25
© primeNumber.Inc ࢀߟ • Amazon Aurora ϦʔυϨϓϦΧͷ࠶ىಈʹؔ͢ΔτϥϒϧγϡʔςΟϯά ◦ > ૿େԽ͕ਐΉ
History List Length (HLL) ΛௐΔ (Aurora MySQL - ޓ) • Chasing a Hung MySQL Transaction: InnoDB History Length Strikes Back - Percona Database Performance Blog • Aurora MySQL DB ΫϥελʔͰͷ͍ SELECT ΫΤϦͷτϥϒϧγϡʔςΟϯά 26