我们正在使用 Amazon EC2,我们希望将 ELB(负载均衡器)放置在私有子网上的 2 个实例上。如果我们只是将私有子网添加到 ELB,它不会获得任何连接,如果我们将两个子网都附加到 ELB,那么它可以访问实例,但它通常会超时。是否有人在其 VPC 的私有子网中成功实施了 ELB?如果是这样,您能否向我解释一下程序?
谢谢
我们正在使用 Amazon EC2,我们希望将 ELB(负载均衡器)放置在私有子网上的 2 个实例上。如果我们只是将私有子网添加到 ELB,它不会获得任何连接,如果我们将两个子网都附加到 ELB,那么它可以访问实例,但它通常会超时。是否有人在其 VPC 的私有子网中成功实施了 ELB?如果是这样,您能否向我解释一下程序?
谢谢
我和我的队友刚刚在一个 VPC 中实施了 ELB,在不同的可用区有 2 个私有子网。您获得超时的原因是,对于您添加到负载均衡器的每个子网,它都会获得一个外部 IP 地址。(尝试 'dig elb-dns-name-here' 你会看到几个 IP 地址)。如果这些 IP 地址之一映射私有子网,它将超时。映射到您的公共子网的 IP 将起作用。因为 DNS 可能会为您提供任何一个 IP 地址,所以有时它可以工作,有时它会超时。
在与 amazon 反复讨论之后,我们发现 ELB 只应放置在“公共”子网中,即具有通往 Internet 网关的路由的子网。我们希望将 Web 服务器保留在我们的私有子网中,但允许 ELB 与它们通信。为了解决这个问题,我们必须确保每个可用区都有一个对应的公共子网,其中我们有私有子网。然后,我们将每个可用区的公共子网添加到 ELB。
起初,这似乎不起作用,但在尝试了一切之后,我们重新创建了 ELB,一切正常。我认为这是一个错误,或者 ELB 只是因为如此多的变化而处于奇怪的状态。
这或多或少是我们所做的:
我希望这会有所帮助!
这里的关键是理解,您不是“向 ELB 添加子网/可用区”,而是指定将 ELB 实例放入哪些子网。
是的,ELB 是一个软件负载均衡器,当您创建 ELB 对象时,一个自定义负载均衡 EC2 实例会被放入您指定的所有子网中。因此,要访问 ELB(其实例),必须将它们放入具有通过 IGW 配置的默认路由的子网中(很可能您将这些子网归类为公共子网)。
因此,正如上面已经回答的那样,您必须为 ELB 指定“公共”网络,这些网络应该来自运行 EC2 实例的 AZ。在这种情况下,ELB 实例将能够访问您的 EC2 实例(只要安全组配置正确)
我们已经在私有子网中实现了 ELB,因此所有 ELB 都需要公开的说法并不完全正确。你确实需要一个 NAT。为私有 ELB 创建一个私有子网,打开 VPC DNS,然后确保将私有路由表配置为通过 NAT。还需要设置子网安全组以允许 ELB 和 App 之间的流量,以及 App 到 DB 子网之间的流量。
Beanstalk 健康检查无法工作,因为它们无法到达负载均衡器,但对于需要在公共范围之外的服务,这是一个很好的折衷方案。
建议阅读以启动您的 VPC 架构:http: //blog.controlgroup.com/2013/10/14/guided-creation-of-cloudformation-templates-for-vpc/。
您必须添加以下设置。
诀窍是路由:
ELB详细信息:
1.Zone:公共子网zone c 2.Instance:Server Web 3.Security Groups:启用端口
http://docs.amazonaws.cn/en_us/ElasticLoadBalancing/latest/DeveloperGuide/UserScenariosForVPC.html