AWS Elastic Load Balancer DNS 问题

AWS Elastic Load Balancer DNS 问题

我们想看看使用 Route 53 是否允许我们将流量路由到我们的机器而不是 AWS ELB,只是为了实验,我们注意到了以下情况。

我们有一些 Nginx 机器在 AWS ELB 下运行。我们还在 Route 53 中更新了这些机器的公共 IP,并立即删除了不健康的 IP。然后,我们添加了加权路由,以便一半的流量通过 ELB,另一半直接通过 Route 53 到达这些机器。我们在所有机器上都启用了 Grafana 监控,这意味着我们在 Grafana 中看到的流量应该几乎是 AWS ELB 中流量的两倍。事实并非如此。我们仍然看到 ELB 中几乎 80% 的流量。我们在 24 小时前启用了此功能。当我们没有这种流量分割,并且只向 ELB 发送流量时,Grafana 仪表板和 AWS ELB 显示的流量完全相同,这让我们相信我们的监控管道没有问题。

我们做这个练习是因为我们最终想要移除 AWS ELB 来代替我们自己的,并且我们想知道我们的机器在没有 ELB 的情况下是否可以处理事情,因为现在它们将直接连接到客户端。我现在的问题是:我们是否在丢失流量,我们如何发现?为什么 ELB 一天后仍然显示超过 50% 的流量?

目前,ELB 显示为 6.8M,但 Grafana 显示为 9M。至少从理论上讲,Grafana 不应该至少是 ELB 的两倍吗?我理解 IP 必须由 ISP 或客户端缓存,但在这种情况下,如果 ELB 机器出现故障,到这些 IP 的流量一定会丢失?我有点困惑和不安。

答案1

Route53 作为 DNS 服务,不控制流量的大小和流向何处。

想象一下,您有 2 个客户端 - Client1 和 Client2。Client1 查询 yourdomain.com 并接收 IP 地址 10.100.10.20,然后 Client1 在 30 个连续连接中下载 100 MB。

现在,客户端 2 查询 yourdomain.com 并接收 IP 地址 10.100.10.30,然后客户端 2 在 50 个连续连接中下载 25 MB。

在这种情况下,Route53 在两个服务器上均匀地“负载平衡”DNS请求。但是,每个客户端提取的数据量不同,并且为此建立的连接数也不同。因此,现在您的负载均衡器显示100MB的流量和30个连接,而Grafana显示125Mb的流量和80个连接。

如果您想要真正实现流量负载平衡,那么您需要一个负载平衡器。这就是 ELB 的功能。Route53 不提供此功能,它仅实现 DNS 请求负载平衡。

相关内容