使用亚马逊AWS弹性负载均衡器

时间:2014-01-06 19:18:13

标签: amazon-web-services amazon-ec2 cloud autoscaling amazon-elb

我有兴趣了解ELB的工作。我有一个客户端向服务器发送CPU密集型请求。转发到服务器的所有请求都通过AWS ELB传递。我已经为服务器创建了一个自动扩展组,其扩展策略的平均CPU利用率阈值为80%。

例如,客户端将通过ELB仅发送5个请求。第一个请求转发到服务器,其CPU利用率达到100%。现在,对于第二个请求,如果我没有错,则会创建一个新实例。这个新实例需要一些时间来初始化&开始处理,使其CPU Util达到100%。这意味着我必须在转发到ELB的两个连续请求之间放置一些大于实例初始化时间的人工延迟,以便让一个服务器实例处理每个请求?如果我错了,请纠正我?在这种情况下应该添加什么最佳延迟?

此外,是CPU Util。整个自动缩放组或一个实例的阈值平均值?我的扩展政策是否有效?

期望的结果是每个服务器实例处理一个并且所有服务器并行运行。我这样做是为了使用弹性加快整体处理时间。

感谢您的期待

1 个答案:

答案 0 :(得分:0)

使用负载均衡器,您必须考虑启动和实例的时间。它可能会使您的解决方案比它需要的更复杂。相反,您可能需要考虑以下事项。

您有一个接收请求的实例。如果它不是很多请求,它甚至可能是一个微实例。然后,此实例将在SQS中创建作业。 (您可以使用其他消息队列系统,但可以在自动缩放中使用SQS指标。)

您的工作人员实例将从SQS接收消息,然后对其进行处理。您可以根据场景的最佳结果将结果保存到s3或数据库(您可以将结果传递给客户端提供的回调)。