Amazon EC2 的 AutoScaling 机制是如何工作的?

作者:subdragon
链接:https://www.zhihu.com/question/20636225/answer/15763624
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

AutoScaling是一个相对朴素的概念
但是其依赖于底层良好的基础设施,比如动态创建,比较监控
Amazon的AutoScaling主要是用一系列脚本封装了这些底层的基础设施,其核心是可以指定一个或者多个指标,当这些指标达到某种条件的时候可以按照指定的策略来进行scale up和scale down


针对楼主的问题
首先可以做AutoScaling的大多数是web服务,基于队列的计算任务这种已经解决了scale问题的使用场景,所以最终数据不应该放在AutoScaling的机器上,每一台机器down掉,应该都不影响整体的服务。输入的数据和计算出来的数据都应该存储在外部,比如s3比如rds。AutoScaling是建立在Scale的基础上的,如果Scale都还没有解决,就别谈AutoScaling了。

对于scale up分配的ec2资源,可以使用预制的镜像,或者在创建后回调自动化部署脚本(puppet,chef等),创建后可以配合相应的ELB和调度程序来完成集成。

下面是两个典型的AutoScaling案例
一个是web服务器的AutoScaling,这个配合ELB来完成即可。
另外一种是基于队列的计算任务,比如业务是图像处理,但是需要处理的图像数量随时间波动很大,可以将所有任务放到一个消息队列,根据队列的长度来加入和删除worker(ec2),每个worker启动后直接从队列里面取任务计算即可。


资料:
http://techblog.netflix.com/2012/01/auto-scaling-in-amazon-cloud.html
https://aws.amazon.com/cn/autoscaling/

你可能感兴趣的:(软件架构)