amazon-web-services - AWS Cloudformation - 基础设施是可变的还是不可变的?

标签 amazon-web-services aws-cloudformation

我正在尝试了解可变与不可 rebase 础设施,并想知道 cloudformation 提供哪一种。 当云信息堆栈更新时,它遵循哪种范式,不可变的还是可变的基础设施?

每个 aws 资源都有一组属性,其中一些属性可以在不中断的情况下进行更新,而另一些属性则需要替换更新的资源。例如对于 ALB,如果方案(公共(public)与内部)发生更改,则会创建新的 ALB,但如果更新附加的安全组,则更新不会造成任何中断。那么在这种情况下更改安全组,不是可变的基础设施吗?

最佳答案

基本上我所知道的所有 IaC 工具都会尝试更新资源属性而不是替换整个资源。通常,设置更新是否需要替换是由正在使用的底层 API 设置的限制。如果没有用于“更新”的 API(如 ALB 方案的情况),则实现更改的唯一真正方法是创建新资源。

所以从这个意义上说,它会尽可能地尝试“可变”。如果不能,则必须创建新资源。

编辑:根据下面评论中的讨论,关于不可 rebase 础设施的一些额外信息:

当人们谈论不可 rebase 础设施时,他们主要指的是应用程序层。在经典的三层模型(负载均衡器、应用程序层、数据层)中,不变性主要涉及应用程序层。现在所有其他服务都在 AWS 中管理,因此您无法登录它们并进行任何更改。如果您使用 EC2 或 ECS 或 EKS 等容器的自动缩放组,通常就没有问题。它们被旋转起来,一旦旋转起来,它们就不会再改变。它们不包含状态,因此可以毫无问题地丢弃并重新创建它们。换句话说,拥有不可变的基础设施与当今的无状态应用程序层密切相关。

关于amazon-web-services - AWS Cloudformation - 基础设施是可变的还是不可变的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69140280/

相关文章:

amazon-web-services - AWS : how to use transform cloudformation function in YAML database name

amazon-dynamodb - 如何在 CloudFormation 中使用基础设施即代码实现 DynamoDB 全局二级索引

python - 每秒低 InnoDB 写入 - 使用 Python 的 AWS EC2 到 MySQL RDS

amazon-web-services - 无法在 CDK 中使用来自 AWS CustomResource 的响应(通过 AwsSdkCall)

amazon-web-services - AWS Stepfunctions 结果路径 - 附加到 JSON 而不是嵌套

amazon-web-services - 如何通过 aws-cdk 将自定义指标和警报添加到 AWS Lambda 函数

amazon-web-services - Cloudformation 中的 Bash 脚本

amazon-web-services - 启用 UFW 后通过 SSH 返回到 AWS Lightsail

amazon-web-services - 使用 AWS 请求签名访问 ES 有问题

aws-cloudformation - 更新 AWS Glue 表时是否可以自动更新分区元数据