3

(我试图了解 ELB 网络如何在 VPC 中工作,并发布此问题)

当我们将两个子网添加到公共 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,我假设我需要在运行此步骤之前将这两个子网设置为公共子网——这种理解是否正确?另外,我假设上述公共子网必须配置为自动为其每个实例分配公共 IP(否则,此 ELB 目标的 DNS 解析不会获得公共可寻址 IP)——这种理解是否也正确?

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

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

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

4

2 回答 2

1

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

不是技术上的。但在 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 的浏览器的地址。

于 2016-06-02T04:31:32.497 回答
0

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

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

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

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

于 2016-06-02T00:38:57.307 回答