我们是否需要为运行公共ELB的子网显式设置路由表



(我试图了解ELB网络在VPC中是如何工作的,并提出这个问题)

当我们将两个子网添加到公共ELBaws elb create-load-balancer --load-balancer-name my-load-balancer --listeners "Protocol=HTTP,LoadBalancerPort=80,InstanceProtocol=HTTP,InstancePort=80" --subnets subnet-15aaab61 subnet-198aab81时,我假设在运行此步骤之前,我需要将这两个子网设置为公共子网——这种理解正确吗此外,我假设上述公共子网必须配置为自动为其每个实例分配公共IP(否则,该ELB目的地的DNS解析将不会获得公共可寻址IP)——这种理解是否正确

接下来,我在两个私有子网中运行实例,并将它们注册到上面创建的ELB中。我想我需要确保两个公用子网和两个专用子网连接起来——我需要做额外的工作来实现这一点吗(即,默认的10.0.0.0/16->本地规则就足够了吗?我想是的,但[1]似乎说的不是这样,因为它在ELB设置过程的上下文中添加了NAT规则)

感谢您帮助我了解ELB相关的网络。

[1] 关于ELB和路线表的博客

我认为在运行此步骤之前,我需要将这两个子网设置为公共子网——这种理解正确吗?

技术上没有。但在ELB可用之前,它们需要以这种方式设置。

此外,我认为上述公共子网必须配置为自动为其每个实例分配公共IP(否则,此ELB目的地的DNS解析将不会获得公共可寻址IP)——这种理解是否正确?

不正确。ELB获取其公共IP地址,与子网是否配置为自动分配公共IP地址无关。此设置仅适用于您在该子网上创建的EC2实例。不是ELB。

接下来,我在两个私有子网中运行实例,并将它们注册到上面创建的ELB中。我想我需要确保两个公用子网和两个专用子网连接——我需要做额外的工作来实现这一点吗?(即,默认的10.0.0.0/16->本地规则是否足够?

是。由于本地规则,所有VPC子网始终可以路由到VPC中的所有其他子网。即使你尝试了,你也不能把这件事搞砸。

我是这么认为的,但[1]似乎不是这么说的,因为它在ELB设置过程的上下文中添加了NAT规则)

NAT实例(或NAT网关)由默认路由引用,以允许私有子网上的实例发起出站Internet请求。它与从ELB发送到实例的流量无关,也与对相同流量的响应无关,后者遵循"本地"路由——从平衡器发送到实例中的流量具有平衡器的内部源IP地址,而不是访问ELB的浏览器的地址。

为了使公共子网中的实例具有出站互联网连接,它们需要位于互联网网关后面。在将互联网网关与公共VPC关联后,在该公共子网中创建的所有实例都应自动分配一个公共IP。如果您希望服务器具有固定的公共IP,则需要将弹性IP与该节点相关联。

VPC中的实例默认情况下可以相互对话,真正的限制是您的安全组规则,允许或阻止您在VPC的安全组中设置的任何端口上的入口/出口。因此,如果您希望公共节点能够与专用节点进行通信,请使用安全组规则打开这些端口。

如果你希望你的私有实例节点能够对互联网进行软件更新或外部调用,那么你需要在公共子网中使用NAT实例。

您可以在此处找到有关设置NAT实例的信息:http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html

最新更新