Auto Scale Group (ASG)¶
简单来说 ASG 就是一个自动启动和关闭 EC2 的管理器, 设定一个 最少, 最多的 EC2 台数, 然后 CPU 利用率高了就启动 EC2, 利用率低了就关闭 EC2.
Concept / Terms (概念/术语):
Launch Template: Metadata of EC2, 决定了自动启动的 EC2 机器的详细配置, 比如用哪个 Image, 多达的 CPU 和内存.
Launch Configuration:
min: 最少多少台
desired: 最开始的时候启动多少台
max: 最多多少台
Scale-out: 增加机器
Scale-in: 减少机器
Reference:
What Is Amazon EC2 Auto Scaling: https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html
Scaling Your Group¶
ASG 支持下面的几种调节方式:
Manual Scaling: 手动指定增加/减少多少台 EC2
Scheduled Scaling: 预定时的任务, 常用于可预测的高峰, 例如在 Black Friday 之前大幅增加机器.
Dynamic Scaling: 简单来说就是设定一个 最小 和 最大 的 EC2 数量, 用 CloudWatch 检测 EC2 的 Metrics, 比如一旦 CPU 占用率达到 90%, 则增加一台机器. 而 CPU 低于 10%, 则关闭一台.
Scaling Cooldowns: 简单来说就是在成功的进行一次 Scale 之后, 多久之内不进行 Scale. 常用于 Dynamic Scaling 非常频繁的增加和减少你的机器的情况.
Termination Policy¶
Controlling Which Auto Scaling Instances Terminate During Scale In:
Default Termination Policy: 哪个 AZ 上 EC2 最多, 就在那个 AZ 上关闭一个. apply to most of case
Customizing the Termination Policy
Instance Protection
Load Balancer Scale-in (减少机器) Scale-out (增加机器) 的具体流程: https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html
Controlling Which Auto Scaling Instances Terminate During Scale In: https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html
Amazon EC2 Auto Scaling Lifecycle Hooks: https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html