You need to enable JavaScript to run this app. 使用CloudFormation为Elastic Beanstalk配置ElastiCache时如何指定自定义VPC
优惠活动
大模型
产品
解决方案
定价
更多

使用CloudFormation为Elastic Beanstalk配置ElastiCache时如何指定自定义VPC

部署场景与报错说明
  • 触发报错:AWS CloudFormation提示安全组sg-在默认VPCvpc-中不存在
  • 部署背景:将自定义CloudFormation模板部署到Elastic Beanstalk应用时,模板自动关联账户默认VPC,无法指定关联自建VPC,目标是明确模板中正确引用自定义VPC ID的配置方法
  • 已尝试的无效配置:此前单独参考AWS文档尝试配置零散嵌入资源块、未正确组合使用,且存在缩进格式错误,均未生效,配置片段如下:
# 格式错误的尝试片段,未被CloudFormation正确解析
Type: 'AWS::EC2::VPC::Id'
VpcId: String
       Vpc:
        Default: "vpc-"
        Type: String
      VpcCidr:
       Default: "10.0.0.0/16"
        Type: String
原始模板的核心配置缺口
  • 模板中定义的MyCacheSecurityGroup安全组资源未显式指定VpcId属性,创建时默认关联账户下的默认VPC
  • 模板缺少顶层Parameters节点,没有预留传入自定义VPC ID的合法通道
  • 安全组入站规则使用SourceSecurityGroupName按名称引用AWSEBSecurityGroup,在跨VPC、重名安全组场景下会出现匹配失效,无法校验跨网络的归属关系
可落地的配置修正方案
  • 第一步:在模板顶层新增Parameters节点,定义可传入的自定义VPC参数,使用AWS内置的VPC类型做合法性校验:
Parameters:
  CustomVpcId:
    Type: 'AWS::EC2::VPC::Id'
    Description: 选择需要关联的自建VPC
  • 第二步:修改MyCacheSecurityGroup资源的配置,显式绑定上面定义的自定义VPC参数,同时将原入站规则的名称引用替换为ID精确匹配,避免解析异常:
MyCacheSecurityGroup:
  Type: 'AWS::EC2::SecurityGroup'
  Properties:
    GroupDescription: "Lock cache down to webserver access only"
    VpcId: !Ref CustomVpcId # 新增配置,将安全组绑定到指定自建VPC
    SecurityGroupIngress:
      - IpProtocol: tcp
        FromPort:
          Fn::GetOptionSetting:
            OptionName: CachePort
            DefaultValue: 11211
        ToPort:
          Fn::GetOptionSetting:
            OptionName: CachePort
            DefaultValue: 11211
        SourceSecurityGroupId: !Ref AWSEBSecurityGroup # 原SourceSecurityGroupName替换为ID引用,避免跨VPC场景匹配失败
  • 部署前置校验:创建或更新Elastic Beanstalk环境时,需要在环境的网络配置步骤指定关联的自建VPC、私有/公有子网组,确保环境自动创建的AWSEBSecurityGroup和自定义安全组属于同一个VPC,从根源上避免跨VPC引用安全组的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.27 16:24:04