RDS アップグレード時の「Current Option Group (xxxxxxxxx) is non-default.」エラーの解消法
この記事は アノテーション株式会社 AWS Technical Support Advent Calendar 2023 | Advent Calendar 2023 - Qiita 18日目の記事です。
困っていること
RDS for MySQL を 5.7 から 8.0 にアップグレードしたいのですが、以下のようなエラーが出て、できません。どうしたらいいですか?
パラメータグループのエラー
申し訳ありません。DB インスタンス xxxxxxxxx の変更のリクエストが失敗しました。 Current Parameter Group (xxxxxxxxx) is non-default. You need to explicitly specify a new Parameter Group in this case (default or custom)
オプショングループのエラー
申し訳ありません。DB インスタンス xxxxxxxxx の変更のリクエストが失敗しました。 Current Option Group (xxxxxxxxx) is non-default. You need to explicitly specify a new Option Group in this case (default or custom)
どう対応すればいいの?
エラーメッセージにある通り、アップグレード先バージョンのカスタムまたはデフォルトのグループを指定(無ければ新規作成)した上で、再度アップグレードをお試しください。事象が改善する可能性があります。
DB インスタンスがカスタム DB パラメータグループに関連付けられている場合は、新しいメジャーバージョンと互換性のある既存の設定で新しい DB パラメータグループを作成します。その新しい DB パラメータグループをテストインスタンスのアップグレード時に指定することで、アップグレードのテストでインスタンスが正常に機能することを確認できます。
やってみた
以下、RDS for MySQL 5.7.37 の DB インスタンスがあります。パラメータグループおよびオプショングループはカスタムのものを使用しています。
バージョン 8.0.35 にアップグレードしようとすると、前述のパラメータグループのエラーが発生します。
確認すると、元々のパラメータグループには、カスタム、デフォルト共に MySQL 5.7 のものしか無かったため、以下のようにアップグレード先の MySQL 8.0 のカスタムパラメータグループを新規作成します。
新規作成したアップグレード先のカスタムパラメータグループを指定した上で、アップグレードを実行します。すると、今度はパラメータグループのエラーではなく、オプショングループのエラーが発生しました。
確認すると、オプショングループも MySQL 5.7 のものしかありませんでした。
そのため、以下のようにバージョン 8.0 用のオプショングループも新規作成します。余談ですが、カスタムオプショングループを作成すると、デフォルトのオプショングループも自動で新規作成されます。
新規作成したカスタムオプショングループを指定した上で、再びアップグレードしてみます。今回はエラーが出ません。
無事バージョン 8.0.35 へアップグレードできました。