23

它已经出现了一段时间,但现在亚马逊已经发布了弹性负载平衡(ELB),您对为高流量 Web 应用程序部署此解决方案有何想法?

我们应该替换HAProxy还是将 ELB 作为 HAProxy 前面的免费服务?

4

5 回答 5

28

我已经在一个每天获得大约 100,000 次访问的网站上运行 ELB 而不是 HAProxy 大约一个月了,我对结果非常满意。

不过有个问题(更新,这个问题已经被亚马逊 AWS修复了,见下面的评论):

  1. 您无法对域的根目录进行负载均衡,因为您必须为负载均衡器创建CNAME别名。一旦解决方案是将所有流量从 重定向http://mysite.comhttp://www.mysite.com

除此之外,我对 AWS ELB 产品的评价还不够高。我也在使用 Cloudwatch 监控和自动缩放。哦,别忘了它比运行一个小型EC2实例便宜(每小时 0.025 美元而不是 0.10 美元)。

于 2009-06-28T19:39:04.013 回答
19

ELB 对 DNS CNAME 记录间接的依赖对于需要非常快的 Web 服务来说是相当严重的。在我们的例子中,我们需要有非常好的响应时间。在快速性能测试中,使用 ELB 将 HTTP 请求的平均延迟增加了近 2 倍。这主要是因为 CNAME 查找的 TTL 为零。因此,所有查找都涉及访问两个不同域的名称服务器,因此名称解析要慢得多。(我担心击败 DNS 中的缓存只是对系统的滥用。)在我们的案例中,ELB 的唯一希望是通过让 Amazon 支持弹性 IP 作为负载均衡器实例的地址来摆脱 CNAME 记录。

于 2009-09-01T16:21:28.890 回答
10

另一个问题是获取客户端 IP 地址。对于常规 HTTP,这可以正常工作,因为 ELB 设置了 X-FORWARDED-FOR 标头。但是对于 HTTPS,这是不可能的,因为它是在 TCP 层转发的。希望有一天ELB会终止SSL。

于 2009-11-12T18:53:13.077 回答
6

亚马逊论坛上有关于 ELB 可靠性的投诉。我建议你去那里搜索ELB,在这方面形成你自己的看法。

我们想使用 ELB 来负载平衡 Web 服务请求,但是我们有很多外部调用者,其中一些会发送 100-Continue HTTP 消息。不幸的是,ELB 不理解 HTTP 协议的那一部分,所以在解决这个问题之前,我们无法超越概念验证。

2013 更新

根据 AWS 论坛帖子,现在支持 HTTP 100-Continue。

https://forums.aws.amazon.com/message.jspa?messageID=144022

于 2009-07-20T05:03:51.850 回答
0

对于许多使用 ELB 的用户来说,一个主要问题是它不支持粘性,这是许多 Web 应用程序的杀手锏。

然而,根据亚马逊 AWS开发人员的说法,它应该会出现在下一个版本中。

于 2009-09-28T02:16:52.577 回答