Amazon RDS for MySQL 5.7 の 2024 年 2 月 29 日 の標準サポート終了に向けて

AWS

2023.11.7

Topics

はじめに

本記事では、「RDS for MySQL 5.7 標準サポート終了」に向けた案内や対策について記述します。

記述する内容は以下の通りです。

  • RDS for MySQL 5.7 標準サポート終了について
    • サポート終了の案内について 「詳細情報」 をまとめています
  • バージョンアップグレードについて
    • サポート終了の 「対策」 についてまとめています
  • 標準サポート終了日に間に合わない場合
    • バージョンアップグレードできない場合の 「延長サポート」 についてまとめています

RDS for MySQL 5.7 標準サポート終了について

MySQL コミュニティは 2023 年 10 月に MySQL 5.7 を非推奨にする予定であり、2023 年 10 月以降はセキュリティパッチが提供されません。
それに伴い、Amazon RDS は 2024 年 2 月 29 日に MySQL メジャーバージョン 5.7 の標準サポートを終了します。
2024 年 2 月に RDS の標準サポートが終了する前に、メジャーバージョン 5.7 を実行している RDS for MySQL をメジャーバージョン 8.0 にアップグレードすることをお勧めします。

MySQL のメジャーバージョン コミュニティのリリース日 コミュニティのサポート終了日 RDS の標準サポート終了日 RDS の延長サポート終了日
MySQL 8.0 2018 年 4 月 19 日 2026 年 4 月 2026 年 7 月 31 日 2029 年 7 月 31 日
MySQL 5.7 2015 年 10 月 21 日 2023 年 10 月 2024 年 2 月 29 日 2027 年 2 月 28 日

なお、現時点(2023 年 10 月 31 日)ではマイナーバージョンの標準サポート終了日についても別途日にちが設けられているためご注意下さい。

MySQL エンジンのバージョン RDS の標準サポート終了日
5.7.43 2024 年 2 月
5.7.42 2024 年 1 月 16 日
5.7.41 2024 年 1 月 16 日
5.7.40 2024 年 1 月 16 日
5.7.39 2024 年 1 月 16 日
5.7.38 2024 年 1 月 16 日
5.7.37 2024 年 1 月 16 日

※ドキュメントは更新されていないが、AWS アカウント宛に「Amazon RDS for MySQL のマイナーバージョン 5.7.37 から 5.7.42 は、2024 年 1 月 16 日に標準サポートが終了します」のお知らせが届いてる

Amazon RDS バージョンの MySQL – Amazon Relational Database Service

バージョンアップグレードについて

本セクションでは、バージョンアップグレードに関連する以下の情報を記述します。

  • MySQL 8.0 の情報
  • Blue/Green Deployments を使ったバージョンアップグレード

MySQL 8.0 の情報

まず初めに、アップグレード対象の 8.0 について記述します。

以下は 、MySQL コミュニティの 8.0 に関するリファレンスです。
すべてを見ると情報が多いため重要な部分だけに絞って解説します。

MySQL :: MySQL 8.0 Reference Manual :: 1.3 What Is New in MySQL 8.0
MySQL :: MySQL 8.0 Reference Manual :: 2.10.4 Changes in MySQL 8.0

MySQL 8.0 と MySQL 5.7 ではメインバージョンが異なるため、かなりの非互換性が含まれています。
アップグレード時に、これらの非互換性により問題が発生し、アップグレードが成功しない可能があります。
そのため、事前にこれらの非互換性について確認しておく必要があります。
以下は、非互換性の一覧です。

  • 廃止されたデータ型または関数を使用するテーブルがあってはなりません
  • 孤立した *.frm ファイルがあってはなりません
  • トリガーには、定義子が欠落しているか空であるか、または無効な作成コンテキストがあってはなりません
  • ネイティブパーティショニングサポートを持たないストレージエンジンを使用するパーティションテーブルがあってはなりません
  • キーワードまたは予約語違反があってはなりません
  • MySQL 5.7 mysql システム データベースには、MySQL 8.0 データ ディクショナリで使用されるテーブルと同じ名前のテーブルがあってはなりません
  • システム変数設定に古い SQL モードが定義されていてはなりません
  • 長さが 255 文字または 1020 バイトを超える個々の要素 ENUM または SET 列要素を持つテーブルまたはストアドプロシージャがあってはなりません
  • MySQL 8.0.13 以降にアップグレードする前に、共有 InnoDB テーブルスペースにテーブルパーティションが存在しないようにしてください
  • MySQL 8.0.12 以前のクエリやストアド プログラム定義で、GROUP BY 句に ASC または DESC 修飾子を使用するものがあってはなりません
  • MySQL 5.7 インストールでは、MySQL 8.0 でサポートされていない機能を使用してはなりません
  • 64 文字を超える外部キー制約名は使用できません
  • Unicode サポートを強化するには、utf8mb3 文字セットを使用するオブジェクトを utf8mb4 文字セットを使用するように変換することを検討してください

各項目の詳細については以下リファレンスをご覧ください。
MySQL :: MySQL 8.0 Reference Manual :: 2.10.5 Preparing Your Installation for Upgrade

なお、これらを一つ一つ確認するのは大変な作業のため、MySQL では「アップグレードチェッカー」が用意されております。
これを使うことで事前にアップグレードの準備ができているかを一挙に確認することができます。

詳細については以下リファレンスをご覧下さい。
MySQL :: MySQL Shell 8.0 :: 11.1 Upgrade Checker Utility

また、RDS でもアップグレード時にも、自動的に「アップグレードチェッカー」が実行されます。
そのため、本番機とは別の環境でインプレースアップグレードを行い、ログで「アップグレードチェッカー」の結果を確認する事ができます。

Amazon RDS for MySQL でのアップグレード前のチェックのエラーを解決する | AWS re:Post

事前に MySQL 8.0 のアップデート情報を確認し、アップグレードが問題なく完了することを確認します。

Blue/Green Deployments を使ったバージョンアップグレード

続いては、実施にアップグレードをする場合について解説します。
RDS では、いくつかアップグレードする方法がございますが、その中でも比較的簡単でダウンタイムも最小限に抑えれれる 「Blue/Green Deployments」 機能について軽くご紹介します。

Blue/Green Deployments の特徴

  • 本番環境が別の同期されたステージング環境にコピー
  • 本番環境に影響を与えることなくステージング環境のデータベースに変更(アップグレード)を加えることができます
  • ユーザーの任意のタイミングでステージング環境を新しい本番環境に昇格できます
  • ダウンタイムは通常 1 分未満

今まで、ユーザー側でレプリケーションを組んで行っていた作業を、RDS が全て提供してくれる機能となっております。

Blue/Green Deployments の手順

大まかな作業手順は以下の通りです。

  1. Blue/Green Deployments 環境構築
    1. Blue 環境と同期された Green 環境が自動作成されます
  2. DB エンジンのバージョンアップ
    1. Green 環境を作成後自動的にアップグレードされます
  3. Green 環境に対してアプリの動作確認を実施します
    1. Blue/Green Deployments 切り替え
  4. 準備が整ったら Blue 環境と Green 環境を切り替えます
  5. Blue/Green Deployments 環境削除
    1. 不要になった Blue 環境を削除します
    2. Blue/Green の連携は削除され Blue は独立するためユーザー側で削除を行わないと費用が発生し続けます

詳細な使い方については以下をご覧ください。

Amazon RDS ブルー/グリーンデプロイの概要 – Amazon Relational Database Service
Amazon Aurora MySQL で Blue/Green Deployments を使ったマイナーバージョンアップグレードの手順 | NHN テコラス Tech Blog | AWS、機械学習、IoT などの技術ブログ

標準サポート終了日に間に合わない場合

2023 年 9 月 1 日に、Amazon Aurora と Amazon RDS が MySQL および PostgreSQL データベースの「延長サポート」が発表されました。
これにより、 2024 年 3 月 1 日以降でも、RDS で MySQL 5.7 を使い続けることが可能です。

なお、延長サポートは対応が間に合わない場合の救済処置としてお考え下さい。
延長サポートはコストが追加で発生しますし、将来的には必ずアップグレード対応が必要なため可能な限り、この機会にアップグレードをご検討下さい。

延長サポートポイント

  • vCPU ごとに追加コストが発生
  • 標準サポート終了日より前にリリースされた最後のマイナー バージョンでのみ利用可能
  • 延長サポートをサポートするマイナー バージョンに自動的にアップグレードされる
  • National Vulnerability Database (NVD) CVSS 重大度評価で定義されている重大および高 CVE にパッチのみ適用

Amazon Aurora and Amazon RDS announces Extended Support for MySQL and PostgreSQL databases
Using Amazon RDS Extended Support – Amazon Relational Database Service
Introducing Amazon RDS Extended Support for MySQL databases on Amazon Aurora and Amazon RDS | AWS Database Blog

RDS 延長サポートのコスト

RDS 延長サポートのコストは、MySQL バージョン、AWS リージョン、およびそのバージョンの標準サポートが期限切れになってからの暦年数によって異なります。

リージョン 1 年目と 2 年目の料金(vCPU 時間あたり) 3 年目の料金(vCPU 時間あたり)
東京 $0.120 $0.240

その他のリージョンについては、以下ドキュメントをご確認ください。

Amazon RDS for MySQL の料金 – アマゾン ウェブ サービス

以下「db.r6g.large」を例として計算しています。

  • db.r6g.large
    • 1 時間あたりの料金:$0.255
    • vCPU: 2 vCPU
    • メモリ: 16 GiB
    • シングル AZ
日付 インスタンスコスト(月/720h) RDS 延長サポートコスト RDS 合計コスト
2024/02/29 183.6 USD 0 USD 183.6 USD
2024/03/01(1 年目,2 年目) 183.6 USD 172.8 USD 356.4USD
2026/03/01(3 年目) 183.6 USD 345.6 USD 529.2 USD

参考資料

20221222_25th_ISV_DiveDeepSeminar_RDS_BlueGreenDeployments.pdf
新機能 – Amazon Aurora と Amazon RDS でのフルマネージド型 Blue/Green Deployments | Amazon Web Services ブログ
データベース更新に Amazon RDS Blue/Green デプロイメントを使用する – Amazon Aurora
Amazon Aurora and Amazon RDS announces Extended Support for MySQL and PostgreSQL databases

Cold-Airflow

2021年新卒入社。インフラエンジニアです。RDBが三度の飯より好きです。 主にデータベースやAWSのサーバレスについて書く予定です。あと寒いのは苦手です。

Recommends

こちらもおすすめ

Special Topics

注目記事はこちら