タダです.
数年ぶりに迫ってきた RDS と Aurora の SSL/TLS 接続で使用する証明書の入れ替えが東京リージョンは 2024/08/22 期限となっています.今回の証明書の入れ替えにあたって利用している Aurora で証明書入れ替え時に再起動が発生するのか,どの証明書のバージョンを使用しているのかを確認したのでこの記事にまとめてきます.
証明書の入れ替え時に再起動が発生する DB エンジンとバージョンの確認
まず,証明書の入れ替え時に再起動が発生する DB エンジンとバージョンの確認を行いました.確認結果からDBエンジンバージョンが 5.7.mysql_aurora.2.11.1
以下は再起動が入るが,5.7.mysql_aurora.2.11.1
以降 8.0
系は再起動が入らないことがわかりました( SupportsCertificateRotationWithoutRestart
の結果が true
なら再起動が発生せず, false
なら再起動が発生する)。
$ aws rds describe-db-engine-versions --engine aurora-mysql --include-all --region ap-northeast-1 | jq -r '.DBEngineVersions[] | (.EngineVersion,.SupportsCertificateRotationWithoutRestart,.SupportedCACertificateIdentifiers)' 5.7.12 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.02.3 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.03.2 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.03.3 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.03.4 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.04.0 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.04.1 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.04.2 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.04.3 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.04.4 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.04.5 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.04.6 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.04.7 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.04.8 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.04.9 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.05.0 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.06.0 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.07.0 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.07.1 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.07.2 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.07.3 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.07.4 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.07.5 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.07.6 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.07.7 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.07.8 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.07.9 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.07.10 false [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.08.0 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.08.1 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.08.2 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.08.3 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.08.3 false [] 5.7.mysql_aurora.2.08.4 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.09.0 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.09.1 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.09.2 false [ "rds-ca-2019", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.09.3 false [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.10.0 false [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.10.1 false [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.10.2 false [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.10.3 false [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.11.0 false [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.11.1 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.11.2 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.11.3 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.11.4 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.11.4 false [] 5.7.mysql_aurora.2.11.5 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.12.0 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.12.1 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 5.7.mysql_aurora.2.12.2 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 8.0.mysql_aurora.3.01.0 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 8.0.mysql_aurora.3.01.1 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 8.0.mysql_aurora.3.02.0 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 8.0.mysql_aurora.3.02.1 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 8.0.mysql_aurora.3.02.2 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 8.0.mysql_aurora.3.02.3 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 8.0.mysql_aurora.3.03.0 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 8.0.mysql_aurora.3.03.1 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 8.0.mysql_aurora.3.03.2 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 8.0.mysql_aurora.3.03.3 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 8.0.mysql_aurora.3.04.0 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 8.0.mysql_aurora.3.04.1 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 8.0.mysql_aurora.3.04.2 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 8.0.mysql_aurora.3.05.0 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 8.0.mysql_aurora.3.05.1 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 8.0.mysql_aurora.3.05.2 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 8.0.mysql_aurora.3.06.0 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 8.0.mysql_aurora.3.06.1 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ] 8.0.mysql_aurora.3.07.0 true [ "rds-ca-2019", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1", "rds-ca-rsa2048-g1" ]
次に,利用している DB エンジンバージョンが 5.7系で 5.7.mysql_aurora.2.11.1
以降になっているかを確認してみました.幸いにして利用しているバージョンは 5.7.mysql_aurora.2.11.5
になっていたので証明書入れ替え時に再起動が発生しない状況でした.
$ aws rds describe-db-clusters --query "DBClusters[?starts_with(EngineVersion, '5.7')].[DBClusterIdentifier, EngineVersion]" --output json [ [ "hoge", "5.7.mysql_aurora.2.11.5" ], [ "fuga", "5.7.mysql_aurora.2.11.5" ] ]
利用している Aurora がどの証明書のバージョンを使用しているのかの確認
最後に,Aurora の中でどのクラスターで証明書入れ替えを行う rds-ca-2019
を利用しているかを確認をしました.Aurora クラスターとインスタンス,DB エンジンバージョン,証明書のバージョンを一覧で確認できるようにしています.
$ aws rds describe-db-instances --query 'DBInstances[?CACertificateIdentifier==`rds-ca-2019`].[DBInstanceIdentifier, DBClusterIdentifier, EngineVersion, CACertificateIdentifier]' --output table -------------------------------------------------------------------------------------------------------------------- | DescribeDBInstances | +------------------------------------+-----------------------------------+--------------------------+--------------+ | hoge-writer-instances | hoge | 5.7.mysql_aurora.2.11.5 | rds-ca-2019 | | hoge-reader-instances | hoge | 5.7.mysql_aurora.2.11.5 | rds-ca-2019 | | fuga-writer-instances | fuga | 5.7.mysql_aurora.2.11.5 | rds-ca-2019 | | fuga-reader-instances | fuga | 5.7.mysql_aurora.2.11.5 | rds-ca-2019 | +------------------------------------+-----------------------------------+--------------------------+--------------+
まとめ
RDS と Aurora の SSL/TLS 接続で使用する証明書の入れ替え作業にあたって,証明書入れ替え時に再起動が発生する化どうかの確認と作業対象の確認を行った際に使った AWS CLI コマンドをまとめました.