初めまして。違いを作る会社エム・エー・ディーの田中です。
来年1月の RDS MySQL 5.7 系サポート終了に伴い、対応に追われている企業様・ご担当者様も多いのではないでしょうか?
本記事では、エム・エー・ディー社内の基本対応方針を記します。
バージョンやサイトによって細かな差異はありますが、参考になりましたら幸いです。
※文中に登場する日付は、最速で対応が必要な 5.7.37 ~ 5.7.42 に関してです。記述の煩雑さを避けるため、また早い対応がより良いため、統一して記述しています。
対応方針
▼推奨する対応
(A) 期日までに MySQL 8.0 系へアップグレード対応する
▼暫定的対応
(B) 有償サポートを利用する
(A) 期日までに MySQL 8.0 系へアップグレード対応する
(A-1) メリット/デメリット
メリット
- 3年後までにはアップグレード対応が必要である
- アップグレードは検証作業が主であるため、12月 から着手すれば間に合う想定
- SQL の構文の修正が対応内容のメインであるため
- 特に EC-CUBE4 系の場合、SQL 構文を直接書いている箇所が少ないため1
- SQL 実行速度の改善が期待できる
- MySQL 8.0 にアップグレードするのみで、既存の実装のままでパフォーマンスの改善する可能性がある
- MySQL 8.0 で追加になる SQL 構文で、既存の SQL 処理をチューニングできる場合がある (ただし、今回のアップグレード対応はあくまで MySQL 8.0 での動作保証が優先であるため、今回の対応では行うべきではない)
デメリット
- アップグレードや検証、修正の対応工数・費用が必要
- カスタマイズ量に応じて対応の軽重が異なる1
- 検証作業に労力を割く必要がある
- アップグレード実施時に、再起動に伴う10分~15分ほどサイトへのアクセス不可時間が発生する
(A-2) 対応内容
アップグレード実施前準備
▼スナップショット (バックアップ) 作成
- 5.7 系でとったスナップショットがあれば、8.0 系へアップグレード後に、スナップショットを用いて 5.7 系へ切り戻しが可能
- 1月16日 の強制アップグレード後に切り戻しを行った場合、同じく自動アップグレードの対象となる
- アップグレードを実行するメンテナンスは、利用者都合である程度延期が可能
- メンテナンスの延期は、2024年2月16日 まで可能
▼設定の確認
- アップグレードに伴い、MySQL の設定が 5.7 系用から 8.0 系用へ変更となる箇所がある
- MySQL 8.0 のパラメータグループ ( MySQL 設定) の作成が必要
アップグレード
- アップグレードによる再起動で、10~15分のアクセス不可時間が生じる
- アップグレード後、EC-CUBE3 系および 4 系では、EC-CUBE 内のキャッシュクリアが必要になる可能性あり
検証
▼検証の観点
- データ更新系 ( INSERT , UPDATE ) には基本的に影響なし
- 登録や変更の動作検証は軽めで良い
- データ参照系に問題が出る可能性が高い
- 検索機能、並び替え機能を重点的に動作検証する必要あり
- カスタマイズを行っている場合は、カスタマイズ箇所の検証に要注意
▼検証方法
- 8.0 系で利用不可となる SQL 構文の使用箇所を重点的に動作確認
- 問題が発生した場合、
- PHP のログにエラー内容を出力するよう設定
- どの SQL 構文を利用できなくなったかを PHP のログから確認
- 8.0 系で利用可能な SQL 構文に修正
▼補記
- EC-CUBE4 系以降は、デフォルトが MySQL 8.0 系
- EC-CUBE4 系では、SQL 構文を直接書く箇所が少ないため、カスタマイズ箇所での利用不可 SQL 構文の使用状況を確認する
- EC-CUBE2 系にて、MySQL 8.0 系へのアップグレードでエラー箇所が少なかった例もあるため、3 系以下で必ずしも対応が複雑になるとは限らない
(A-3) クライアントとの協議事項
- 検証環境を新たに準備するのか、現存する開発環境を割り当てるのか
- 【最善策】新たに検証環境を準備する
- ローカル環境でも検証可能だが、実環境での検証を推奨
- 検証中は、他の開発を止めるのか、他の開発も並行して実施するのか
- 【最善策】現存する開発環境を検証環境に割り当てる場合、他の開発を止める
- RDS 再起動に伴う、サイトアクセス停止日時の決定
- 2024年2月15日 までの任意の日にちを選択可能2
(A-4) 特筆すべき注意点
- 切り戻した場合を含み、2024年2月16日 までにアップグレード未実施の場合、2024年2月16日 には 8.0 系へ自動アップグレードを実施する
【参考】MySQL 8.0 系へのアップグレードに伴う要対応事例
MySQL 8.0 への移行が完了しました ~さようなら全ての MySQL 5.7~
補記
- RDS ではデフォルトのユーザー認証方式は mysql_native_password のままであるため、特別な対応は不要3
(B) 有償サポートを利用する
(B-1) メリット/デメリット
メリット
- 2024年1月16日 ~ 2024年2月16日 の期間中に瞬断することなく、サービスを稼働し続けられる
- 最長3年間は従来環境の利用が可能
デメリット
- 有償
- 有償サポートの利用可能期間は、メジャーエンジンバージョンの RDS 標準サポート終了日 ( 2023年12月 ) から最大3年間4
- サポート期間中にアップグレードを行わなかった場合、サポート終了とともに自動アップグレードを実施
- 有償サポートの対象は MySQL 5.7.44 のみ4
- その他のバージョンを利用している場合、5.7.44 への変更対応が必要
(B-2) 対応内容
- 2024年1月16日 までに、延長サポートのオプトイン2
(B-3) クライアントとの協議事項
- アップグレード対応にかかる費用と有償サポートの料金を比較した上で、有償サポートの料金が許容可能か
- 有償サポートはあくまで暫定的措置であり、3年後にはアップグレードが必須である旨を承諾可能か
- 2026年12月 までのどの時期に、アップグレードを実施するか
(B-4) 特筆すべき注意点
- PJ によって料金差があるため、具体的な金額については調査が必要5
参考サイト・注釈
MySQL 8.0 への移行が完了しました ~さようなら全ての MySQL 5.7~