实现真的自动化——Auto Scaling

  • 包研

2014 年 9 月 1 日

话题:AWS云计算DevOps语言 & 开发架构文化 & 方法

高扩展性、高弹性是云平台的核心优势,要真正实现这一点不仅需要选择成熟而强大的云平台做基础,同时需要用户有一定开发和运维的基础,这样才能真正实现高扩展性与高弹性。在实际应用中,高扩展性、高弹性、高可用性往往与 Auto Scaling 结合在一起。通过 Auto Scaling,用户可以自动化的实现扩展或收缩,从而保证服务正常进行,并减少不必要的资源浪费。

设定恰当的规则

在亚马逊 AWS 上提供了 Auto Scaling 服务,EC2 实例可以被放置在被称为 Auto Scaling Group 的逻辑组中,经过简单的、适当的设置,这些 EC2 实例将立即具备高可用性、自动横向扩展能力、定时横向扩展能力。这其中的核心操作就是设定恰当的规则,这不仅要求你对自己的业务(产品)的特点熟悉,也需要一些简单的运维和开发基础。比如,你可以根据 CPU 使用率来实现 Auto Scaling:当 EC2 实例组合的平均 CPU 使用率超过 70% 时,则以 n 个实例为增量,向 Auto Scaling Group 添加新的 EC2 实例;同样,也可以设置一个条件,在 CPU 使用率降低至 10% 以下时,以同样的增量删除 EC2 实例。

在另外一种场景下,你需要保证服务的高可用,这时你可以设定一个固定的 EC2 实例数量 n,当某一个 EC2 实例出现故障时,系统会自动开启一个 EC2 实例,并将失效的实例释放掉,这样就保证了业务的高可用。

如果你想深入了解 Auto Scaling 的使用方式和更多应用场景,欢迎参与 9 月 16 日 InfoQ 在线课堂:《Architecting on AWS:迈向自动化——从 Auto Scaling 开始》,AWS 资深技术讲师包光磊先生将会做详细的讲解,并回答大家的问题,欢迎免费报名

AWS云计算DevOps语言 & 开发架构文化 & 方法