如何在网络负载均衡器后方注册应用程序负载均衡器?

2 分钟阅读
0

我的应用程序负载均衡器需要一个静态 IP 地址。我想在网络负载均衡器后方注册应用程序负载均衡器。

简短描述

您无法为应用程序负载均衡器分配静态 IP 地址。如果您的应用程序负载均衡器需要静态 IP 地址,则最佳做法是在网络负载均衡器后面注册该地址。分配给网络负载均衡器的静态 IP 地址不会发生变化,它为您的应用程序负载均衡器提供固定的入口点。

**注意:**以下解决方法使用了 Amazon Elastic Compute Cloud (Amazon EC2) 控制台上的新启动体验。在 Amazon EC2 控制台中启用此功能,以完成以下解决步骤。

解决方法

Amazon EC2 控制台

使用 Amazon EC2 控制台创建新的目标组,并将您的应用程序负载均衡器注册为目标。然后,创建和配置网络负载均衡器,以将流量转发到您的应用程序负载均衡器。

为 TCP 80 和 TCP 443 流量创建新的目标组,并将您的应用程序负载均衡器注册为目标

要为 EC2 实例创建新的目标组和注册目标,请完成以下步骤:

  1. 打开 Amazon EC2 控制台
  2. 在导航窗格中,展开负载均衡,然后选择目标组
  3. 选择创建目标组
  4. 对于选择目标类型,选择应用程序负载均衡器
  5. 对于 Target group name(目标组名称),输入目标组的名称。
  6. 对于 Protocol(协议),选择 TCP。对于 Port(端口),为 HTTP 流量选择 80
  7. 对于 VPC,为您的应用程序负载均衡器选择虚拟私有云 (VPC)。
  8. 对于 Health Check protocol(运行状况检查协议),为返回 HTTP 200-399 状态的应用程序负载均衡器选择 HTTPHTTPS
  9. 选择 Next(下一步)。
  10. 对于应用程序负载均衡器,选择您的应用程序负载均衡器。
  11. 选择创建目标组
  12. 重复步骤 3–11 以创建其他目标组。重复步骤 6 时,选择协议 TCP 和端口 443 来为 HTTPS 流量创建另一个目标组。

创建和配置网络负载均衡器,以将 HTTP 和 HTTPS 流量转发到您的应用程序负载均衡器

要创建和配置网络负载均衡器以将 HTTP 和 HTTPS 流量转发到您的应用程序负载均衡器,请按照下面的步骤进行操作:

  1. 打开 Amazon EC2 控制台
  2. 在导航窗格中,展开负载均衡,然后选择负载均衡器
  3. 选择创建负载均衡器
  4. 对于负载均衡器类型,选择网络负载均衡器,然后选择创建
  5. 对于负载均衡器名称,输入网络负载均衡器的名称。
  6. 方案中,选择面向互联网内部。您可以将内部应用程序负载均衡器与面向互联网的网络负载均衡器一起使用。
  7. 对于 IP 地址类型,选择 IPv4
  8. 对于 VPC,选择您的 VPC。
  9. 对于映射,请选择一个或多个可用区和子网。为内部负载均衡器选择私有子网,或者为面向互联网的负载均衡器选择公有子网。
  10. 对于 IPv4 address(IPv4 地址),选择 Assigned by AWS(由 AWS 分配)或 Use an Elastic IP address(使用弹性 IP 地址)。
  11. 对于 Protocol(协议),选择 TCP。对于 Port(端口),为 HTTP 流量选择 80
  12. 对于 Default action(默认操作),选择包含您的应用程序负载均衡器作为注册目标的目标组。
  13. 选择 Add listener(添加侦听器),然后重复步骤 11-12。选择协议 TCP 和端口 443 以及一项默认操作,以将流量转发到应用程序负载均衡器的 TCP 443 目标组。
  14. 选择创建负载均衡器
  15. 测试负载均衡器
    **注意:**要通过此配置在应用程序负载均衡器上使用 HTTP 到 HTTPS 重定向,您必须创建两个目标组。为 TCP 80 创建一个应用程序负载均衡器目标组,并为 TCP 443 创建另一个应用程序负载均衡器目标组。
    配置应用程序负载均衡器的安全组和网络访问控制列表,以允许从网络负载均衡器的私有 IP 地址执行运行状况检查。

AWS CLI

**注意:**如果在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,确保您使用的是最新版本的 AWS CLI

要使用 AWS CLI 在网络负载均衡器后面注册应用程序负载均衡器,请完成下面的步骤:

  1. 创建新的目标组并使用 alb 目标类型:
    aws elbv2 create-target-group \
    --name <name> \
    --protocol TCP \
    --port <port> \
    --target-type alb \
    --vpc-id <vpc_id>
    注意:name 替换为目标组的名称,将 port 替换为端口号,将 vpc_id 替换为您的 VPC ID。
  2. 向目标组注册应用程序负载均衡器:
    aws elbv2 register-targets \
    --target-group-arn <tg_arn from previous command> \
    --targets Id=<alb_arn>
    **注意:**请将前面命令中的 tg_arn 替换为您的目标组的 ARN,将 alb_arn 替换为应用程序负载均衡器的 ARN。
  3. 创建网络负载均衡器:
    aws elbv2 create-load-balancer \
    --name <nlb name> \
    --type network \
    --scheme internal \
    --subnets <subnet_ids>
    **注意:**请将 nlb_name 替换为您的网络负载均衡器的名称,将 subnet_ids 替换为您的子网 ID。
  4. 创建侦听器:
    aws elbv2 create-listener --load-balancer-arn ${nlb1_arn} \
    --protocol TCP --port <port> \
    --default-actions Type=forward,TargetGroupArn=<target group>

相关信息

使用 AWS Lambda 激活应用程序负载均衡器的静态 IP 地址

应用程序负载均衡器现可通过与网络负载均衡器直接集成来激活 AWS PrivateLink 和静态 IP 地址