负载均衡对于一个系统的高可用性和可靠性起着关键作用。当后端服务器出现故障或不可用时,负载均衡器可以智能地将请求重定向到其他可用的服务器上,从而确保服务的持续运行。同时,在分布式部署的场景中,负载均衡器确实是一个重要的组件,因为它可以帮助处理大量的并发请求,并确保各个服务器之间的负载得到均衡。
目前,大多数云服务平台都提供负载均衡,例如 AWS、Google、Azure、DigitalOcean 等。不过计费方式都不同,有些计费规则非常复杂,很容易出现高额费用。我们举个例子大家就明白了。
这个例子是来自于 Reddits 上的案例。一个博主的团队开始使用 AWS,然后将 4 个container 迁移到 AWS,设置如下:
-
其中 3 个是AWS Fargate Spot上托管的Node.js Web应用程序。
-
另 1 个容器是始终与另一个网站保持 WebSocket 连接的服务,托管在AWS Fargate(非Spot)上。这个 WebSocket 连接传输的数据量约为每天 6 MB。
同时,他还有 4 个负载均衡器,每个负载均衡器都连接了一个 container。
-
3 个 Application Load Balancer 连接 Node.js web应用
-
1 个 Network Load Balancer 连接 websocket
一切都看起来不错,只是负载均衡器的费用似乎比他预期的要高得多。平均而言,他在AWS上的费用中有50%来自4个负载均衡器。平均每天要为负载均衡器花费 1.50 美元。但是网站流量并不高,根据负载均衡器上的监控选项卡显示,每个网站平均每小时的请求量不到80次(每天不到2000次请