【问题标题】:EC2 instance is not in the same VPC as ELB. Invalid InstanceEC2 实例与 ELB 不在同一个 VPC 中。无效实例
【发布时间】:2018-08-07 21:22:16
【问题描述】:

使用 AWS CloudFormation 服务,我尝试在 2 个 EC2 实例上创建 Elastic Load Balancer,但出现错误:

EC2 实例 i-0a38204c18b48604c 与 ELB 不在同一个 VPC 中。 (服务:AmazonElasticLoadBalancing;状态代码:400;错误代码:InvalidInstance;请求 ID:2af5dc7e-9a7f-11e8-91c9-a3410fab05ba)”。

EC2 实例已正确创建,但未创建 ELB。我该如何解决这个问题?

请查看完整代码以供参考here

 ElasticLoadBalancer:
Type: AWS::ElasticLoadBalancing::LoadBalancer
Properties:
  AvailabilityZones: 
  - 'us-east-2a'
  Instances: [!Ref 'webServer1', !Ref 'webServer2']  
  Listeners:
  - LoadBalancerPort: '80'
    InstancePort: '80'
    Protocol: HTTP
  HealthCheck:
    Target: HTTP:80/
    HealthyThreshold: '3'
    UnhealthyThreshold: '5'
    Interval: '30'
    Timeout: '5'

【问题讨论】:

  • 您需要实际将代码粘贴到此处,而不是链接后面

标签: amazon-web-services amazon-cloudformation amazon-elb


【解决方案1】:

您尚未为 ELB 指定任何 Subnets。因此,ELB 是在默认 VPC 中创建的。

VPC -- contains --> Subnets -- contains --> ELB

Subnets parameter 添加到您的 ELB:

子网: 要附加到负载均衡器的 Virtual Private Cloud (VPC) 中的子网 ID 列表。不要指定位于同一可用区中的多个子网。您可以指定 AvailabilityZonesSubnets 属性,但不能同时指定两者。

【讨论】:

  • 谢谢约翰。我还尝试在代码pastebin.com/RqHQ3tUw 中使用子网属性,但收到如下错误:“InvalidSubnetID.NotFound(服务:AmazonElasticLoadBalancing;状态代码:400;错误代码:SubnetNotFound;请求 ID:817d6506-9aef-11e8-ad70- d9b8d6317463)"。如何检查子网对于 ELB 是否有效?
  • Subnets 参数是“子网 ID 列表”。但是,您提供了一个带有逗号分隔值的字符串。那是不一样的。您应该提供一个 YAML 列表,就像您在 Parameters 部分中为 AllowedValues 提供值一样。
  • 谢谢约翰,我将列表提供给子网参数并且它有效:)
猜你喜欢
  • 2021-11-05
  • 1970-01-01
  • 2014-04-27
  • 1970-01-01
  • 2019-12-25
  • 2017-10-11
  • 1970-01-01
  • 2014-02-01
  • 1970-01-01
相关资源
最近更新 更多