AWS - Auto Scaling 介绍

陈和裕
2023-12-01

声明:

本博客欢迎转发,但请保留原作者信息!内容系本人学习、研究和总结,如有雷同,实属荣幸!

原文地址:http://blog.csdn.net/gtt116/


本文简要介绍aws的auto scaling以及相关概念,让读者对auto scaling服务有一个基本的认识。


概要

Auto Scaling(简称AS)是为了方便用户增减虚拟机的服务,以达到最大化系统使用率和最小化成本的目的。

主要的使用情景:用户需要创建一个集群对外提供数据库服务,并且希望在访问量大时增加节点数量,在访问量小是减小节点数量;在晚上减少节点数,白天增加节点数;并且保证健康的节点数量是5台。

AS将会根据以上需求对集群进行管理,在符合条件时,对集群内的虚拟机作出相应的动作。例如当AS发现集群中有一个节点状态异常,为了保证健康节点数量为5,它将会自动创建一台虚拟机,并且监视其状态。  如此用户可以完全不用费心在集群的管理上,让AS智能管理整个集群。


名词解释

Auto scaling group

   可以理解为一个集群,这个集群中包含了很多配置相似的虚拟机,AS将会维护这个group的状况。


Health Check

   AS是通过虚拟机的健康状况来做相应的动作的。AS将会定期检查虚拟机的状态,如果发现虚拟机的状态不是running,那么将会认为虚拟机为“不健康”的,它将会删除这个虚拟机,然后新建一个虚拟机来代替“不健康“虚拟机。


Launch Configuration

  运行配置,定义虚拟机的参数,AS则用这些参数启动虚拟机。例如指定镜像id号,虚拟机的规格为:m1.small,安全组规则为sg-aaa等。


Policy

  响应策略,定义一些列动作,这些动作将会在AS收到CloudWatch的警告消息后触发。例如CloudWatch发送某虚拟机的CPU使用率超过了80%,则创建一台虚拟机。那么当AS收到CloudWatch的消息后将会自动创建一台虚拟机。


Availability Zones and Regions

  aws中将虚拟机的容灾划分为两个级别,Availability Zones和Regions,前者是地理上的隔离,后者是工程上的隔离。可以简单的理解成前者是最高级别的容灾,后者是低成本的容灾。一个集群只能在一个regions中,但是可以制定很多Availability Zones,AS将会将虚拟机尽量分布在各个zone内,如果它发现某个zone不可用,为了达到集群的设定要求,它会选择其他合适的zone来创建虚拟机,保证集群正常运行。


Elastic Load Balancer(ELB)

  AS允许你使用负载均衡作为集群的服务入口。在创建集群之前先建好负载均衡,然后在定义Auto scaling group时,指定所用的ELB,那么AS会将所有集群虚拟机加到这个(些)ELB后端。


一般使用方法

1. 创建Launch Configuration:

   在此过程中需要指定虚拟机的镜像id号,规格。并且还可以指定挂载卷,安全组,user-data等所有启动虚拟机时使用的配置参数。


2. 创建Auto scaling group:

   设定一个集群,需要用到第1步设定的Launch Configuration,并且指定最少节点数量,最多节点数量,安全检查的类型,是否需要负载均衡等。


通过以上两个步骤就完成一个集群的设定,然后就可以等着AS为你建立理想的集群了。


控制集群大小

  有3中方式来控制集群的大小:手动,定时,策略。

   手动:直接执行修改命令:如“修改集群大小到10”,“增加1%","集群大小+1“。

   定时(scheduled):某段时间内改变集群的数量,如“0点到8点集群数量为5,8点到0点集群数量10”

   策略(policy):需要与CloudWatch联动,可以十分细腻的控制集群的数量。例如CloudWatch监控到集群的CPU占用率持续大于80%,那么增加节点。下面将会详细介绍此方法。


与CloudWatch联动

     首先简单介绍CloudWatch,它是用来监控某个虚拟机的状态的,例如CPU利用率,内存使用率,流入网络,流出网络。另外还可以设定Alarm,例如可以设定当某虚拟机的CPU利用率大于80%,并且持续了10分钟,那么引发一个Alarm,然后CloudWatch会将此Alarm发邮件给管理员,或者发送到AS中。

     与CloudWatch联动,首先创建Auto scaling group,然后在Cloudwatch中创建对应此group的Alarm,并且在AS中设定对应的Policy。这样当CloudWatch引发Alarm的时候,AS就会执行Policy中的命令。

     举例说明:设定Auto scaling group: group-1,然后在CloudWatch设定10分钟内group-1的CPU占用率持续大80%,那么引发一个Alarm,通知AS的policy,这个policy会增加一台虚拟机。对应的,你还可以设定当group-1的CPU占用率持续小于10%,那么减少一台虚拟机。



参考:

http://docs.amazonwebservices.com/AutoScaling/latest/DeveloperGuide/US_BasicSetup.html

http://docs.amazonwebservices.com/AutoScaling/latest/APIReference/Welcome.html

http://docs.amazonwebservices.com/AutoScaling/latest/DeveloperGuide/US_SetUpASLBApp.html



 类似资料: