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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
tk3fftk
December 22, 2022
Technology
760
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
520
地域 SRE コミュニティ最前線 - ホンマでっかSRE勉強会
tk3fftk
0
580
どこまでゆるくて許されるのか
tk3fftk
0
850
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
6
1.6k
TROCCOで始めるクラウドコストを民主化するためのFinOps
tk3fftk
3
890
障害対応のRunbookは作った、でも本当に動くの? AWS FIS で EKS の AZ 障害を再現してみた
tk3fftk
1
270
AWSの資格って役に立つの?
tk3fftk
2
560
ヘルシーSRE
tk3fftk
2
470
セキュアなAI活用のためのLiteLLMの可能性
tk3fftk
5
3.4k
Other Decks in Technology
See All in Technology
SREでアラート疲れを 解決しよう!
kairim0
1
120
AI 時代の Azure エンジニアリング ~ 私たちは何を磨き、何を任せるのか ~
chack411
1
390
形式手法を使って仕様をコーディングしよう
mikanichinose
0
170
あなたの知らないAmazon VPC Route Server/Amazon VPC Route Server you don't know about
masakiokuda
2
210
ビジネスを止めない技術的負債の返済のための戦略とその手法 - 技術的負債と向き合う / Complexity and Simplicity
soudai
PRO
3
510
React Nativeでの OTA Updateって、 どう説明する?
ichiki1023
0
140
【Findyテック文化祭ワークショップ】新卒エンジニア&採用担当と作る、 なりたい姿と今やるべき一歩
dip_tech
PRO
0
150
OpenClawでAzure DevOpsのWiki更新を自動化する - クラウドAIだけでは届かない場所へ
yutakaosada
0
150
OSC2026on_the-world-is-waiting-for-your-voice.pdf
naruoga
0
320
おそらく日本で唯一のDevRelインターン生として
husengs7
0
150
AIに攻撃される前に、AIに攻撃させる
tsuchikazu
0
130
More Freedom on the Same Shared GPU Cluster: A Small Team’s Experience with vCluster
nttcom
0
110
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Faster Mobile Websites
deanohume
310
32k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
590
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
The untapped power of vector embeddings
frankvandijk
2
1.9k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
510
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
620
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