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
88
ToAurora.pdf
第25回 中国地方DB勉強会 in 鳥取(倉吉)LT
hmatsu47
PRO
December 01, 2018
Tweet
Share
More Decks by hmatsu47
See All by hmatsu47
Aurora DSQL のトランザクション(スナップショット分離と OCC)
hmatsu47
PRO
0
5
いろんなところに居る Amazon Q(Developer)を使い分けてみた
hmatsu47
PRO
0
24
ゲームで体感!Aurora DSQL の OCC(楽観的同時実行制御)
hmatsu47
PRO
0
13
PostgreSQL+pgvector で GraphRAG に挑戦 & pgvectorscale 0.7.x アップデート
hmatsu47
PRO
0
34
LlamaIndex の Property Graph Index を PostgreSQL 上に構築してデータ構造を見てみる
hmatsu47
PRO
0
17
PostgreSQL+pgvector で LlamaIndex の Property Graph Index を試す(序章)
hmatsu47
PRO
0
17
HeatWave on AWS という選択肢を検討してみる
hmatsu47
PRO
0
14
HeatWave on AWS のインバウンドレプリケーションで HeatWave エンジン有効時のレプリケーションラグを確認してみた!
hmatsu47
PRO
0
23
CloudWatch Database Insights 関連アップデート
hmatsu47
PRO
0
58
Other Decks in Technology
See All in Technology
EncryptedSharedPreferences が deprecated になっちゃった!どうしよう! / Oh no! EncryptedSharedPreferences has been deprecated! What should I do?
yanzm
0
490
ブロックテーマ時代における、テーマの CSS について考える Toro_Unit / 2025.09.13 @ Shinshu WordPress Meetup
torounit
0
130
Django's GeneratedField by example - DjangoCon US 2025
pauloxnet
0
160
初めてAWSを使うときのセキュリティ覚書〜初心者支部編〜
cmusudakeisuke
1
280
Webアプリケーションにオブザーバビリティを実装するRust入門ガイド
nwiizo
7
890
はじめてのOSS開発からみえたGo言語の強み
shibukazu
3
990
Claude Code でアプリ開発をオートパイロットにするためのTips集 Zennの場合 / Claude Code Tips in Zenn
wadayusuke
5
1.8k
人工衛星のファームウェアをRustで書く理由
koba789
15
8.3k
KotlinConf 2025_イベントレポート
sony
1
140
S3アクセス制御の設計ポイント
tommy0124
3
210
Rustから学ぶ 非同期処理の仕組み
skanehira
1
150
Bedrock で検索エージェントを再現しようとした話
ny7760
1
110
Featured
See All Featured
Code Review Best Practice
trishagee
71
19k
How to train your dragon (web standard)
notwaldorf
96
6.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
3k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Typedesign – Prime Four
hannesfritz
42
2.8k
We Have a Design System, Now What?
morganepeng
53
7.8k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
How to Think Like a Performance Engineer
csswizardry
26
1.9k
Raft: Consensus for Rubyists
vanstee
140
7.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
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 であることに注意(これ重要︕)
ありがとうございました