AWS Application Load Balancer-重定向一小部分流量

时间:2018-06-25 10:54:33

标签: amazon-web-services elastic-load-balancer

是否有解决方案将一小部分流量重定向到AWS Application Load Balancer?

10%-> ALB X

90%-> ALB Y

(ALB或目标组)

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

您可以使用Amazon Route 53 - Weighted Routing

  

加权路由可让您将多个资源与单个域名(example.com)或子域名(acme.example.com)关联,并选择将多少流量路由到每个资源。这可用于多种目的,包括负载平衡和测试软件的新版本

答案 1 :(得分:0)

我最终选择了一个好的NGINX解决方案:

https://medium.freecodecamp.org/a-b-testing-with-nginx-in-40-lines-of-code-d4f94397130a

由于实施起来非常简单,比AWS Support提供的解决方案容易,如果时间太长,请得出结论:

  

据我了解,您想知道是否可以将一小部分流量重定向到应用程序负载平衡器。   示例:

     

10%-> ALB X

     

90%-> ALB Y

     

这可以通过route53加权路由策略实现

     

加权路由使您可以将多个资源与单个域名(example.com)或子域名(acme.example.com)关联,并选择将多少流量路由到每个资源。这对于多种目的很有用,包括负载平衡和测试软件的新版本。   要配置加权路由,请为每个资源创建具有相同名称和类型的记录。您为每个记录分配一个相对权重,该权重与您要发送给每个资源的流量相对应。 Amazon Route 53根据您分配给记录的权重将流量发送到资源,占该组中所有记录总权重的一部分:

     

例如,如果您要将流量的一小部分发送到一个资源,而将其余部分发送到另一资源,则可以指定权重1和255。权重为1的资源将获得流量的1/256 (1/1 + 255),而其他资源获得255/256个(255/1 + 255)。您可以通过更改权重逐渐更改余额。如果要停止向资源发送流量,可以将该记录的权重更改为0。

     

我也从您的示例中了解到,如果您尝试通过单独的负载均衡器路由10%的API流量,并发现零星的流量爆发,这与我们的体重不一致(远高于10%)。

     

我以50:50的权重为例来说明流量的一致性。

     

Route 53中的加权路由策略允许您通过为与域名关联的每个记录分配权重来模拟负载平衡。

     

工作方式是Route 53名称服务器将按分配给它们的权重按比例返回每个记录的IP地址。

     

这意味着如果将50权重赋给一条记录,将50权重赋给另一条记录,例如记录A(Weight:50)和记录B(Weight:50),则查询名称服务器以获得主机名100次,名称服务器将返回分配给记录A的IP地址50次,并分配给记录B的IP地址50次。

     

但是,这并不意味着每个DNS查询都会导致到达每个端点的请求数量保持一致。

     

请记住,加权DNS路由不等于负载平衡,并且不能保证到达加权资源记录的请求将完全相等。   这是由多种因素引起的,包括在客户端DNS缓存服务器上进行DNS缓存。如果一个客户端收到记录A的IP地址,它将在DNS记录的TTL持续时间内将其保留在其本地缓存中,这是您的记录当前60秒那时,客户端可以创建多个请求,而同时收到记录B的IP地址的客户端可以发送单个请求。

     

换句话说,尽管DNS加权路由(或加权轮询)不能提供真正的负载平衡,并且不能期望导致权重与到达端点的传入流量完全匹配。 < / p>