---
title: Aurora MySQL v1→v3の移行を準備する
tags:  #aws #aurora #移行 #バージョンアップ #mysql #jaws-ug  
author: [hmatsu47(まつ)](https://www.docswell.com/user/hmatsu47)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/2VJN9899J8.jpg?width=480
description: JAWS-UG 朝会 #32 2022/4/11
published: April 16, 22
canonical: https://www.docswell.com/s/hmatsu47/5J6D3Z-2022-04-16-172224
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/2VJN9899J8.jpg)

Aurora MySQL v1 → v3 の移行を準備する
JAWS-UG 朝会 #32 2022/4/11
まつひさ（hmatsu47）


# Page. 2

![Page Image](https://bcdn.docswell.com/page/GYE92K23J3.jpg)

自己紹介
松久裕保（@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


# Page. 3

![Page Image](https://bcdn.docswell.com/page/5GE85R5LED.jpg)

本日のネタ
● 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


# Page. 4

![Page Image](https://bcdn.docswell.com/page/MLELYKYQ7R.jpg)

Aurora MySQL v1 の EoL までの流れ
● 2022/9/27 : 新しいクラスタ・インスタンス作成停止
○ 以下は（EoL まで）実行可能
■
v1 スナップショットの復元
■
クラスタにリードレプリカ追加
■
インスタンス設定変更
■
ポイントインタイムリカバリ（PITR）
■
既存 v1 クラスタのクローン作成
● 2023/2/28 : EoL（予定）※時刻はいずれも 00:00:00 UTC
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/54JMN2DKEW.jpg)

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


# Page. 6

![Page Image](https://bcdn.docswell.com/page/ZPJRDM46E9.jpg)

Aurora MySQL v3 への移行、という選択
● ベースは MySQL の最新バージョン、8.0 に
● 他の RDBMS と遜色ないレベルの SQL 文をサポート
○ MySQL は「軽い SQL 文を高速に実行」が売りだった
○ その分複雑な処理は苦手→バージョンを重ねるごとに改善
● 性能向上
○ 並列処理性能が向上
○ インデックスのないテーブル結合の高速化（ハッシュ結合）
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/NPEX1V2DEX.jpg)

ただし、v1 からの移行には難しさも
● v2 以降に廃止・変更された機能がある
○ AWS 公式 Aurora MySQL 関連ドキュメント
● リリースモデルの変更がある
○ Continuous Delivery Model（継続提供モデル）を採用
● 移行パスや移行条件に制限がある
○ v3 へのインプレースアップグレード不可、など
● コードが大きく書き換えられている
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/63EK2QMDJD.jpg)

移行の難しさ①廃止・変更された機能がある
● クエリキャッシュ廃止
○ 便利だけど並列処理の妨げに→本家 MySQL 8.0 で廃止
● 古い暗号化関数の廃止
○ 時代の流れ（脆弱な暗号を使い続けるの、ダメ！）
● MySQL 独自文法の廃止
○ 例 : GRANT 文でユーザ作成と権限の割り当てを一度に済ませる
● GIS 機能リニューアルによる非互換 などなど
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/4L734PYPJ5.jpg)

移行の難しさ②リリースモデルの変更がある
● コミュニティ版 MySQL 8.0 のリリースモデル変更
○ Continuous Delivery Model（継続提供モデル）を採用
○ マイナーバージョンアップで機能が追加・変更・削除される
● Aurora MySQL v3 も本家に追従する予定
○ 初期リリースの 3.01.0 : MySQL 8.0.23 互換
■
LTS （長期サポートバージョン）ではない
■
今後のマイナーバージョンで LTS 提供予定
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/V87DQL53JG.jpg)

リリースモデル変更による影響
● 予約語の追加（継続的に発生）
○ 新機能に関するキーワードが予約語化（RANK など）
○ テーブル名やカラム名などとのバッティングで不具合の可能性
● 挙動が変更される機能・SQL 文の存在（同上）
○ 例 : GROUP BY 〜 ASC/DESC および暗黙ソート廃止（8.0.13）
■
これは MySQL ユーザにはよく使われているので影響範囲が大きい
■
特に ASC を指定しない暗黙ソートは無意識に使っていることが多い
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/4VJPL2GP78.jpg)

移行の難しさ③移行パスや移行条件に制約がある
● v1 → v3 は直接アップグレードできない
○ クローンなどで一旦 v2 へ
● v2 → v3 クローン・インプレースアップグレード未提供
○ v2 → v3 は今のところスナップショットからの復元一択
○ 現状では Global Database を v3 に移行するのが困難
● バックトラック使用中のクラスタは NG
● Aurora Serverless v1 は非サポート
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/L2EVQD6V7Q.jpg)

移行の難しさ④コードが大きく書き換えられている
● SQL 文の仕様が同じでも内部処理が違うと…
○ 同じ SQL 文を実行しているのに思わぬ性能低下の可能性が
● 実は MySQL 5.6 → 5.7 でもそこそこ変更が入っている
○ まれに旧バージョンより遅くなるSQL 文があったり
● MySQL 8.0 では、それ以上に変更が入っている
○ Aurora MySQL v3 でも同様の問題が生じる可能性あり
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/Z57GWYN1JL.jpg)

参考 : SQL 文を実行するときの流れ
構文解析
パーサ・リライタ
実行計画
実行
オプティマイザ
エグゼキュータ
・ハンドラ
● v3 ではそれぞれに変更が入った
● 実行計画のバリエーションが増えた結果、
■
ORDER BY する前のデータの並び順が変わる
■
効率の悪い実行計画が選択される→遅くなることも
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/V4EQ3MQNEP.jpg)

結局のところ、
● 事前調査は大事
○ ノールックでいきなり移行するのは危険
● 設定やアプリケーション変更の必要性
○ ほぼ発生するものとみたほうが良い
● 動作検証や性能検証が必要
● 移行パスや手順を確認した上で計画を立てる必要がある
14


# Page. 15

![Page Image](https://bcdn.docswell.com/page/DKJ41VN3J1.jpg)

そこで、必要な情報を Zenn で本にまとめてみた
https://zenn.dev/hmatsu47/books/aurora-mysql3-plan-book
15


# Page. 16

![Page Image](https://bcdn.docswell.com/page/PLE1G35Z7G.jpg)

ポイント
● 変更点をできるだけ集約
○ AWS 公式 Aurora MySQL 関連ドキュメント
○ Oracle 公式 MySQL 関連ドキュメント
○ その他ブログなど
● その中で、特に注意が必要な点をピックアップ
● あわせて、移行計画に必要なステップや情報を解説
16


# Page. 17

![Page Image](https://bcdn.docswell.com/page/8GEWKP56E2.jpg)

こんなイメージ
17


# Page. 18

![Page Image](https://bcdn.docswell.com/page/W47ZZKNR73.jpg)

こんなイメージ
18


# Page. 19

![Page Image](https://bcdn.docswell.com/page/KYJ6ZQ81JV.jpg)

こんなイメージ
19


# Page. 20

![Page Image](https://bcdn.docswell.com/page/5GJ5WR9LE4.jpg)

まとめ
● 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
20


