4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

EC-CUBEAdvent Calendar 2023

Day 12

RDS MySQL 標準サポート終了に伴う対応

Last updated at Posted at 2023-12-11

 初めまして。違いを作る会社エム・エー・ディーの田中です。
 来年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 ) には基本的に影響なし
    • 登録や変更の動作検証は軽めで良い
  • データ参照系に問題が出る可能性が高い
    • 検索機能、並び替え機能を重点的に動作検証する必要あり
  • カスタマイズを行っている場合は、カスタマイズ箇所の検証に要注意

▼検証方法

  1. 8.0 系で利用不可となる SQL 構文の使用箇所を重点的に動作確認
  2. 問題が発生した場合、
    • PHP のログにエラー内容を出力するよう設定
    • どの SQL 構文を利用できなくなったかを PHP のログから確認
  3. 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~

  1. EC-CUBE4 系では、SQL 構文の不使用がデフォルトであるため、カスタマイズ部分が主な検証箇所 2

  2. Amazon RDS for MySQL での MySQL 5.7 系の終了と延長サポートの取り扱いについて 2

  3. Amazon RDS for MySQL 8.0のデフォルト認証プラグインはmysql_native_password

  4. Using Amazon RDS Extended Support 2

  5. Amazon RDS for MySQL の料金>Amazon RDS 延長サポートのコスト

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?