向应用程序负载均衡器目标组注册目标 - Elastic Load Balancing
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

向应用程序负载均衡器目标组注册目标

将目标注册到目标组。在创建目标组时,指定其目标类型,此类型将确定您如何注册其目标。例如,您可以注册实例 ID、IP 地址或 Lambda 函数。有关更多信息,请参阅 Application Load Balancer 的目标组

如果当前已注册目标的需求增加,您可以注册其他目标以便满足该需求。在目标准备好处理请求后,将目标注册到您的目标组。只要注册过程完成且目标通过初始运行状况检查,负载均衡器就会开始将请求路由至目标。

如果已注册目标需求减少或者您需要为目标提供服务,您可以从目标组取消注册目标。取消注册某个目标后,负载均衡器立即停止将请求路由到该目标。在目标准备好接收请求时,您可以再次将目标注册到目标组。

在取消注册目标时,负载均衡器会一直等待,直到进行中的请求完成。这称作连接耗尽。在连接耗尽期间,目标的状态为 draining

取消注册通过 IP 地址注册的目标后,必须等待取消注册延迟结束,然后才可以重新注册相同的 IP 地址。

如果要通过实例 ID 来注册目标,则可以将负载均衡器与 Auto Scaling 组一同使用。将目标组挂接到 Auto Scaling 组并且该组扩展后,由 Auto Scaling 组启动的实例将自动在目标组中注册。如果您将目标组与 Auto Scaling 组分离,则实例会自动从目标组中取消注册。有关更多信息,请参阅 Amazon EC2 Auto Scaling 用户指南中的将负载均衡器挂接到 Auto Scaling 组

关闭目标上的应用程序时,必须先从目标组中注销该目标,并留出时间让现有连接耗尽。您可以使用 describe-target-health CLI 命令或通过在 Amazon Web Services 管理控制台 中刷新目标组视图来监控注销状态。确认目标已注销后,您可以继续停止或终止应用程序。这一顺序可防止用户在应用程序仍在处理流量过程中被终止时遇到 5XX 错误。

目标安全组

在将 EC2 实例注册为目标时,您必须确保实例的安全组允许负载均衡器在侦听器端口和运行状况检查端口上与您的实例进行通信。

推荐的规则
Inbound
端口范围 评论
负载均衡器安全组 实例侦听器 Allow traffic from the load balancer on the instance listener port
负载均衡器安全组 运行状况检查 Allow traffic from the load balancer on the health check port

我们还建议您允许入站 ICMP 流量以支持路径 MTU 发现。有关更多信息,请参阅《Amazon EC2 用户指南》中的路径 MTU 发现

共享子网

参与者能够在共享 VPC 中创建应用程序负载均衡器。参与者不能注册在未与他们共享的子网中运行的目标。

注册目标

每个目标组在为负载均衡器启用的每个可用区中必须至少有一个已注册目标。

您的目标组的目标类型将确定如何向该目标组注册目标。有关更多信息,请参阅 Target type

要求和注意事项
  • 当您注册实例时,实例必须处于 running 状态。

  • 目标实例必须位于您为目标组指定的虚拟私有云(VPC)中。

  • 当按实例 ID 为 IPv6 目标组注册目标时,必须为目标分配主 IPv6 地址。要了解更多信息,请参阅《Amazon EC2 用户指南》中的 IPv6 地址

  • 在为 IPv4 目标组通过 IP 地址注册目标时,您注册的 IP 地址必须来自以下 CIDR 数据块之一:

    • 目标组 VPC 的子网

    • 10.0.0.0/8 (RFC 1918)

    • 100.64.0.0/10 (RFC 6598)

    • 172.16.0.0/12 (RFC 1918)

    • 192.168.0.0/16 (RFC 1918)

  • 在为 IPv6 目标组按 IP 地址注册目标时,您注册的 IP 地址必须位于 VPC 的 IPv6 CIDR 数据块内,或位于已建立对等连接的 VPC 的 IPv6 CIDR 数据块内。

  • 不能注册同一 VPC 中其他应用程序负载均衡器的 IP 地址。如果另一个 Application Load Balancer 位于与负载均衡器 VPC 对等的 VPC 中,则可以注册其 IP 地址。

Console
注册目标
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格上的负载均衡下,选择目标组

  3. 选择目标组的名称以打开其详细信息页面。

  4. 选择目标选项卡。

  5. 选择注册目标

  6. 如果目标组的目标类型是 instance,则选择可用的实例,根据需要覆盖默认端口,然后选择包含如下待处理事项

  7. 如果目标组的目标类型为 ip,则需为每个 IP 地址选择该网络,输入 IP 地址及端口,然后选择包含如下待处理事项

  8. 如果目标组的目标类型为 lambda,请选择该 Lambda 函数或输入其 ARN。有关更多信息,请参阅 使用 Lambda 函数作为目标

  9. 选择注册待处理目标

Amazon CLI
注册目标

使用 register-targets 命令。以下示例按实例 ID 注册目标。由于未指定端口,负载均衡器将使用目标组端口。

aws elbv2 register-targets \ --target-group-arn target-group-arn \ --targets Id=i-1234567890abcdef0 Id=i-0abcdef1234567890

以下示例按 IP 地址注册目标。由于未指定端口,负载均衡器将使用目标组端口。

aws elbv2 register-targets \ --target-group-arn target-group-arn \ --targets Id=10.0.50.10 Id=10.0.50.20

以下示例将一个 Lambda 函数注册为目标。

aws elbv2 register-targets \ --target-group-arn target-group-arn \ --targets Id=lambda-function-arn
CloudFormation
注册目标

更新 AWS::ElasticLoadBalancingV2::TargetGroup 资源,以包含新的目标。以下示例按实例 ID 注册了两个目标。

Resources: myTargetGroup: Type: 'AWS::ElasticLoadBalancingV2::TargetGroup' Properties: Name: my-target-group Protocol: HTTP Port: 80 TargetType: instance VpcId: !Ref myVPC Targets: - Id: !GetAtt Instance1.InstanceId Port: 80 - Id: !GetAtt Instance2.InstanceId Port: 80

取消注册目标

如果应用程序需求减少或者您需要为目标提供服务,您可以从目标组取消注册目标。取消注册目标将从目标组中删除目标,但不会影响目标。

Console
注销目标
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格上的负载均衡下,选择目标组

  3. 选择目标组的名称以打开其详细信息页面。

  4. 目标选项卡中,选择要移除的目标。

  5. 选择注销

  6. 当系统提示您确认时,选择 Deregister (取消注册)

Amazon CLI
注销目标

使用 deregister-targets 命令。以下示例会注销两个通过实例 ID 注册的目标。

aws elbv2 deregister-targets \ --target-group-arn target-group-arn \ --targets Id=i-1234567890abcdef0 Id=i-0abcdef1234567890