---
title: Aurora MySQL v1→v3の移行（調査・計画編）
tags:  #aws #jaws-ug #aurora #移行 #バージョンアップ #mysql  
author: [hmatsu47(まつ)](https://convert.docswell.com/user/hmatsu47)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/V9E2QD237R.jpg?width=480
description: JAWS-UG 浜松 AWS 勉強会 2022#4 2022/4/29
published: April 29, 22
canonical: https://convert.docswell.com/s/hmatsu47/5M96XZ-2022-04-29-123545
---
# Page. 1

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

Aurora MySQL v1 → v3 の移行
（調査・計画編）
JAWS-UG 浜松 AWS 勉強会 2022#4 2022/4/29
まつひさ（hmatsu47）


# Page. 2

![Page Image](https://bcdn.docswell.com/page/5D7YW2Y8JM.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/2VEN98P9E8.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/GY792K33E3.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/5G785RML7D.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/ML7LYK3QJR.jpg)

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


# Page. 7

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

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


# Page. 8

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

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


# Page. 9

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

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


# Page. 10

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

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


# Page. 11

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

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


# Page. 12

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

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


# Page. 13

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

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


# Page. 14

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

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


# Page. 15

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

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


# Page. 16

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

こんなイメージ
16


# Page. 17

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

こんなイメージ
17


# Page. 18

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

こんなイメージ
18


# Page. 19

![Page Image](https://bcdn.docswell.com/page/8G7WKPW672.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
19


