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
ToAurora.pdf
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
hmatsu47
PRO
December 01, 2018
Technology
95
0
Share
ToAurora.pdf
第25回 中国地方DB勉強会 in 鳥取(倉吉)LT
hmatsu47
PRO
December 01, 2018
More Decks by hmatsu47
See All by hmatsu47
名古屋城とデータセンター
hmatsu47
PRO
0
26
IPv6 に関する話
hmatsu47
PRO
0
18
さいきんの光ファイバーの話
hmatsu47
PRO
0
45
低いほうのレイヤを見てみる話
hmatsu47
PRO
0
21
IPv6 VPC の実装パターンをいくつか
hmatsu47
PRO
0
40
光ファイバーと IPv6 絡みの話
hmatsu47
PRO
0
54
AWS で試して学ぶ IPv6
hmatsu47
PRO
0
48
今年の MySQL/HeatWave ネタ登壇振り返り
hmatsu47
PRO
0
45
今年の DB ネタ登壇振り返り
hmatsu47
PRO
0
40
Other Decks in Technology
See All in Technology
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.5k
Diagnosing performance problems without the guesswork
elenatanasoiu
0
150
Javaで学ぶSOLID原則
negima
1
270
サイバーセキュリティ概論 / Introduction to Cybersecurity
ks91
PRO
0
130
関西に縁あるMicrosoft MVPsが語るCopilotの未来
kasada
0
1k
Ruby::Boxでできること、Refinementsでできること
joker1007
3
380
React、まだ楽しくて草
uhyo
7
3.9k
美味しいスイスチーズを作ろう🧀🐭
taigamikami
1
230
大学生が本気でDatabricksを活用してDiscordサークルをデータ駆動させてみた
phantomjuju
1
330
TypeScript Compiler APIとPHP-Parserを活用し、TypeScriptとPHPで型を共有する
shuta13
0
340
Mastering Ruby Box
tagomoris
3
140
Strands Agents超入門
kintotechdev
1
160
Featured
See All Featured
Context Engineering - Making Every Token Count
addyosmani
9
930
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
530
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
Producing Creativity
orderedlist
PRO
348
40k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
350
Claude Code のすすめ
schroneko
67
220k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
820
WENDY [Excerpt]
tessaabrams
11
38k
The SEO identity crisis: Don't let AI make you average
varn
0
480
Transcript
オンプレ MySQL から Aurora への移⾏ (要約版) @hmatsu47(まつひさ)
はじめに ⾃⼰紹介はありません 話す内容=個⼈の⾒解です 基本的に作業時点で確認した情報です(2017/6 〜 9) 詳細は Qiita にまとめています https://qiita.com/hmatsu47
https://hmatsu47.hatenablog.com/aurora
今⽇話す内容 移⾏前後の環境 データ移⾏ 性能問題 その他の制約(Failover 処理/バグ/未サポート機能)
移⾏前の環境 よくある 1 ラックの構成 VMware vSphere MySQL 5.5 × 2(メインは
1 台) データは 1TiB 未満(DB/ファイル) Webサーバ数台(Java 8/Tomcat 8)
移⾏後の環境 Web サーバは EC2 へ(東京 AZ-a と AZ-c に分散配置) Aurora
は db.r3.2xlarge がメイン(途中で db.r4 へ) ファイルは S3 へ
データ移⾏ DMS は使わず MySQL Replication で複製 お⾏儀の悪いデータ(0000-00-00 00:00:00)の存在 キャラクタセット︓UTF8MB4 ⾮サポート
タイムゾーン不⼀致問題(オンプレ側設定もれ) 「SYSTEM」が指す時刻︓JST(オンプレ)/UTC(Aurora) 対応策︓オンプレ側で明⽰的に JST(Asia/Tokyo) を設定 バグも踏む(後述)
性能問題 Connection Pooling の性能問題が発⽣ ピーク時クエリ数を捌けない AZ 内のネットワークレイテンシの影響 オンプレ⽐ 1.5 〜
2 倍のレイテンシ(移⾏当時) その後幾分改善(AWS の性能向上) AZ 間のネットワークレイテンシの影響 ms オーダーなので、DB データ書き込み時に必要な数の ACK が返るまでの時間がどうしても⻑くなる 改善策 1︓Java GC 時間の調整 改善策 2︓Connection Pooling ⼊れ替え︓DBCP2 → HikariCP ほかにバッチ処理の実⾏時間の延⻑問題も
その他の制約/Failover 処理 Aurora Failover で Writer 向けの Connection が Reader
に接続 してしまう 通常は MariaDB Connector/J で Failover 対応する MySQL Connector/J と挙動が違うので断念 Connecion Validation ⽤のストアドを作成して対応 Reader に接続したらエラー→ Connection Pooling 側で再 接続するように
その他の制約/バグと未サポート機能 バグ︓MySQL 5.6.10/MySQL 5.7.12 より後に Fix されたバグ のうち AWS が対処せず残したもの
例︓レプリケーションフィルタが使⽤されていると LAST_INSERT_ID が不正にレプリケートされる (バグ #69861) バージョン 1.17 で Fix (2018/3/13) 未サポート機能︓MySQL 5.6.10/MySQL 5.7.12 より後に実装 された機能の⼤半 例 1︓RANDOM_BYTES()/MySQL 5.6.17 でサポート 例 2︓MySQL 8.0 で実装された JSON 関数のバックポート /MySQL 5.7.22 でサポート
まとめ Aurora 固有の問題というより AWS 環境(複数 AZ による冗⻑ 化)にフィットさせるのに苦労した(レイテンシ問題) Aurora 固有の問題は、MySQL
で Fix or 追加実装された機能の 取り込みが追い付いていない点への対処がメインだった 「MySQL 5.x 互換」といってもベースのバージョンが 5.6.10 / 5.7.12 であることに注意(これ重要︕)
ありがとうございました