如何为我的 Application Load Balancer 设置加权目标组?

上次更新时间:2020 年 5 月 14 日

我想为我的 Application Load Balancer 注册加权目标组。该如何操作?

简短描述

您可以使用通过负载均衡器注册的目标组将流量定向到 Amazon Elastic Compute Cloud (Amazon EC2) 实例、IP 地址或 AWS Lambda 函数。通过使用加权路由,您可以在不同的应用程序版本之间切换流量。通过此配置,您可以控制流量向您的应用程序的分配。您可以在侦听器规则的转发操作中添加多个目标组,并为每个组指定一个加权。此功能通常用于蓝绿部署

解决方法

创建目标组

1.    打开 Amazon EC2 控制台

2.    在导航栏上,选择您为 EC2 实例选择的区域。

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

4.    创建第一个目标组:
选择创建目标组
对于目标组名称,为目标组指定一个名称。
为目标组配置协议、端口和 Virtual Private Cloud (VPC)。
选择创建
对于实例,选择一个或多个实例。
为实例指定端口。
选择添加到已注册,然后选择保存

5.    重复步骤 4 以创建第二个目标组。

创建 Application Load Balancer(如果您还没有)

1.    在导航窗格中,选择负载均衡下的负载均衡器

2.    选择创建负载均衡器

3.    对于选择负载均衡器类型,选择 Application Load Balancer

4.    选择继续

5.    完成创建 Application Load Balancer 中的步骤。

6.    完成配置路由步骤:
对于目标组,请选择现有目标
对于名称,选择您创建的第一个目标组。
选择下一步:注册目标

7.    在注册目标页面上,注意到您使用目标组注册的实例显示在注册的实例下。您无法在此修改使用目标组注册的目标。

8.    在查看页面上,选择创建

9.    在您收到您的负载均衡器已成功创建的通知后,选择关闭

10.    选择新创建的负载均衡器。

配置侦听器规则并添加加权到目标组

1.    在侦听器选项卡上,选择查看/编辑规则

2.    选择编辑规则(铅笔图标)。

3.    选择转发到选项旁的编辑

4.    添加另一个目标组。

5.    输入目标组加权值。这些值必须是介于 0 和 999 之间的数值。

6.    选择复选标记,然后选择更新

7.    (可选)如果目标组具有粘性,请设置组级别粘性。在配置此设置的情况下,路由的请求在会话持续时间内保留在目标组中。默认值为 1 小时。粘性持续时间结束后,系统会根据目标组的权重分配请求。

注意:Application Load Balancer 仅根据目标组的权重向其分配流量。然而,如果某个特定目标组中的所有目标的运行状况检查失败,则 Application Load Balancer 不会自动进行故障转移。相反,Application Load Balancer 会将所有请求发送至另一个目标组。

例如,如果第一个目标的权重是 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>

如果您切换权重并将第二个目标的权重设置为 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>

这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?