Skip to content
返回云服务

AWS CloudFormation IaC

原生基础设施即代码,JSON/YAML 模板、堆栈、漂移检测和嵌套堆栈。

AWS进阶

为什么

CloudFormation 免费(仅资源成本)且原生 — 无第三方依赖。漂移检测找手动变更。StackSets 跨账户部署。CDK 编译到 CFN。

何时使用

AWS 专用基础设施、漂移检测和避免第三方工具时用。复杂逻辑优先 CDK,多云用 Terraform。

如何做

1. 模板 — YAML/JSON,Resources/Parameters/Outputs/Mappings 2. 部署 — aws cloudformation deploy --template-file infra.yaml --stack-name prod 3. 漂移 — aws cloudformation detect-stack-drift,对比模板 4. 嵌套堆栈 — 拆大模板,AWS::CloudFormation::Stack 5. StackSets — 同模板部署到 N 账户/区域 6. 变更集 — 应用前预览变更 7. 删除策略 — 资源移除时 Retain/Snapshot/Delete 8. cfn-lint — 部署前验证模板语法/策略

示例

# 部署模板 aws cloudformation deploy \ --template-file infra.yaml \ --stack-name prod-web \ --parameter-overrides Env=prod DBPassword=${DB_PASS} \ --capabilities CAPABILITY_IAM # infra.yaml Resources: Bucket: Type: AWS::S3::Bucket Properties: BucketEncryption: ServerSideEncryptionConfiguration: - ServerSideEncryptionByDefault: { SSEAlgorithm: AES256 } BucketPolicy: Type: AWS::S3::BucketPolicy Properties: Bucket: !Ref Bucket PolicyDocument: Statement: - Effect: Deny Action: s3:* Principal: "*" Resource: !Sub "${Bucket}/*" Condition: { Bool: { "aws:SecureTransport": false } }

常见问题

  • ⚠ROLLBACK_FAILED — 手动变更阻塞删除,手动删卡住资源
  • ⚠默认无漂移检测 — 定期运行 detect-stack-drift
  • ⚠模板大小限 1MB — 大基础设施用嵌套堆栈或 CDK

最佳实践

  • ✓用 CDK 而非原始 YAML — TypeScript/Python、类型安全、抽象
  • ✓CI 中运行 cfn-lint — 部署前捕获语法/策略错误
  • ✓启用漂移检测 — 每周调度,漂移告警防手动变更

常见问题解答

什么是AWS CloudFormation IaC?它解决什么问题?

原生基础设施即代码,JSON/YAML 模板、堆栈、漂移检测和嵌套堆栈。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。

如何在 5 分钟内上手AWS CloudFormation IaC?

两步即可跑通:① 模板 — YAML/JSON,Resources/Parameters/Outputs/Mappings;② 部署 — aws cloudformation deploy --template-file infra.yaml --stack-name prod。建议先用免费套餐验证流程,再接入生产环境。

AWS CloudFormation IaC 最容易踩的坑是什么?

最高频的问题是:ROLLBACK_FAILED — 手动变更阻塞删除,手动删卡住资源。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。

AWS CloudFormation IaC 的最佳实践有哪些?

AWS CloudFormation IaC 的最佳实践包括:用 CDK 而非原始 YAML — TypeScript/Python、类型安全、抽象;CI 中运行 cfn-lint — 部署前捕获语法/策略错误;启用漂移检测 — 每周调度,漂移告警防手动变更。其中首条「用 CDK 而非原始 YAML — TypeScript/Python、类型安全、抽象」应作为团队默认规范写入 IaC 模板。

AWS CloudFormation IaC 如何控制成本与避免账单意外?

三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。AWS CloudFormation IaC 多数提供免费套餐,先在免费额度内验证再放量。