AWS是否支持加权负载平衡?

时间:2017-06-07 12:03:26

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

AWS本身是否支持加权负载平衡?

从我看来,ELB仅支持循环负载平衡(没有任何可配置的权重)。但我没有找到可靠的文档。

我能想到的最简单的事情就是在它前面放置一个像Nginx这样的负载均衡器,例如:

upstream backend  {
  server backend1.example.com weight=1;
  server backend2.example.com weight=2;
  server backend3.example.com weight=4;
}

在这里,七个请求中,一个将转到backend1,两个转到backend2,另外四个转到backend4。

它会起作用,但这也意味着你必须为此设置一个带有Nginx的服务器。如果AWS将直接支持加权负载平衡,那将更容易设置。

4 个答案:

答案 0 :(得分:3)

How Elastic Load Balancing Works文档页面说明:

  

使用经典负载均衡器,接收请求的负载均衡器节点使用循环路由算法(适用于TCP侦听器)选择已注册的实例针对HTTP和HTTPS侦听器的未完成请求路由算法

     

使用应用程序负载均衡器,接收请求的负载均衡器节点按优先级顺序评估侦听器规则,以确定要应用的规则,然后从目标组中为规则选择目标使用循环路由算法的操作。即使目标在多个目标组中注册,也会为每个目标组独立执行路由。

Elastic Load balance服务支持加权循环(您指定权重)。

您可以将Amazon Route 53与加权路由策略一起使用。从Choosing a Routing Policy文档页面:

  

当您有多个执行相同功能的资源(例如,服务于同一网站的Web服务器)并且您希望Amazon Route 53将流量路由到这些资源时,请使用加权路由策略您指定的比例(例如,四分之一到一个服务器,四分之三到另一个)。

答案 1 :(得分:2)

您可以将Route53 weight路由直接用于您的服务器或多个ELB

答案 2 :(得分:2)

如果您使用 AWS Route 53 作为DNS服务,则可以在DNS记录上配置权重年龄。

DNS weight-age refer 2.2

  

Amazon Route 53支持加权循环法。加权循环法   允许您为资源记录集分配权重   指定提供不同响应的频率。您   可能想用这个功能进行A / B测试,发送一个小的   到您进行软件更改的服务器的流量的一部分。   例如,假设您有两个与一个DNS关联的记录集   名称 - 一个体重3和一个体重1.在这种情况下,75%的体重   时间路线53将返回重量为3和25%的记录集   时间路线53将返回重量为1的记录集。权重可以是   0到255之间的任何数字。

答案 3 :(得分:1)

基于AWS新功能的更新

最初,您无法在LoadBalancer上执行加权路由。但是,最近发生了改变

如果您正在使用应用程序负载平衡器,则可以设置将使用加权策略的ListenerRule。

步骤:

  1. 创建您的负载均衡器
  2. 将侦听器添加到您的负载均衡器
  3. 在侦听器上添加侦听器规则
  4. 添加一个策略,该策略根据您需要的任何IF语句转发流量
  5. 您现在可以选择添加多个目标组,添加目标组并为每个目标组分配加权的数量。

您可以在此处查看有关此内容的AWS博客文章:https://aws.amazon.com/blogs/aws/new-application-load-balancer-simplifies-deployment-with-weighted-target-groups/