内部和面向互联网的Elastic Load Balancing

时间:2016-04-12 21:40:34

标签: amazon-web-services amazon-ec2 load-balancing autoscaling

我们正在尝试在AWS中使用 Elastic Load Balancing 进行自动扩展,以便我们可以根据需要进行扩展和缩小。

我们的应用程序由几个较小的应用程序组成,它们都位于同一子网和相同的VPC上。

我们希望将ELB放在我们的应用程序和其他应用程序之间。

问题是我们希望负载均衡器在不同的应用程序之间内部使用API​​以及面向Internet的,因为我们的应用程序仍然有一些应用程序应该是在外部完成,而不是通过API完成。

我已经阅读了这个question,但我无法确切地知道如何从那里开始,它没有真正指定任何步骤,或者我确实理解它很好。

我们可以拥有内部和外部的ELB吗?

为了记录,我只能通过VPN访问此网络。

4 个答案:

答案 0 :(得分:7)

我不同意@MattHouser的回答。实际上,在VPC中,您的ELB的所有内部接口都列在具有公共IP和主要专用IP的网络接口中。 我已经测试了我的公共ELB的私有IP,它的工作方式与外部IP一样。

问题是:这些IP没有像私有ELB DNS那样以最新的方式列在任何地方。所以你必须自己做。

我在这上面做了一个小POC脚本,内部Route53托管区域:https://gist.github.com/darylounet/3c6253c60b7dc52da927b80a0ae8d428

答案 1 :(得分:1)

标准AWS解决方案是为此设置额外的内部ELB。 看起来@DaryL有一个有趣的解决方法,但如果DNS没有更新,它可能会失败5分钟。此外,内部IP没有单独的安全组,因为它们共享ENI和ELB外部IP的安全性。

答案 2 :(得分:0)

我面临着同样的挑战,我可以确定到目前为止最好的解决方案是拥有两个不同的ALB,一个面向互联网,另一个面向内部。您可以将两个ALB都附加到一个AutoScaling组,以便可以访问同一群集。

请确保两个ALB的网络选项(子网,安全组)相同,以便它们都可以访问相同的群集实例。自动缩放和启动配置可与连接到同一AutoSacling组的两个ALB无缝配合。这也适用于从ElasticBeanstalk环境创建的ALB。

答案 3 :(得分:0)

我制作了一个Lambda函数,用于检查将哪些专用IP设置为负载均衡器,并在其更改时更新Route53记录:https://github.com/Bramzor/lambda-sync-private-elb-ips

使用此功能,您可以轻松地将ELB用于私人流量。我个人使用它通过VPC区域间对等连接将多个区域彼此连接,而无需其他ELB。