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
Aurora MySQL v1 → v3 の移行(調査・計画編)
Search
hmatsu47
PRO
April 29, 2022
Technology
0
2.5k
Aurora MySQL v1 → v3 の移行(調査・計画編)
JAWS-UG 浜松 AWS 勉強会 2022#4 2022/4/29
hmatsu47
PRO
April 29, 2022
Tweet
Share
More Decks by hmatsu47
See All by hmatsu47
Aurora DSQL のトランザクション(スナップショット分離と OCC)
hmatsu47
PRO
0
7
いろんなところに居る Amazon Q(Developer)を使い分けてみた
hmatsu47
PRO
0
24
ゲームで体感!Aurora DSQL の OCC(楽観的同時実行制御)
hmatsu47
PRO
0
20
PostgreSQL+pgvector で GraphRAG に挑戦 & pgvectorscale 0.7.x アップデート
hmatsu47
PRO
0
47
LlamaIndex の Property Graph Index を PostgreSQL 上に構築してデータ構造を見てみる
hmatsu47
PRO
0
17
PostgreSQL+pgvector で LlamaIndex の Property Graph Index を試す(序章)
hmatsu47
PRO
0
19
HeatWave on AWS という選択肢を検討してみる
hmatsu47
PRO
0
16
HeatWave on AWS のインバウンドレプリケーションで HeatWave エンジン有効時のレプリケーションラグを確認してみた!
hmatsu47
PRO
0
26
CloudWatch Database Insights 関連アップデート
hmatsu47
PRO
0
61
Other Decks in Technology
See All in Technology
Azure SynapseからAzure Databricksへ 移行してわかった新時代のコスト問題!?
databricksjapan
0
140
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
5.4k
生成AIとM5Stack / M5 Japan Tour 2025 Autumn 東京
you
PRO
0
220
Findy Team+のSOC2取得までの道のり
rvirus0817
0
350
Goに育てられ開発者向けセキュリティ事業を立ち上げた僕が今向き合う、AI × セキュリティの最前線 / Go Conference 2025
flatt_security
0
350
PLaMoの事後学習を支える技術 / PFN LLMセミナー
pfn
PRO
9
3.9k
SoccerNet GSRの紹介と技術応用:選手視点映像を提供するサッカー作戦盤ツール
mixi_engineers
PRO
1
180
職種別ミートアップで社内から盛り上げる アウトプット文化の醸成と関係強化/ #DevRelKaigi
nishiuma
2
140
実装で解き明かす並行処理の歴史
zozotech
PRO
1
420
Access-what? why and how, A11Y for All - Nordic.js 2025
gdomiciano
1
110
[2025-09-30] Databricks Genie を利用した分析基盤とデータモデリングの IVRy の現在地
wxyzzz
0
480
生成AI_その前_に_マルチクラウド時代の信頼できるデータを支えるSnowflakeメタデータ活用術.pdf
cm_mikami
0
120
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
Six Lessons from altMBA
skipperchong
28
4k
The Cost Of JavaScript in 2023
addyosmani
53
9k
The Straight Up "How To Draw Better" Workshop
denniskardys
237
140k
How to train your dragon (web standard)
notwaldorf
96
6.3k
A better future with KSS
kneath
239
17k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
45
2.5k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Into the Great Unknown - MozCon
thekraken
40
2.1k
Transcript
Aurora MySQL v1 → v3 の移行 (調査・計画編) JAWS-UG 浜松 AWS
勉強会 2022#4 2022/4/29 まつひさ(hmatsu47)
自己紹介 松久裕保(@hmatsu47) • https://qiita.com/hmatsu47 名古屋で Web インフラのお守り係をしています 以前 MySQL 8.0
の薄い本を作って配っていました ◦ Qiita の記事: https://qiita.com/hmatsu47/items/ceb75caf46e3c761095d ◦ GitHub リポジトリの他、印刷版を BOOTH で配布していました ◦ 2021/5 発行の 8.0.24 対応版を最後に更新停止しました https://note.com/hmatsu47/n/n3ad586c31dce 2
本日のネタ • Aurora MySQL v1(5.6 互換)の EoL が発表 ◦ https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Aurora.
MySQL56.EOL.html • 2023/2/28 までに v2 または v3 へ移行が必要 • せっかく移行するなら v3 へ • v3 移行に必要な情報を集めて Zenn で本にまとめた …という話 3
Aurora MySQL v1 の EoL までの流れ • 2022/9/27 : 新しいクラスタ・インスタンス作成停止
◦ 以下は(EoL まで)実行可能 ▪ v1 スナップショットの復元 ▪ クラスタにリードレプリカ追加 ▪ インスタンス設定変更 ▪ ポイントインタイムリカバリ(PITR) ▪ 既存 v1 クラスタのクローン作成 • 2023/2/28 : EoL(予定)※時刻はいずれも 00:00:00 UTC 4
Aurora MySQL v2 の EoL はどうなる? • Amazon Aurora メジャーバージョンが利用可能な期間
◦ https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Aurora.V ersionPolicy.html#Aurora.VersionPolicy.MajorVersionLifetime ▪ 現時点の予定 : 2024/2/29 ▪ 延長される可能性はある • 本家 MySQL 5.7 の EoL : 2023/10/21 ◦ https://endoflife.software/applications/databases/mysql ▪ あと 1 年半後 5
Aurora MySQL v3 への移行、という選択 • ベースは MySQL の最新バージョン、8.0 に •
他の RDBMS と遜色ないレベルの SQL 文をサポート ◦ MySQL は「軽い SQL 文を高速に実行」が売りだった ◦ その分複雑な処理は苦手→バージョンを重ねるごとに改善 • 性能向上 ◦ 並列処理性能が向上 ◦ インデックスのないテーブル結合の高速化(ハッシュ結合) 6
ただし、v1 からの移行には難しさも • v2 以降に廃止・変更された機能がある ◦ AWS 公式 Aurora MySQL
関連ドキュメント • リリースモデルの変更がある ◦ Continuous Delivery Model(継続提供モデル)を採用 • 移行パスや移行条件に制限がある ◦ v3 へのインプレースアップグレード不可、など • コードが大きく書き換えられている 7
移行の難しさ①廃止・変更された機能がある • クエリキャッシュ廃止 ◦ 便利だけど並列処理の妨げに→本家 MySQL 8.0 で廃止 • 古い暗号化関数の廃止
◦ 時代の流れ(脆弱な暗号を使い続けるの、ダメ!) • MySQL 独自文法の廃止 ◦ 例 : GRANT 文でユーザ作成と権限の割り当てを一度に済ませる • GIS 機能リニューアルによる非互換 などなど 8
移行の難しさ②リリースモデルの変更がある • コミュニティ版 MySQL 8.0 のリリースモデル変更 ◦ Continuous Delivery Model(継続提供モデル)を採用
◦ マイナーバージョンアップで機能が追加・変更・削除される • Aurora MySQL v3 も本家に追従する予定 ◦ 現行最新リリースの 3.02.0 : MySQL 8.0.23 互換 ▪ LTS (長期サポートバージョン)ではない ▪ 今後のマイナーバージョンで LTS 提供予定 9
リリースモデル変更による影響 • 予約語の追加(継続的に発生) ◦ 新機能に関するキーワードが予約語化(RANK など) ◦ テーブル名やカラム名などとのバッティングで不具合の可能性 • 挙動が変更される機能・SQL
文の存在(同上) ◦ 例 : GROUP BY 〜 ASC/DESC および暗黙ソート廃止(8.0.13) ▪ これは MySQL ユーザにはよく使われているので影響範囲が大きい ▪ 特に暗黙ソートは無意識に使っていることが多い 10
移行の難しさ③移行パスや移行条件に制約がある • v1 → v3 は直接アップグレードできない ◦ クローンなどで一旦 v2 へ
• v2 → v3 クローン・インプレースアップグレード未提供 ◦ v2 → v3 は今のところスナップショットからの復元一択 ◦ 現状では Global Database を v3 に移行するのが困難 • バックトラック使用中のクラスタは NG • Aurora Serverless v1 は非サポート(v2 でサポート) 11
移行の難しさ④コードが大きく書き換えられている • SQL 文の仕様が同じでも内部処理が違うと… ◦ 同じ SQL 文を実行しているのに思わぬ性能低下の可能性が • 実は
MySQL 5.6 → 5.7 でもそこそこ変更が入っている ◦ まれに旧バージョンより遅くなるSQL 文があったり • MySQL 8.0 では、それ以上に変更が入っている ◦ Aurora MySQL v3 でも同様の問題が生じる可能性あり ▪ GROUP BY でなくても「主キー順」を期待した SQL 文のソート順が変わる 12
結局のところ、 • 事前調査は大事 ◦ ノールックでいきなり移行するのは危険 • 設定やアプリケーション変更の必要性 ◦ ほぼ発生するものとみたほうが良い •
動作検証や性能検証が必要 • 移行パスや手順を確認した上で計画を立てる必要がある 13
そこで、必要な情報を Zenn で本にまとめてみた https://zenn.dev/hmatsu47/books/aurora-mysql3-plan-book 14
ポイント • 変更点をできるだけ集約 ◦ AWS 公式 Aurora MySQL 関連ドキュメント ◦
Oracle 公式 MySQL 関連ドキュメント ◦ その他ブログなど • その中で、特に注意が必要な点をピックアップ • あわせて、移行計画に必要なステップや情報を解説 15
こんなイメージ 16
こんなイメージ 17
こんなイメージ 18
まとめ • Aurora MySQL v1 は 2023/2/28 EoL 予定 ◦
v2 の EoL も意外と早く来るかも • v1 → v3 の移行には気を付ける点が多くある ◦ v1 → v2 より非互換が多い、リリースモデルが変わった、など • v1 → v3 移行に必要な情報をまとめてみた ◦ Zenn で本を公開中 ◦ https://zenn.dev/hmatsu47/books/aurora-mysql3-plan-book 19