はじめに
RDSのエンジンバージョンアップ作業を進める際、ルート証明書の期限切れエラーの影響で少しつまづいてしまったことがありました。
同じ状況でお困りの方に、本記事が少しでもお役に立てれば幸いです。
問題点
RDSのエンジンバージョンを8.0.34から8.0.41にバージョンアップをしようとしたところ
「 Certificate not found: rds-ca-2019」のエラーが発生し
バージョンアップすることができませんでした
前提
・現在設定されているルート証明書は「rds-ca-2019」※期限切れの状態
・RDSのエンジンバージョンは8.0.34
・作業の目的は「8.0.34」のエンジンバージョンを「8.0.41」にバージョンアップすること
原因
はじめにも記載していますが、原因は、ルート証明書を更新していなかったことにありました。
SSL/TLSを使用していなかったためルート証明書の更新を行っていませんでしたが、その影響で今回のバージョンアップ時に想定外の手間が発生してしまいました。
※落ち着いてエラー画面を見ると、RDSのバージョンアップなだけなはずなのに、証明書も一緒に更新されているのがわかります。
また8.0.41のバージョンに対応している証明書を確認しました。
aws rds describe-db-engine-versions --engine mysql --engine-version 8.0.41
~内容抜粋~
SUPPORTEDCACERTIFICATEIDENTIFIERS rds-ca-ecc384-g1
SUPPORTEDCACERTIFICATEIDENTIFIERS rds-ca-rsa4096-g1
SUPPORTEDCACERTIFICATEIDENTIFIERS rds-ca-rsa2048-g1
上記の出力からもエンジンバージョン「8.0.41」に「rds-ca-2019」のルート証明書は対応していない事がわかります。
解決方法
まずはルート証明書を更新して、その後バージョンアップを行う必要があることが分かりました。
そのため、以下の手順で作業を実施しました。
①ルート証明書を更新※今回は「rds-ca-rsa2048-g1」に変更します。
②エンジンバージョンアップ
以下が証明書の簡単な更新手順です。
1.AWS Management Console にサインインし、RDSを選択
2.対象のRDSを選択し、「変更」を押下※DB エンジンバージョンは変更しない
3.証明期間でデフォルト「rds-ca-rsa2048-g1」が選択されていることを確認
4.「続行」を押下
5.「すぐに適用」を選択し変更を押下
6.「接続とセキュリティ」タブの証明機関が「rds-ca-rsa2048-g1」となっていることを確認
※なお今回更新した「rds-ca-rsa2048-g1」は「40年間」有効なルート証明書になります。
ルート証明書を更新した後、RDSエンジンバージョンのバージョンアップ(8.0.34→8.0.41)作業を実施。
7.対象のRDSを選択し「変更」を押下
8.DB エンジンバージョンで「8.0.41」を選択
9.「続行」を押下
10.「すぐに適用」を選択し変更を押下
11.RDSのステータスが「アップグレード」になることを確認
12.ステータスが「利用可能」となることを確認
13.「設定」タブのエンジンバージョンが「8.0.41」となっていることを確認
これで無事本来の目的のRDSのバージョンアップ作業を行うことができました。
まとめ
今回の作業で手間取ってしまったのは、RDSのバージョンアップ作業と証明書の更新作業について、十分に内容を理解していなかったことが根本的な原因でした。
SSL/TLS通信を行っていなかったため、ルート証明書の更新が不要だと誤認していましたが、バージョンアップ時に予期しない手間が発生してしまいました。
この経験を通じて、証明書管理は期限内に更新するよう心がけ、同じような手間がかからないようにしていきたいと思います。
参考URL