如何负载均衡AWS私有子网EC2实例

时间:2018-07-31 17:59:06

标签: amazon-web-services amazon-ec2 reverse-proxy amazon-elb

如果创建ELB并尝试附加专用子网实例,则运行状况检查将失败:OutOfService。

问题1:我可以获取用于负载平衡的内部/专用IP(不是IP,而是dns名称)。即无法访问互联网?

问题2:如果我的应用程序负载平衡器具有公用的dnsname。如何附加没有弹性IP(无法访问Internet)的私有子网中的EC2实例。 我正在寻找最佳方法。我们应该有吗?

ELB->公共子网EC2实例(代理配置-* / * [private_ip]:[port] / *)->私有Subnet / EC2实例中的服务,此处具有运行状况检查。

2 个答案:

答案 0 :(得分:2)

传统架构是:

  • 公共子网中的
  • 弹性负载均衡器
  • 私有子网 中的
  • Amazon EC2实例
  • 负载均衡器上的安全组,允许来自0.0.0.0/0的端口80和443
  • 实例上的安全组,允许 Load Balancer安全组
  • 的端口80
  • 具有CNAME记录集的Amazon Route 53托管区域,该记录集指向负载均衡器的DNS名称

如果您的实例未通过负载均衡器运行状况检查,请检查以下各项:

  • 实例应具有一个安全组,以允许从负载均衡器进行入站访问
  • 应该为Load Balancer运行状况检查配置一个用于运行状况检查的网页路径
  • 实例应具有可正常运行的Web服务器,以响应运行状况检查

答案 1 :(得分:0)

如果您正在使用ELB,我建议您使用Auto Scaling Group将实例放置在各个AZ /子网中。 查看此tutorial。拥有ASG的好处是您可以选择在/我们的政策中进行调整。

您描述的ELB(假定这是公共的)->公共EC2实例(作为代理)->私有EC2实例。

相反,您可以使您的Private EC2实例带有ELB。不知道您是否真的需要公共EC2实例。

如果您的健康检查失败,则需要确保:

a。您正在正确的VPC中创建ELB。

b。通过确保在EC2实例上具有正确的Security Groups来正确设置ELB-> EC2通信。 强烈建议将EC2实例SG规则设置为仅接收来自ELB SG的流量。