Amazon RDS を目的のバージョンへアップグレードできない

2021.03.08

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

Aurora MySQL をバージョンアップしようとしましたが、RDSコンソールのクラスター変更画面で、目的のバージョンがプルダウンに表示されません。

AWS CLI でもエラーとなります。どうしたらバージョンアップできますか?

$ aws rds modify-db-cluster --db-cluster-identifier mydatabase --engine-version 5.7.mysql_aurora.2.07.2 --apply-immediately
An error occurred (InvalidParameterCombination) when calling the ModifyDBCluster operation: Cannot upgrade aurora-mysql from 5.7.mysql_aurora.2.04.4 to 5.7.mysql_aurora.2.07.2

どう対応すればいいの?

RDS ではあるバージョンからバージョンアップが可能なアップグレードパスがあり、それは describe-db-engine-versions コマンドで確認できます。

$ aws rds describe-db-engine-versions --engine aurora-mysql --engine-version 5.7.mysql_aurora.2.04.4 | grep -A 200 "ValidUpgradeTarget"|grep "EngineVersion"
                    "EngineVersion": "5.7.mysql_aurora.2.04.5",
                    "EngineVersion": "5.7.mysql_aurora.2.04.6",
                    "EngineVersion": "5.7.mysql_aurora.2.04.7",
                    "EngineVersion": "5.7.mysql_aurora.2.04.8",
                    "EngineVersion": "5.7.mysql_aurora.2.04.9",
                    "EngineVersion": "5.7.mysql_aurora.2.05.0",
                    "EngineVersion": "5.7.mysql_aurora.2.05.1",
                    "EngineVersion": "5.7.mysql_aurora.2.06.0",
                    "EngineVersion": "5.7.mysql_aurora.2.07.1",
                    "EngineVersion": "5.7.mysql_aurora.2.07.1",
                    "EngineVersion": "5.7.mysql_aurora.2.08.0",
                    "EngineVersion": "5.7.mysql_aurora.2.08.1",
                    "EngineVersion": "5.7.mysql_aurora.2.08.2",
                    "EngineVersion": "5.7.mysql_aurora.2.08.3",
                    "EngineVersion": "5.7.mysql_aurora.2.09.0",
                    "EngineVersion": "5.7.mysql_aurora.2.09.1",
                    "EngineVersion": "5.7.mysql_aurora.2.09.2",

この例だと 5.7.mysql_aurora.2.07.2 が表示されず、2.04.4 から直接アップグレードすることができないことが確認できます。(2021/03/02時点)

では、どうすればアップグレードできるのか?ですが、 目的のバージョンにアップグレード可能なバージョンを経由してアップグレードしてください。 例の場合だと、2.04.5 等へ一度アップグレードすることで、2.07.2 へのアップグレードが可能となります。

なお、これは Aurora だけでなく、RDS for PostgreSQL などでも同様です。 目的のバージョンが出てこないときは、一度上記の方法で確認してみてください。

参考資料

describe-db-engine-versions — AWS CLI 1.18.64 Command Reference

Amazon RDS を PostgreSQLのメジャーバージョンとマイナーバージョンにアップグレードするためのベストプラクティス