我们是否需要为 public ELB 运行 所在的子网显式设置路由 table?

Do we need explicitly setup routing table for the subnet where a public ELB is running within?

(我试图了解 ELB 网络在 VPC 中的工作原理,post 这个问题)

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

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

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

[1] Blog about ELB and route table

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

您的 VPC 中的实例默认可以相互通信,真正的限制是您的安全组规则允许或阻止 ingress/egress 在您为 VPC 的安全组中设置的任何端口上。因此,如果您希望 public 节点能够与私有节点通信,请使用安全组规则打开这些端口。

在您的 public 子网中需要 NAT 实例的地方是您希望您的私有实例节点能够进行软件更新或对互联网的外部调用。

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

I assume I need to setup these two subnets as public subnets before running the this step -- is this understanding correct?

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

Also, I assume the above public subnets must be configured to automatically assign public IPs to each of its instances (otherwise, DNS resolution of this ELB destination won't get a public addressable IP) -- is this understanding also correct?

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

Next, I have instances running in two private subnets and I register them to the ELB that were created above. I guess I need to make sure the two public subnets and the two private subnets are connected -- do I need to do extra work to make that happen? (i.e., Will the default 10.0.0.0/16 -> local rule be sufficient?

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

I thought so, but [1] seems to say otherwise because it added a NAT rule in the context of ELB setup procedure)

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