Step scaling和simple scaling都需要从CloudWatch alarm里拿指标数据,用户需要定义当检测到达到阈值后ASG如何进行扩容
一般建议优先使用target tracking scaling方式,因为它可以根据线上的负载成正比扩容;如果需要额外的补充扩容方式,则可以额外配置step scaling作为更加激进的扩容方式
相同之处:
CloudWatch alarm指标,而且需要配置两个alarm(触发扩容和缩容的条件)。不同点:
step scaling优于simple scaling 。simple scaling的最大问题在于它有冷确时间(cooldown period),前面我们也介绍过这个设计;而step scaling即使在扩缩容活动发生后,仍然可以响应其他的触发条件simple scaling;target tracking和step scaling是后面AWS才推出的特性。所以你懂的,越新的通常越好在这一部分,我们将简单演示两种扩容方式如何创建
一开始提到,Step scaling和simple scaling都需要从CloudWatch alarm里拿指标数据,所以我们要提前创建好一个alarm:

选择任意一台EC2的CPU使用率(或者其他监控指标,本节只演示如何创建,不会测试实际效果)当作监控指标:

当CPU使用率大于60的时候触发告警:

选择好SNS当作通知目标,将alarm命名为EC2CPUForASG,最后创建好alarm:

在ASG控制台上创建一个新的Dynamic scaling policy:

选择step scaling类型,并选择上面创建好的alarm:

此时我们可以配置具体的扩容策略:
如果CPU使用率在60-80%,则每次扩容1台EC2
如果CPU使用率在80-90%,则每次扩容3台EC2
如果CPU使用率在90-100%,则每次扩容5台EC2
所以Step scaling在线上流量突增时,能够采取更激进的扩容方案来应对
在ASG控制台上创建一个新的Dynamic scaling policy,选择Simple scaling类型:

Simple scaling只支持固定数量的扩缩容方式,比如一次增加/移除 2台EC2;或者当触发告警时,把ASG机器数量设置成固定某个值