3

语境

我需要将生产 Aurora 无服务器数据库从 MySQL 5.6 升级到 5.7。我的所有资源都使用 CloudFormation 部署为基础架构即代码。

问题

在 CloudFormation 模板中更新引擎版本会导致数据库替换,从而导致停机和数据丢失。我也有很多依赖数据库 ARN 连接的依赖资源。(ARN 当前导出为跨堆栈引用)。

问题

从长远来看,实现这种维护的干净方法是什么?

提前致谢 !

4

1 回答 1

1

如果您查看任何 CloudFormation 文档,每个参数都将标有Update requires. 这将确定您的资源是否有明确的替换或有条件的替换(或根本没有)。

对于 Aurora Serverless 集群,文档中有许多参数会强制替换它。

您如何处理这取决于资源的重要性,请记住,即使从快照开始也会涉及潜在的停机时间,在此期间写入原始集群的任何数据也会丢失。

我个人建议考虑以下因素:

  • 你的系统可以在没有这个数据库的情况下运行一段时间吗?如果不是,那么您应该同时运行两个数据库。然后使用DMS之类的服务进行同步。一旦您满意,请执行切换。
  • 您的应用程序可以在只读模式下运行吗?如果是这样,请停止对原始数据库的写入,然后拍摄快照。创建新数据库作为附加资源并从快照启动。

我建议尝试将其创建为附加资源,因为与大多数丢失数据库的资源不同,如果它已被删除,则回滚可能不会那么简单。一旦你有信心,然后删除以前的数据库。

于 2020-08-04T13:00:45.863 回答