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
770
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
570
地域 SRE コミュニティ最前線 - ホンマでっかSRE勉強会
tk3fftk
0
620
どこまでゆるくて許されるのか
tk3fftk
0
910
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
6
1.6k
TROCCOで始めるクラウドコストを民主化するためのFinOps
tk3fftk
3
910
障害対応のRunbookは作った、でも本当に動くの? AWS FIS で EKS の AZ 障害を再現してみた
tk3fftk
1
280
AWSの資格って役に立つの?
tk3fftk
2
570
ヘルシーSRE
tk3fftk
2
480
セキュアなAI活用のためのLiteLLMの可能性
tk3fftk
5
3.4k
Other Decks in Technology
See All in Technology
Benchmarking Disaggregated Serving on vLLM + Dynamo with a Real Coding-Agent Workload
nttcom
0
130
Classmethod Company Deck
satoshi7
0
200
Cognition AI Japan - ウェビナー2_テストQA_運用監視
cogakira
0
140
ai_cording_with_k8s_knowledge.pdf
mochizuki875
1
350
スキマバイトという雇用形態は存在しないので、雇用期間1日のアルバイト契約を事業者とワーカーが結ぶ手続きを支えるのがタイミーなんです
akitoshiga
0
180
Rustuna: Rustによる高速なOptuna実装
pfn
PRO
0
150
TinyGoでオブザーバビリティ?OpenTelemetryはTinyGoで使えるのか / Is OpenTelemetry available in TinyGo environment?
ymotongpoo
2
140
パッチ更新でterraform initが落ちた日
grimoh
1
130
夫婦で子育てするための育児標準化
codmoninc
PRO
0
210
JAWSUG TOHOKU 青森支部 「LoGoチャット」のAWS移行で 乗り越えたこと
taketakekaho
0
240
事業活動を AI Ready にする攻めと守りのデータエンジニアリング / data-engineering-for-ai-ready-business
pei0804
7
2.7k
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
900
Featured
See All Featured
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
260
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Navigating Weather and Climate Data
rabernat
0
550
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
480
Technical Leadership for Architectural Decision Making
baasie
3
600
Git: the NoSQL Database
bkeepers
PRO
433
67k
Done Done
chrislema
187
17k
Building the Perfect Custom Keyboard
takai
2
900
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.3k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Building an army of robots
kneath
307
47k
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