EC2中的弹性负载平衡

时间:2009-05-18 12:21:21

标签: load amazon-ec2 load-balancing haproxy

它已经存在了一段时间,但现在亚马逊发布了Elastic Load balancing(ELB),您对为高流量Web应用程序部署此解决方案有何看法?

我们是否应该替换HAProxy或将ELB视为HAProxy面前的免费服务?

5 个答案:

答案 0 :(得分:28)

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

虽然有问题(更新,此问题已由Amazon AWS修正,请参阅下面的评论):

  1. 您无法对域的根进行负载平衡,因为您必须为负载均衡器创建CNAME别名。解决方案是将所有流量从http://mysite.com重定向到http://www.mysite.com
  2. 除此之外,我真的不能高度评价AWS ELB产品。我也在使用Cloudwatch监控和自动缩放。哦,不要忘记它比运行一个小的EC2实例便宜(每小时0.025美元而不是0.10美元)。

答案 1 :(得分:19)

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

答案 2 :(得分:10)

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

答案 3 :(得分:6)

亚马逊论坛上有人抱怨ELB的可靠性。我建议你去那边搜索ELB,在这方面形成你自己的意见。

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

2013年更新

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

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

答案 4 :(得分:0)

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

根据Amazon AWS开发人员的说法,它应该在下一个版本中出现。