我的应用程序负载均衡器需要一个静态 IP 地址。我想要在网络负载均衡器后方注册一个应用程序负载均衡器。
简短描述
您无法为应用程序负载均衡器分配静态 IP 地址。如果您的应用程序负载均衡器需要静态 IP 地址,则最佳做法是在网络负载均衡器后面注册该地址。分配给网络负载均衡器的静态 IP 地址不会发生变化,它为您的应用程序负载均衡器提供固定的入口点。
注意: 以下解决方法使用了 Amazon Elastic Compute Cloud(Amazon EC2)控制台上的新启动体验。若要完成步骤,请在 Amazon EC2 控制台中启用此功能。
解决方法
Amazon EC2 控制台
使用 Amazon EC2 控制台创建新的目标组,并将您的应用程序负载均衡器注册为目标。然后,创建和配置网络负载均衡器,以将流量转发到您的应用程序负载均衡器。
为 TCP 80 和 TCP 443 流量创建新的目标组,并将您的应用程序负载均衡器注册为目标
要为 Amazon EC2 实例创建新的目标组和注册目标,请完成下面的步骤:
- 打开 Amazon EC2 控制台。
- 在导航窗格中,展开负载均衡,然后选择目标组。
- 选择创建目标组。
- 对于选择目标类型,选择应用程序负载均衡器。
- 对于目标组名称,输入目标组的名称。
- 对于协议,选择 TCP,然后对于端口,为 HTTP 流量选择 80。
- 对于 VPC,为您的应用程序负载均衡器选择虚拟私有云(VPC)。
- 对于运行状况检查协议,为返回 HTTP 200 - 399 状态的应用程序负载均衡器选择 HTTP 或 HTTPS。
- 选择下一步。
- 对于应用程序负载均衡器,选择您的应用程序负载均衡器。
- 选择创建目标组。
- 重复步骤 3–11 以创建其他目标组。重复步骤 6 时,选择 TCP 协议和端口 443 来为 HTTPS 流量创建另一个目标组。
创建和配置网络负载均衡器,以将 HTTP 和 HTTPS 流量转发到您的应用程序负载均衡器
要创建和配置网络负载均衡器以将 HTTP 和 HTTPS 流量转发到您的应用程序负载均衡器,请按照下面的步骤进行操作:
- 打开 Amazon EC2 控制台。
- 在导航窗格中,展开负载均衡,然后选择负载均衡器。
- 选择创建负载均衡器。
- 对于负载均衡器类型,选择网络负载均衡器,然后选择创建。
- 对于负载均衡器名称,输入网络负载均衡器的名称。
- 在方案中,选择面向互联网或内部。您可以将内部应用程序负载均衡器与面向互联网的网络负载均衡器一起使用。
- 对于 IP 地址类型,选择 IPv4。
- 对于 VPC,选择您的 VPC。
- 对于映射,请选择一个或多个可用区和子网。为内部负载均衡器选择私有子网,或者为面向互联网的负载均衡器选择公有子网。
- 对于 IPv4 地址,选择由 AWS 分配或使用弹性 IP 地址。
- 对于协议,选择 TCP,然后对于端口,为 HTTP 流量选择 80。
- 对于默认操作,选择包含您的应用程序负载均衡器作为注册目标的目标组。
- 选择添加侦听器,然后重复步骤 11 和 12。选择协议 TCP 和端口 443 以及一项默认操作来将流量转发到应用程序负载均衡器的 TCP 443 目标组。
- 选择创建负载均衡器。
- 测试负载均衡器。
**注意:**要通过此配置在应用程序负载均衡器上使用 HTTP 到 HTTPS 重定向,您必须创建两个目标组。为 TCP 80 创建一个应用程序负载均衡器目标组,并为 TCP 443 创建另一个应用程序负载均衡器目标组。
配置应用程序负载均衡器的安全组和网络访问控制列表,以允许从网络负载均衡器的私有 IP 地址执行运行状况检查。
AWS CLI
**注意:**如果在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,确保您使用的是最新版本的 AWS CLI。
要使用 AWS CLI 在网络负载均衡器后面注册应用程序负载均衡器,请完成下面的步骤:
- 创建新的目标组并使用 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。
- 向目标组注册应用程序负载均衡器:
aws elbv2 register-targets \
--target-group-arn <tg_arn from previous command> \
--targets Id=<alb_arn>
注意: 将 tg_arn from previous command 替换为您的目标组的 ARN。将 alb_arn 替换为应用程序负载均衡器 ARN。
- 创建网络负载均衡器:
aws elbv2 create-load-balancer \
--name <nlb name> \
--type network \
--scheme internal \
--subnets <subnet_ids>
注意: 将 nlb_name 替换为您的网络负载均衡器的名称,将 subnet_ids 替换为子网的 ID。
- 创建侦听器:
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 地址