amazon-web-services - AWS 中使用 cloudformation 创建的手动更新堆栈将来会导致冲突吗?

标签 amazon-web-services aws-cloudformation amazon-rds

我正在使用cloudformation来部署/更新一些堆栈,包括RDS。目前我成功创建了数据库,并且我想更新端口,因为我设置了错误的端口。

阅读我遇到的文档,通过cloudformation更新它,我必须重命名堆栈以便能够更新端口,因此它只会使用新端口创建一个新的RDS实例并销毁旧的实例,这意味着我必须先创建备份,然后再恢复它。

我读到从 AWS 控制台“手动”更新端口的行为不会发生这种情况,并且不会发生数据丢失,到目前为止我还没有尝试过。

例如:

我部署的cloudformation如下:

cloudformation 模板 -> 端口 123 已部署的堆栈 -> 端口 123

我需要将其更新到端口 234

然后我的cloudformation仍然会知道端口123发生的最新部署 已部署堆栈 -> 234(通过 aws 控制台更新)

我的问题如下:在这种情况下,我可以通过 AWS 控制台更新端口,cloudformation 模板会发生什么情况?我应该更新模板以使用端口 234 还是应该将其保留为端口 123,这样它就不会尝试进行更新? (这会导致模板中的内容与实际部署的内容不一致,但我想知道是否可行)

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement

我对所有 vpc、安全组、规则等都没有问题,它基本上只是端口。

对此有什么想法吗?

最佳答案

在 AWS 控制台(或 CLI、SDK)中手动修改 CFN 创建的资源是一种不好的做法,会导致 stack drift 。这种偏差可能会导致 future 的问题;来自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 数据库,并对其进行测试运行以了解更改其端口的过程和后果。

关于amazon-web-services - AWS 中使用 cloudformation 创建的手动更新堆栈将来会导致冲突吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65303349/

相关文章:

amazon-web-services - 使用 CloudFormation 和 AWS 控制台创建 ECS 集群时的不同行为

python - 使用 Boto3 配置文件覆盖 S3 端点

machine-learning - 可以将 Terraform 模板与 SageMaker ML Pipelines 结合使用吗?

python - 在 AWS Elastic Beanstalk 中将 Python 版本从 3.6 更改为 2.7

amazon-web-services - 如何处理在 AWS 上从 CloudFormation 模板创建失败的错误?

node.js - node-mysql2、AWS.RDS.signer 和连接池

mysql - Amazon RDS 中是否可以有 5 个以上的只读副本?

amazon-web-services - 我应该使用哪个数据存储来存储来自搜寻器的临时数据?

amazon-web-services - AWS CloudFormation:如何引用 AWS::IAM::Policy 内另一个堆栈中定义的角色

amazon-web-services - 在 Nginx 后面的 vpc 中运行的 AWS OpenSearch 不显示租户