AWSのMySQLバージョンアップ対応

AWSよりMySQLサポート終了に関する通知が来たため、MySQLバージョンアップ対応を実施しました。
備忘録として作業手順を残します。

Amazon RDS for MySQL のマイナーバージョン 8.0.31、8.0.29、8.0.28 は 2024 年 3 月 29 日に標準サポートが終了します。
・・・
マイナーバージョン 8.0.31、8.0.29、8.0.28 を実行している RDS for MySQL データベースを 2024 年 3 月 29 日より前に 8.0.35 以降にアップグレードすることをお勧めします。

作業内容

以下の作業内容に沿ってバージョンアップを実施しました。

  1. 事前調査
  2. バージョンアップ手順書作成
  3. 検証
  4. バージョンアップ実施

事前調査

事前調査では、以下を実施しました。

  • バージョンの確認
  • バージョンアップ対象がサポートされているか確認
  • 対象バージョンでの変更内容調査
バージョンの確認

調査した結果、現行バージョンと最新のバージョンは以下のようになっておりました。※2024/5/7時点

現行バージョン:8.0.28
最新バージョン:8.0.36

バージョンアップ対象がサポートされているか確認

AWSのお知らせより、最新バージョンの8.0.36はサポートされていることが分かりました。

Amazon Relational Database Service (Amazon RDS) for MySQLが、MySQL マイナーバージョン 8.0.36 のサポートを開始しました。これに伴い、最新のマイナーバージョンにアップグレードすることをお勧めします。MySQL の旧バージョンにおける既知のセキュリティ脆弱性を修正できるほか、MySQL コミュニティが追加したバグ修正、パフォーマンス改善、新機能が利用可能になります。

対象バージョンでの変更内容調査

MySQLドキュメントを参考に、現行バージョンからバージョンアップ対象の変更内容を確認しました。
特に各バージョンでの「互換性のない変更」の箇所を確認し、変数名の変更や、古い変数の廃止、新変数の導入があるかを調査しました。
確認した結果、8.0.28から8.0.36では対象システムに影響のある変更はなく、ソースやテストシナリオ(今回はSeleniumを使用)の修正も不要と判断しました。

バージョンアップ手順書作成

まず、MySQLバージョンアップ方法を調査した結果、以下の3パターンがありました。

  1. ブルーグリーン:本番バージョン(Blue環境)と新バージョン(Green環境)の2つを用意し、新バージョンでテスト実施後に接続先を切り替える
  2. スケジューリング:次回メンテナンス時に自動で実行
  3. 即時適用:手動でバージョンアップ対応を即時実施

今回は以下の理由より、2の「スケジューリング」にて次回メンテナンス時に自動で実行される方法で進めました。

  • マイナーバージョンアップであり、ソースの修正等もないこと
  • 期限に余裕があり、即時実行する必要がないこと

次に、上記にて決定したバージョンアップ方法の手順書を作成しました。
手順は以下の通りです。

1.Amazon RDS コンソールを開き、ナビゲーションペインで、[データベース] を選択し、アップグレードする DB インスタンスを選択

2.[変更]を選択

3.[DBエンジンバージョン] で、新しいバージョンを選択

4.[次へ] を選択して、変更の概要を確認し、問題なければ[DBインスタンスを変更]を押下

検証

以下の検証を実施しました。

  • 手順書に沿ってSTG環境にてMySQLバージョンアップが実施できるか検証
  • ローカル、STG環境にてテストシナリオ(Selenium)を実施し、動作に問題ないか検証

バージョンアップ実施

本番環境にて以下の作業を実施しました。

  • 手順書に沿ってバージョンアップのスケジューリングを実施
  • メンテナンス終了後、正しくバージョンアップされているか確認

最後に

今回はマイナーバージョンアップだったため対象システムへの影響はそこまでありませんでした。
しかし、システムによって影響する変更箇所は異なる可能性があるので、対象バージョンでの変更内容調査は慎重に行うようにするべきかと思います。
今後メジャーバージョンアップ対応などを実施する際は、今回の手順を参考にしながら対象バージョンでの変更内容調査をより重点的に実施しようと思います。


--------------------------
システム開発のご要望・ご相談はこちらから

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です