我目前需要为我的AWS RDS实例更新CA证书,据我所知,有两种方法可以做到这一点:通过修改数据库实例或通过应用数据库实例维护(来源:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html)。
我选择哪种方法有关系吗?在某些情况下,一种方法是否比另一种/更好?
我喜欢通过在测试环境中修改数据库实例来手动测试更新。然后,我确认所有依赖的软件,并确保一切正常。
然后在生产环境中,我让它在维护窗口更新期间进行修改。由于此更改需要重新启动,因此我可以在周日凌晨3点维护时段应用它。
因此,这两种方法都很方便,具体取决于您的需求。最终结果是相同的。
在两种方法中,RDS实例都需要重新启动(读作中断!)。
在我们的案例中,RDS客户端应用程序(基于Java)在与重新启动的RDS实例(在CA升级之后)重新建立JDBC / SSL连接时遇到了麻烦,因此我们必须手动触发RDS客户端应用程序的重新启动以使情况恢复正常。因此,我们需要确切地知道RDS CA升级的完成时间。
因此,工作流程如下:
1 /首先将CA(2019)添加到客户端应用程序的信任存储!2 /在RDS端,在较低的环境中使用“立即应用”选项(在生产环境中,我们也使用“立即应用”,但在批准的维护时段内执行了该操作)。3 /等待几分钟,以便AWS应用CA并重新启动RDS实例。4 /执行并执行后续操作,例如重新启动客户端应用程序(如果需要)和回归测试。
这样,我们可以将中断时间限制在几分钟之内。
警告:如果我们选择了“在维护时段内应用”选项,那么我们将不会“控制” AWS在什么时候升级RDS(CA),因为AWS可能会选择在此期间的任何时间点指定要执行升级的维护窗口,但不能保证它在维护窗口的开始。
希望这会有所帮助!