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

上次更新时间:2021 年 3 月 1 日

我有一个面向互联网的负载均衡器。我想要附加位于私有子网中的后端 Amazon Elastic Compute Cloud (Amazon EC2) 实例。如何使用 Elastic Load Balancing 实现这一点?

简短描述

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

解决方法

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

为后端实例创建公有子网

  1. 在后端实例所在的每个可用区中创建一个公有子网。如果您在同一可用区中有多个私有子网,则只为该可用区创建一个公有子网。
  2. 确认每个公有子网都有一个位掩码至少为 /27(例如 10.0.0.0/27)的 CIDR 块。
  3. 确认每个子网至少有八个可用的 IP 地址。

配置负载均衡器

  1. 打开 Amazon EC2 控制台
  2. 将公有子网与负载均衡器关联(请参阅 Application Load BalancerNetwork Load BalancerClassic Load Balancer)。
  3. 向负载均衡器注册后端实例(请参阅 Application Load BalancerNetwork Load BalancerClassic Load Balancer)。

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

查看 Application Load BalancerClassic Load Balancer 的推荐安全组设置。请确保:

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

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

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

然后,查看您的负载均衡器的推荐网络 ACL 规则。以下推荐项适用于 Application Load Balancer 和 Classic Load Balancer。

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

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