跳至内容

如何为我的应用程序负载均衡器设置加权目标组?

2 分钟阅读
0

我想要为我的应用程序负载均衡器注册加权目标组。

解决方法

您可以为应用程序负载均衡器的目标组分配不同的权重,以按比例分配流量。

创建目标组

要创建希望注册到应用负载均衡器的目标组,请完成以下步骤:

  1. 打开 Amazon Elastic Compute Cloud (Amazon EC2) 控制台
  2. 选择您的 Amazon EC2 实例所在的 AWS 区域。
  3. 在导航窗格中的 Load balancing(负载均衡)下,选择 Target groups(目标组)。
  4. 要创建第一个目标组,请完成以下步骤:
    选择 Create target group(创建目标组)。
    对于 Target group name(目标组名称),为目标组指定名称。
    配置目标组的协议、端口和虚拟私有云(VPC)。
    选择创建
    对于实例,选择一个或多个实例。
    为实例指定端口。
    选择 Include as pending below(以下列为待处理事项),然后选择 Create target group(创建目标组)。
  5. 要设置加权目标组,必须创建至少两个目标组。重复步骤 4 以创建第二个目标组。

创建应用程序负载均衡器

**重要事项:**如果您想使用应用程序负载均衡器,请继续查看“配置侦听器规则并分配权重”部分。要创建应用程序负载均衡器,请完成以下步骤:

  1. 在导航窗格中的 Load balancing(负载均衡)下,选择 Load Balancers(负载均衡器)。
  2. 选择 Create load balancer(创建负载均衡器)。
  3. 对于 Select load balancer type(选择负载均衡器类型),选择 Application Load Balancer(应用程序负载均衡器),然后选择 Create(创建)。
  4. Create Application Load Balancer(创建应用程序负载均衡器)向导中,完成以下步骤:
    输入负载均衡器的名称。
    选择 Internet-facing(面向互联网)或 Internal(内部)。
    选择 IP Address type(IP 地址类型)。
    选择您的 VPC 和至少两个可用区。
    对于 Security groups(安全组),选择或创建安全组。
    对于 Listeners and routing(侦听器和路由),将默认 HTTP 侦听器保留在端口 80 上。
  5. Configure routing(配置路由)页面上,完成以下步骤:
    对于目标组,选择现有目标
    对于 Name(名称),选择您创建的第一个目标组。
    选择 Next: Register Targets(下一步:注册目标)。
  6. Register Targets(注册目标)页面上,确认您的已注册实例显示在 Registered instances(已注册实例)下。
    **注意:**要修改目标,请返回目标组控制台。Register Targets(注册目标)页面仅供审阅。
  7. Review(审阅)页面上,选择 Create(创建)。
  8. 创建应用程序负载均衡器后,选择 Close(关闭)。
  9. 创建向导关闭后,您将返回 Load Balancer(负载均衡器)页面。从负载均衡器列表中选择新的负载均衡器。

配置侦听器规则并分配权重

要为目标组分配权重,请完成以下步骤,为应用程序负载均衡器配置侦听器规则:

  1. Listeners(侦听器)选项卡上,选择 View/edit rules(查看/编辑规则)。
  2. 选择 Edit rules(编辑规则)。
  3. Forward to(转发到)旁边,选择 Edit(编辑)。
  4. 添加您之前创建的第二个目标组。
  5. 为目标组的权重输入一个介于 0 和 999 之间的值。
  6. 选择 Check mark(复选标记),然后选择 Update(更新)。
  7. (可选)如果目标组处于粘滞状态,请设置 Group level stickiness(组级别粘性)。
    **注意:**当您配置组级别粘性时,路由的请求在会话期间将保留在目标组中。默认值为 1 小时。会话持续时间结束后,负载均衡器根据目标组权重分配请求。

应用程序负载均衡器根据目标组权重分配流量。如果一个组中的所有目标均未通过运行状况检查,则您的应用程序负载均衡器不会失效转移到另一个组。均衡器继续将流量路由到运行状况不佳的目标。最佳做法是不使用加权目标组作为失效转移机制。

如果第一个目标的权重为 70%,第二个目标的权重为 30%,则大多数请求来自第一个目标组。

命令示例:

for X in seq 6; do curl -so -i /dev/null -w "" http://FINAL-721458494.us-east-2.elb.amazonaws.com; done

输出示例:

<h1> This is T1 </h1>
<h1> This is T1 </h1>
<h1> This is T1 </h1>
<h1> This is T1 </h1>
<h1> This is T2 </h1>
<h1> This is T2 </h1>

在此示例中,T1 表示来自第一个目标组(70% 权重)的响应,T2 表示来自第二个目标组(30% 权重)的响应。

如果第二个目标的权重为 70%,第一个目标的权重设置为 30%,则大多数请求来自第二个目标组。

命令示例:

for X in seq 7; do curl -so -i /dev/null -w "" http://FINAL-721458494.us-east-2.elb.amazonaws.com; done

输出示例:

<h1> This is T2 </h1>
<h1> This is T2 </h1>
<h1> This is T2 </h1>
<h1> This is T1 </h1>
<h1> This is T1 </h1>
<h1> This is T2 </h1>
<h1> This is T2 </h1>

在此示例中,T2 表示来自第二个目标组(70% 权重)的响应,T1 表示来自第一个目标组(30% 权重)的响应。请输入负载均衡器的名称。