我正在尝试了解可变与不可 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/