AWSのAmazon RDSのSSL/TSL 証明書の期限が近づき更新するようアナウンスがあり、 2020/03/06 に切れるためその前に対応が必要でした。 更新にはオペレーションが必要なため、備忘録も兼ね手順を残します。
AWSのアナウンスについて
Classmethodさんの記事が分かり易いので引用させて頂きます。
- 2020年2月5日: 新CA証明書への強制アップデートについての通知が送付される予定日
- 2020年2月5日〜3月5日: メンテナンスウィンドウ準拠で新CA証明書へのアップデートが実施される予定。 新CA証明書適用が実施されると短時間のダウンタイムが発生する
- 2020年3月5日: 現行のCA証明書の利用期限日。現行のCA証明書は利用できなくなり、アップデートがこの日までに実施されていなかった場合は強制アップデートが発生する( ダウンタイム発生 )。新しいCA証明書を持っていないアプリケーションはこの日以降SSL/TLS通信が不可能になる
更新には今すぐ更新と次のメンテナンスで更新かを選べます。
詳しくは、公式かDevelopers.IOを参照してください。
SSL/TSL 証明書の期限の確認
データベースの「接続とセキュリティ」タブで証明書の期限を確認できます。
今回の対象はrds-ca-2015
で以下のように認証機関の項に載っています。
証明書を更新する
証明書更新が必要なデータベースがある場合、左メニューの「Certificate update」に通知があり、 それをクリックすると更新のメニューが開きます。
更新したいDBを選択して、即時更新したい場合は「今すぐ更新」を選択。
チェックをして「今すぐ適用」をクリックすると証明書が更新されます。
更新が完了すると認証機関と証明書の日付が新しくなりました。
更新に伴うダウンタイムについて
証明書の更新には再起動がかかるためダウンタイムが生じます。
個人的に3回実行したのでかかった時間をまとめました。
インスタンス | DB | AZ | 再起動にかかった時間 |
---|---|---|---|
db.t3.small | MySQL 5.6.41 | Single AZ | 11秒 |
db.t3.2xlarge | MySQL 5.6.41 | Single AZ | 12秒 |
db.t2.small | Oracle Standard Edition Two | Single AZ | 不明? |
- フェイルオーバーも特になく
再起動にかかった時間 = ダウンタイム
となっていました。 - 再起動にかかった時間は10秒程でインスタンスクラスの差はほぼなさそう
- アベイラビリティゾーン(AZ)がmultiの場合でも差はないそうです(Developers.IOより)
- 再起動にかかった時間は最近のイベントに
shutdown
restarted
のログが出るためそこで確認。- Oracleはそのログがないため不明としている。(更新してから認証機関を見に行くと既に新しくなっていたため、体感10秒以内に完了している)
- コンソールでの手順はMySQLとOracleで違いはありませんでした。
次の証明書の期限は2024/08/23 までです。 次回も半年ぐらい前には通知が来ると思うので早めに対応したい。
CloudFrontが期待した動作をしないときに確認する症例集
AWSCloudFrontschedule2019-07-30
EC2のインスタンスを停止しても勝手に新しくインスタンスが起動する
AWSschedule2019-06-26