使用 cloudformation 创建的 AWS 中手动更新的堆栈将来会导致冲突吗?
will a manually updated stack in AWS that was created with cloudformation cause conflicts in the future?
我正在使用 cloudformation deploy/update 一些堆栈,包括 RDS。目前我成功创建了我的数据库,我想更新端口,因为我设置了错误的端口。
阅读我遇到的文档,通过 cloudformation 更新它,我必须重命名堆栈才能更新端口,因此它只会使用新端口创建一个新的 RDS 实例并销毁旧的,这意味着我必须先创建一个备份,然后再恢复它。
我读到从 AWS 控制台“手动”更新端口不会那样做,应该不会发生数据丢失,到目前为止我还没有尝试过。
因此,例如:
我部署的 cloudformation 如下:
cloudformation 模板 -> 端口 123
已部署堆栈 -> 端口 123
我需要更新到234端口
那么我的 cloudformation 仍然会知道最新的部署发生在端口 123
已部署堆栈 -> 234(通过 aws 控制台更新)
我的问题如下:在这种情况下,我可以通过 AWS 控制台更新端口,cloudformation 模板会发生什么情况?我应该将模板更新为具有端口 234 还是应该将其保留为端口 123 以便它不会尝试进行更新? (这会导致我在模板中的内容与实际部署的内容不一致,但我想知道是否可行)
我对所有 vpc、安全组、规则等都没有问题,基本上只是端口问题。
对此有什么想法吗?
在 AWS 控制台(或 CLI、SDK)之外手动修改由 CFN 创建的资源是一种不好的做法,会导致 stack drift. The drift can lead to future issues; from docs:
Regardless, changes made outside of CloudFormation can complicate stack update or deletion operations.
专门回答你的问题:
In the case, I am able to update the port via AWS Console, what will happen with the cloudformation template?
本身不会发生任何事情。 CFN 本身不会知道在 CFN 之外对您的 RDS 所做的任何更改。但是您的堆栈将被视为 漂移 ,正如 AWS 文档所写,这可能会导致问题。因此最好避免这种情况。
should I update the template to have port 234 or I should leave it with port 123 so it wont try to make an update?
是的,如果你想避免漂移。但是通过 CFN 更新端口将导致 替换 您的数据库实例和数据丢失。因此,您必须采取一切预防措施。最好是创建一些虚拟 RDS 数据库,并对其进行测试-运行 以了解更改其端口的过程和后果。
我正在使用 cloudformation deploy/update 一些堆栈,包括 RDS。目前我成功创建了我的数据库,我想更新端口,因为我设置了错误的端口。
阅读我遇到的文档,通过 cloudformation 更新它,我必须重命名堆栈才能更新端口,因此它只会使用新端口创建一个新的 RDS 实例并销毁旧的,这意味着我必须先创建一个备份,然后再恢复它。
我读到从 AWS 控制台“手动”更新端口不会那样做,应该不会发生数据丢失,到目前为止我还没有尝试过。
因此,例如:
我部署的 cloudformation 如下:
cloudformation 模板 -> 端口 123 已部署堆栈 -> 端口 123
我需要更新到234端口
那么我的 cloudformation 仍然会知道最新的部署发生在端口 123 已部署堆栈 -> 234(通过 aws 控制台更新)
我的问题如下:在这种情况下,我可以通过 AWS 控制台更新端口,cloudformation 模板会发生什么情况?我应该将模板更新为具有端口 234 还是应该将其保留为端口 123 以便它不会尝试进行更新? (这会导致我在模板中的内容与实际部署的内容不一致,但我想知道是否可行)
我对所有 vpc、安全组、规则等都没有问题,基本上只是端口问题。
对此有什么想法吗?
在 AWS 控制台(或 CLI、SDK)之外手动修改由 CFN 创建的资源是一种不好的做法,会导致 stack drift. The drift can lead to future issues; from docs:
Regardless, changes made outside of CloudFormation can complicate stack update or deletion operations.
专门回答你的问题:
In the case, I am able to update the port via AWS Console, what will happen with the cloudformation template?
本身不会发生任何事情。 CFN 本身不会知道在 CFN 之外对您的 RDS 所做的任何更改。但是您的堆栈将被视为 漂移 ,正如 AWS 文档所写,这可能会导致问题。因此最好避免这种情况。
should I update the template to have port 234 or I should leave it with port 123 so it wont try to make an update?
是的,如果你想避免漂移。但是通过 CFN 更新端口将导致 替换 您的数据库实例和数据丢失。因此,您必须采取一切预防措施。最好是创建一些虚拟 RDS 数据库,并对其进行测试-运行 以了解更改其端口的过程和后果。