schedule2020-02-14

Amazon RDSのSSL/TSL 証明書を更新する

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より

更新には今すぐ更新と次のメンテナンスで更新かを選べます。

詳しくは、公式Developers.IOを参照してください。

SSL/TSL 証明書の期限の確認

データベースの「接続とセキュリティ」タブで証明書の期限を確認できます。 今回の対象はrds-ca-2015で以下のように認証機関の項に載っています。

ssl

証明書を更新する

証明書更新が必要なデータベースがある場合、左メニューの「Certificate update」に通知があり、 それをクリックすると更新のメニューが開きます。

ssl

更新したいDBを選択して、即時更新したい場合は「今すぐ更新」を選択。

ssl

チェックをして「今すぐ適用」をクリックすると証明書が更新されます。

ssl

更新が完了すると認証機関と証明書の日付が新しくなりました。

更新に伴うダウンタイムについて

証明書の更新には再起動がかかるためダウンタイムが生じます。

個人的に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 までです。 次回も半年ぐらい前には通知が来ると思うので早めに対応したい。