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
terraform — Terraformaws cloudformation — CloudFormationaws-cdk — 编程式生成 CloudFormation