我们使用的是亚马逊EC2,我们想把一个负载均衡器放到一个私有子网上的2个实例上。如果我们只是将私有子网添加到ELB,它将不会获得任何连接,如果我们将两个子网都连接到ELB,则它可以访问实例,但它通常会超时。是否有人在其私有网络的内网内成功实施ELB?如果是这样的话,你能给我解释一下程序吗?
谢谢
发布于 2012-03-10 01:02:30
我和我的队友刚刚在一个私有网络中实现了ELB,该私有网络有两个内网,位于不同的可用区。超时的原因是,对于您添加到负载均衡器的每个子网,它都会获得一个外部IP地址。(尝试'dig elb-dns-name-here‘,你会看到几个IP地址)。如果其中一个IP地址映射了私有子网,它将超时。映射到您的公网子网的IP将起作用。因为DNS可能会为您提供任何一个IP地址,所以它有时会工作,有时会超时。
在与亚马逊来回交流后,我们发现ELB应该只放在“公共”子网中,即有一条通往Internet Gateway的路由的子网。我们希望将web服务器保留在我们的私有子网中,但允许ELB与它们通信。为了解决这个问题,我们必须确保每个拥有私有子网的可用区都有一个对应的公共子网。然后,我们将每个可用区的公共子网添加到ELB。
起初,这似乎不起作用,但在尝试了所有方法后,我们重新创建了ELB,一切都正常工作。我认为这是一个bug,或者ELB只是因为如此多的更改而处于一种奇怪的状态。
下面是我们所做的大致情况:
我希望这对你有帮助!
发布于 2016-01-09 05:22:55
这里的关键是要理解,您并不是在向ELB“添加子网/可用区”,而是指定要将ELB实例放入哪些子网。
是的,ELB是一个软件负载均衡器,当您创建ELB对象时,会在您指定的所有子网中放入一个自定义的负载均衡EC2实例。因此,为了使ELB (其实例)可访问,必须将它们放入通过IGW配置了默认路由的子网中(很可能您将这些子网归类为公共子网)。
因此,正如上面已经回答的,您必须为ELB指定“公共”网络,并且这些网络应该来自运行EC2实例的as。在这种情况下,ELB实例将能够到达您的EC2实例(前提是安全组配置正确)
发布于 2014-11-19 03:54:58
我们在私有子网中实现了ELB,因此所有ELB都需要公开的说法并不完全正确。您确实需要NAT。为内网ELB创建内网,打开私有网络DNS,确保内网路由表配置为穿越NAT。还需要设置子网安全组,允许ELB和App之间的流量,以及App到DB子网之间的流量。
Beanstalk健康检查不会起作用,因为它们无法到达负载均衡器,但对于需要在公共范围之外的服务,这是一个很好的折衷方案。
开始您的VPC架构的建议阅读:http://blog.controlgroup.com/2013/10/14/guided-creation-of-cloudformation-templates-for-vpc/。
https://stackoverflow.com/questions/9257514
复制相似问题