如何将使用私有 IP 地址的后端实例连接到 ELB 中面向互联网的负载均衡器?

上次更新日期:2022 年 12 月 22 日

我有一个面向互联网的负载均衡器。我想要附加位于私有子网中的后端 Amazon Elastic Compute Cloud(Amazon EC2)实例。

简短描述

要连接位于私有子网中的 Amazon EC2 实例,请先创建公有子网。必须在与后端实例使用的私有子网相同的可用区中创建这些公有子网。然后,将该公有子网与您的负载均衡器关联起来。

注意:您的负载均衡器将以私密方式与其目标建立连接。要从互联网下载软件或安全补丁,请在目标实例的路由表上使用 NAT 网关规则以允许访问互联网。

解决方法

在开始之前,请记下附加到负载均衡器的每个 Amazon EC2 LinuxAmazon EC2 Windows 实例的可用区。

为后端实例创建公有子网

1.    在后端实例所在的每个可用区中创建一个公有子网。如果您在同一可用区中有多个私有子网,则只为该可用区创建一个公有子网。

2.    确认每个公有子网都有一个位掩码至少为 /27(例如 10.0.0.0/27)的 CIDR 块。

3.    确认每个子网至少有八个可用的 IP 地址。

示例:公有子网(应用程序负载均衡器子网)需要位掩码至少为 /27 的 CIDR 块:

  • 可用区 A 中的公有子网:10.0.0.0/24
    可用区 A 中的私有子网:10.1.0.0/24
  • 可用区 B 中的公有子网:10.2.0.0/24
    可用区 B 中的私有子网:10.3.0.0/24

配置负载均衡器

1.    打开 Amazon EC2 控制台

2.    将公有子网与负载均衡器关联(请参阅应用程序负载均衡器网络负载均衡器经典负载均衡器)。

3.    向负载均衡器注册后端实例(请参阅应用程序负载均衡器网络负载均衡器经典负载均衡器)。

配置负载均衡器的安全组和网络访问控制列表 (ACL) 设置

查看应用程序负载均衡器经典负载均衡器的推荐安全组设置。请确保:

  • 负载均衡器具有开放侦听器端口和允许访问这些端口的安全组。
  • 实例的安全组允许来自负载均衡器的实例侦听器端口和运行状况检查端口的流量。
  • 负载均衡器安全组允许来自客户端的入站流量。
  • 负载均衡器安全组允许传输至实例和运行状况检查端口的出站流量。

在实例的安全组上添加规则,以允许来自分配给负载均衡器的安全组的流量。例如,您具有:

  • 负载均衡器安全组为 sg-1234567a
  • 入口规则为 HTTP TCP 80 0.0.0.0/0
  • 实例安全组为 sg-a7654321
  • 入口规则为 HTTP TCP 80 sg-1234567a

在这种情况下,您的规则类似于以下内容:

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

然后,查看您的负载均衡器的推荐网络 ACL 规则。以下推荐项适用于应用程序负载均衡器和经典负载均衡器。

如果您使用的是网络负载均衡器,请查看网络负载均衡器问题排查目标安全组以了解配置详细信息。确认后端实例的安全组允许从以下来源到目标组端口的流量:

  • 客户端 IP 地址(如果目标由实例 ID 指定)
  • 负载均衡器节点(如果目标由 IP 地址指定)