当前位置: 首页 > 知识库问答 >
问题:

AWS应用型负载均衡-重定向一小部分流量

屠君墨
2023-03-14

是否有一种解决方案可以将一小部分流量重定向到AWS应用程序负载平衡器?

10%-

90%-

(ALB或目标群体)

谢谢你的帮助

共有2个答案

张鹏鹍
2023-03-14

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

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

因为它的实现非常简单,比AWS支持提供的解决方案更容易,如果太长,请得出结论:

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

10%-

90%-

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

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

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

此外,我从您的示例中了解到,如果您试图通过单独的负载平衡器路由10%的API流量,并看到与我们的权重不一致的零星流量爆发(远远高于10%)。

我举了一个50:50权重的例子来解释流量的一致性。

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

其工作方式是Route 53名称服务器将根据赋予它们的权重按比例返回每个记录的IP地址。

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

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

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

换言之,虽然DNS加权路由(或加权循环)不能提供真正的负载平衡,并且不能期望导致权重与endpoint的传入流量精确匹配。

桂学
2023-03-14

您可以使用亚马逊路线53-加权路线:

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

 类似资料:
  • 我有一个EC2实例,它托管一个在IIS中运行的网站。我还设置了一个带有HTTPS侦听器的AWS应用程序负载平衡器,并在其中添加了网站的SSL证书(保存在AWS证书管理器中)。HTTPS侦听器将流量重定向到我的目标组,目标组又指向我的EC2实例。EC2实例使用安全组只允许来自负载平衡器的流量。 首先,我是否正确地认为应用程序负载平衡器会解密SSL流量,从而使用HTTP将其转发到我的目标组(换句话说,

  • 是否需要检查在EKS中创建的入口资源和由AWS负载均衡器控制器创建的应用程序负载均衡器之间的映射? 我的理解是AWS LBC为类“alb”的入口创建了ALB。删除入口资源后,应该删除此ALB。 但这种情况有时不会发生。可能是因为我搞乱了其他相关资源,比如statefulset、service或pod。(或者可能是由于重复部署而没有首先删除?) 那么,有没有办法在AWS中查看入口和相应ALB之间的链

  • 问题是,我还想将HTTP访问重定向到HTTPS,然后我试图添加一个规则将80重定向到443,因此它将落入第一个规则(443到8080)并使用证书,但它不起作用。在网上研究,我发现我应该在我的。htacess文件中添加一些行,但也不起作用。我认为这不是我的解决方案,因为所有HTTPS的东西都在AWS端,有没有一种方法可以只通过AWS将HTTP重定向到HTTPS而不改变服务器?

  • 目标是在一个简单的堆栈中包含 HTTP/2 支持:在多个 EC2 实例中部署的 Web 应用程序是启用了 PROXY 协议策略 (SSL:443 ➝ TCP:80) 的传输级 CLB,以便卸载 SSL/TLS 并平衡传入的 HTTPS 流量。 PROXY协议的几个原因:(1)地理定位逻辑的执行;(2)执行简单的访问控制规则;(3)日志记录。所有这些功能都需要访问可靠的(即不可轻易伪造的)客户端IP

  • 我想做一些类似的事情:创建AWS应用程序负载平衡器规则,该规则修剪请求的前缀,而不使用额外的反向代理,如nginx、httpd 使用AWS负载平衡器,将流量从URL(例如)重定向到条形图(如下所示): 但是只有GET请求被正确路由,POST、PUT等被路由为GET,所以我收到一个错误,因为我的控制器没有这些GET方法。 有没有办法用AWS负载平衡器做到这一点? 我联系的问题是2016年的,所以我希

  • 内容提要 本章主要介绍了网站重定向和负载均衡的一些技术,术语网站架构方面的知识! 技术概览 重定向技术通常可以用来确定报文是否终结于某个代理、缓存或服务器集群中某台特定的服务器。重定向技术可以将报文发送到客户端没有显示请求的地方去。与此需要涉及到的技术: 1、HTTP重定向 2、DNS重定向 3、任播路由 4、策略路由 5、IP MAC转发 6、IP地址转发 7、WCCP(Web缓存协调协议) 8