如何将面向公众的负载均衡器连接到具有私有 IP 地址的 EC2 实例?

上次更新时间:2017 年 2 月 2 日

我想创建一个面向互联网的公共负载均衡器,并连接到不可公开访问的后端 Amazon EC2 实例,例如,私有子网中的实例。该如何操作?

简短描述

您必须在与私有实例使用的私有子网相同的可用区中创建公有子网。然后将这些公有子网关联到面向互联网的负载均衡器。

公有子网

如果子网的默认流量路由到互联网网关,则该子网称为公有子网。例如,如果在此子网中启动的实例具有弹性 IP 地址或与之关联的公有 IP 地址,则该实例可以公开访问。

私有子网

如果子网的默认流量路由到 NAT 实例/网关或完全没有默认路由,则该子网称为私有子网。例如,即使具有弹性 IP 地址或与之关联的公有 IP 地址,在此子网中启动的实例也不可公开访问。

解决方法

  1. 列出包含要连接到负载均衡器的实例的可用区。
  2. 在私有实例所在的相同可用区中创建相同数量的公有子网。要确保负载均衡器可以正确扩展,请验证负载均衡器的每个子网是否具有至少有一个 /27 位掩码(例如,10.0.0.0/27)且至少有 8 个空闲 IP 地址的 CIDR 块。您的负载均衡器使用这些 IP 地址与后端实例建立连接。有关更多信息,请参阅 VPC 和子网
    注意:如果同一可用区中有多个私有子网,其中包含需要向负载均衡器注册的实例,则只需创建一个公有子网。每个可用区只需要一个公有子网;您可以在驻留在该特定可用区中的所有私有子网中添加私有实例。
  3. 从 Amazon EC2 控制台创建负载均衡器并将新创建的公有子网与之关联。有关说明,请参阅步骤 1:选择负载均衡器类型步骤 2:定义负载均衡器
  4. 将私有实例添加到负载均衡器。有关说明,请参阅步骤 5:向负载均衡器注册 EC2 实例

故障排除

  1. 确保分配给负载均衡器的安全组已打开侦听器端口。
  2. 确保私有实例的安全组允许侦听器端口和运行状况检查端口上的通信(如果运行状况检查不在其中一个侦听器端口上)。

您还可以在实例的安全组上添加规则,以允许来自分配给负载均衡器的安全组的流量。例如,如果负载均衡器上的安全组是 sg-1234567a,请对与私有实例关联的安全组进行以下更改:

类型 协议 端口范围
HTTP TCP 80 sg-1234567a

有关更多信息,请参阅 Linux 实例的 Amazon EC2 安全组


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?