Terraform 与 CloudFormation 的差异与选择

结论先行

Terraform 是多云 IaC,HCL + provider 生态,需要自管 state;CloudFormation 是 AWS 原生 IaC,状态由 AWS 托管,和 AWS 资源同步最及时。多云/多 provider 选 Terraform,纯 AWS 且希望托管状态选 CloudFormation。

核心差异

维度 Terraform CloudFormation
范围 多云、多 provider AWS 原生
语言 HCL YAML/JSON
状态 自管 backend/state AWS 托管
回滚 依赖 state/代码 栈回滚
漂移检测 plan/refresh drift detection
生态 Provider/Module 丰富 AWS 资源覆盖最快
学习曲线 中等 中等(AWS 概念多)

怎么选

注意

terraform plan -out=tfplan
terraform apply tfplan
aws cloudformation deploy --template-file template.yaml --stack-name app

相关命令