【问题标题】:AWS Autoscale Load Balancing with CloudformationAWS Autoscale 负载平衡与 Cloudformation
【发布时间】:2015-10-02 04:36:44
【问题描述】:

我正在尝试创建一个 EC2 实例,该实例将使用自动缩放,并附加到负载均衡器。

很遗憾,我遇到了错误

The availability zones of the specified subnets and the AutoScalingGroup do not match

但是,这是我当前的 Cloudformation 脚本:

"ApiAutoScaling" : {
  "Type" : "AWS::AutoScaling::AutoScalingGroup",
  "Properties" : {
    "VPCZoneIdentifier" : [ "subnet-5ff05206", "subnet-b1109fc6", "subnet-948ce5f1" ],
    "InstanceId" : {
      "Ref" : "ApiEC2"
    },
    "MaxSize" : 3,
    "MinSize" : 1,
    "LoadBalancerNames" : [ "Api" ]
  }
},
"ApiLoadBalancer" : {
  "Type" : "AWS::ElasticLoadBalancing::LoadBalancer",
  "Properties" : {
    "LoadBalancerName" : "Api",
    "Listeners" : [
      {
        "InstancePort" : "80",
        "InstanceProtocol" : "HTTP",
        "LoadBalancerPort" : "80",
        "Protocol" : "HTTP"
      },
      {
        "InstancePort" : "80",
        "InstanceProtocol" : "HTTP",
        "LoadBalancerPort" : "443",
        "Protocol" : "HTTPS",
        "SSLCertificateId" : "arn:aws:iam::xxx"
      }
    ],
    "SecurityGroups" : [ "sg-a88444cc" ],
    "Subnets" : [ "subnet-5ff05206", "subnet-b1109fc6", "subnet-948ce5f1" ]
  }
}

如您所见,我的自动扩缩组和负载均衡器的子网列表相同。显然我误解了这应该如何工作,但我无法解决。

【问题讨论】:

  • 如果需要更多信息,请告诉我。
  • 尝试为弹性伸缩组指定AvailabilityZones属性。默认情况下它会使用所有这些,因此如果您的子网仅使用区域的子网,您将收到此错误消息。
  • 你是对的。我手动尝试过,但没有成功,但诀窍是使用Fn::GetAZs,即使只是"AvailabilityZones" : { "Fn::GetAZs" : "" } 也有效。我相信,正如你所说,默认是全部使用它们,但该函数将只返回你实际可以使用的那些。有点奇怪,但如果你想回答,我会把它标记为正确的。

标签: autoscaling amazon-elb amazon-cloudformation


【解决方案1】:

尝试为自动伸缩组指定AvailabilityZones 属性。默认情况下它会使用所有这些,因此如果您的子网仅使用区域的子网,您会收到此错误消息。

(正如 cmets 中指出的那样,"AvailabilityZones" : { "Fn::GetAZs" : "" } 应该可以解决问题。)

【讨论】:

    猜你喜欢
    • 2013-06-12
    • 1970-01-01
    • 2017-09-21
    • 2017-05-23
    • 2019-12-30
    • 2022-01-10
    • 2015-02-11
    • 2014-07-28
    • 2015-08-02
    相关资源
    最近更新 更多