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

CloudFormation创建EC2时报groupName与subnet参数不兼容错误如何解决

CloudFormation模板报错修复及优化方案

核心报错解决

你收到的The parameter groupName cannot be used with the parameter subnet报错,原因是在自定义VPC的子网中创建EC2实例时,错误使用了SecurityGroups属性:

  • SecurityGroups仅支持EC2经典网络、默认VPC下按安全组名称关联的场景
  • 当显式指定SubnetId(属于自定义VPC)时,必须使用SecurityGroupIds属性传入安全组ID

你需要修改两个EC2实例的配置,将SecurityGroups替换为SecurityGroupIds,修改示例如下:

EC2InstanceMule1:
  Type: AWS::EC2::Instance
  Properties:
    InstanceType: t2.micro
    ImageId: 
      Fn::FindInMap:
      - RegionMap
      - Ref: AWS::Region
      - AMI
    SubnetId:
        Ref: Subnet1
    # 把原来的SecurityGroups改为SecurityGroupIds
    SecurityGroupIds:
      - !GetAtt EC2SecurityGroup.GroupId
    KeyName: !Ref KeyName

EC2InstanceMule2做完全相同的修改即可解决该报错。

其他需要调整的配置

  • CLB(经典负载均衡)配置缺失:你当前的CLB资源没有指定部署子网和访问类型,需要补充两个配置:
    1. 在模板参数部分新增两个公有子网的参数,用于部署CLB
    2. 在LoadBalancerforEC2的Properties下新增如下配置:
    # 配置为公网可访问的负载均衡
    Scheme: internet-facing
    # 指定部署CLB的公有子网
    Subnets: [!Ref 你新增的公有子网参数1, !Ref 你新增的公有子网参数2]
    
  • 安全规则风险:EC2安全组放开了0.0.0.0/0的22端口访问权限,你的EC2部署在私有子网本来无法直接公网SSH,这条规则没有实际意义还存在安全风险,建议直接删除,如需SSH访问建议通过公有子网的堡垒机跳转。
  • RegionMap适配性差:当前的区域映射仅配置了us-west-2的AMI ID,如需在其他区域部署模板,需要补充对应区域的AMI,也可以直接使用SSM公共参数动态获取对应区域的官方AMI,避免硬编码。
  • 私有子网路由检查:如果你的EC2需要访问公网拉取Docker镜像、更新软件,需要确保私有子网关联的路由表配置了指向公有子网NAT网关的路由规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:24:08