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
hmatsu47
PRO
December 01, 2018
Technology
0
83
ToAurora.pdf
第25回 中国地方DB勉強会 in 鳥取(倉吉)LT
hmatsu47
PRO
December 01, 2018
Tweet
Share
More Decks by hmatsu47
See All by hmatsu47
Claude 3.5 で Haiku
hmatsu47
PRO
0
8
HeatWave on AWS の PrivateLink インバウンドレプリケーションで Aurora フェイルオーバーに追従する
hmatsu47
PRO
0
8
大吉祥寺.pm の LT で ChatGPT の力を借りて Next.js App Router ベースの投句箱を作って、 Lambda Web Adapter を使って公開した話
hmatsu47
PRO
0
8
ある日突然 DB の性能が 1/2(サイズのインスタンス相当)になった話
hmatsu47
PRO
0
31
pgvectorscale と pgai の話(ざっくり)
hmatsu47
PRO
0
49
pgvector 0.7.0 の新機能と、これから来る(かもしれない)pgvectorscale
hmatsu47
PRO
0
35
大人の社会科見学 ~ NTT 技術史料館に行ってみよう!
hmatsu47
PRO
0
420
pgvector 0.6.0 以降の進化についてざっくり取り上げてみる
hmatsu47
PRO
0
64
Cloudflare Workes からMySQL 系 DB への接続事情(2024/4 現在)
hmatsu47
PRO
0
130
Other Decks in Technology
See All in Technology
【Pycon mini 東海 2024】Google Colaboratoryで試すVLM
kazuhitotakahashi
2
540
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
『Firebase Dynamic Links終了に備える』 FlutterアプリでのAdjust導入とDeeplink最適化
techiro
0
140
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
310
ISUCONに強くなるかもしれない日々の過ごしかた/Findy ISUCON 2024-11-14
fujiwara3
8
880
EventHub Startup CTO of the year 2024 ピッチ資料
eventhub
0
120
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
2
1.7k
FlutterアプリにおけるSLI/SLOを用いたユーザー体験の可視化と計測基盤構築
ostk0069
0
100
インフラとバックエンドとフロントエンドをくまなく調べて遅いアプリを早くした件
tubone24
1
430
これまでの計測・開発・デプロイ方法全部見せます! / Findy ISUCON 2024-11-14
tohutohu
3
370
AGIについてChatGPTに聞いてみた
blueb
0
130
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
300
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Site-Speed That Sticks
csswizardry
0
28
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
16
2.1k
We Have a Design System, Now What?
morganepeng
50
7.2k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
RailsConf 2023
tenderlove
29
900
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Keith and Marios Guide to Fast Websites
keithpitt
409
22k
[RailsConf 2023] Rails as a piece of cake
palkan
52
4.9k
Building Your Own Lightsaber
phodgson
103
6.1k
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 であることに注意(これ重要︕)
ありがとうございました