You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AWS CloudFormation部署双AZ公私VPC及栈回滚问题排查

架构合理性说明

你描述的「公网7层负载均衡转发流量到私有子网Fargate实例、私有子网通过NAT网关访问公网」确实是AWS上非常通用的无服务器Web服务标准架构,符合安全和高可用最佳实践,架构本身没有问题。

快速定位栈回滚原因的方法

CloudFormation栈创建失败回滚时,所有错误都会被记录在事件日志中,你可以通过以下两种方式快速定位:

  • 控制台查询:打开AWS CloudFormation控制台,找到dev-network栈,进入「事件」标签,按时间倒序排序,找到状态为CREATE_FAILED的条目,对应的「状态原因」会直接给出失败的具体原因。
  • CLI查询:执行以下命令直接筛选失败事件:
aws cloudformation describe-stack-events --stack-name dev-network --query 'StackEvents[?ResourceStatus==`CREATE_FAILED`]'

你当前模板的问题及修复

你提供的模板存在HTML转义字符错误,在NoIngressSecurityGroup资源的属性定义中:

GroupName: "no-ingress-sg"
GroupDescription: "Security group with no ingress rule"

"是HTML格式的双引号转义编码,CloudFormation的YAML解析器无法识别该转义,会将"直接作为字符串的一部分处理,而EC2安全组的名称不允许包含&这类特殊字符,直接触发资源创建失败,进而导致整栈回滚。
修复方案:将两处"替换为正常的双引号,或者直接去掉引号(YAML中纯字符串不需要额外加引号)即可:

NoIngressSecurityGroup:
  Type: AWS::EC2::SecurityGroup
  Properties:
    GroupName: "no-ingress-sg"
    GroupDescription: "Security group with no ingress rule"
    VpcId: !Ref VPC

模板优化建议

  • 成本优化:如果业务对AZ级容灾要求不高,可以只保留1个NAT网关,同时关联两个私有子网的路由表,可降低一半的NAT网关使用成本。
  • 标签优化:给NAT网关、EIP资源也增加Name和Env标签,方便后续资源分类管理。
  • 体验优化:可添加AWS::CloudFormation::Interface配置,在控制台部署时将参数按类别分组展示,操作更友好。

内容的提问来源于stack exchange,提问作者Zazaeil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 12:27:03