CloudFormation 是什么
AWS 原生 IaC;与 Terraform/CDK 对照。
30 分钟
CloudFormation 是什么
AWS CloudFormation(CFN) 是 AWS 原生的 Infrastructure as Code 服务:用 JSON/YAML 模板 描述 VPC、EC2、RDS 等资源,CloudFormation Stack 负责创建、更新与删除。与 terraform-essentials 同属 IaC,但 深度绑定 AWS API。
学习目标
- 说清 CFN 与 Console 点选、CLI 脚本的区别
- 理解 Stack 作为「部署单元」的概念
- 对照 /roadmaps/aws 与 aws-essentials 的服务认知
为什么学 CloudFormation
| 场景 | CFN 价值 |
|---|---|
| 纯 AWS 实验 | 控制台「创建 Stack」即可验证模板 |
| 理解 AWS 资源关系 | 模板显式声明 DependsOn、引用 |
| 读 CDK/SAM 产物 | 二者最终都 合成 CFN 模板 |
| 企业 AWS 账号 | 许多团队 StackSet / 合规基线仍用 CFN |
CodeRoadMap 生产部署路径 推荐 terraform-essentials + helm-gitops-essentials;本 track 用于 AWS 原生 IaC 补课,便于读懂官方示例与 CDK 输出。
核心工作流
编写 template.yaml → create-stack → Stack 按依赖序创建资源 → 记录物理 ID
更新模板 → create-change-set → 预览 diff → execute-change-set
与 Terraform 的 plan → apply 类似:声明期望状态,服务负责调谐。
CodeRoadMap 分层对照
Terraform 层(推荐) → VPC、RDS、EKS、IAM(见 tf-aws)
CloudFormation 层 → 同拓扑的 AWS 原生写法(本 track)
Helm/GitOps 层 → backend/platform Chart、Argo sync
先会用 aws-essentials 认服务,再用 CFN 声明 同一套资源,最后用 TF 固化 可多云复用的拓扑。
练习
- 在控制台搜索 CloudFormation,浏览一个示例 Stack 的「资源」页签
- 对照 tf-intro 的 IaC 痛点表,哪些 CFN 同样解决
- 列出 CodeRoadMap 组件:哪些你会用 TF,哪些仅 AWS 实验用 CFN