什么是AWS自动扩展?
除了控制台之外,AWS自动扩展还带有一个名为 “扩展计划 “的功能,它可以根据应用程序的负载指标进行扩展。这个功能确保有足够的计算能力来支持你的应用程序的资源。
AWS自动扩展的常见用例包括优化应用和工作负载,其流量每周或每天都在变化。例如,你可以利用自动扩展来处理具有周期性流量的应用程序,这些应用程序在工作时间可能需要大量的资源,而在夜间则需要少量的资源。您还可以将自动扩展用于批处理、定期分析、测试、增长高峰和营销活动。
AWS自动扩展可以管理哪些类型的资源?
自动缩放支持以下AWS资源。
- EC2 自动扩展组-包含EC2实例的集合。该功能使您能够终止或启动位于自动缩放组中的EC2实例。
- EC2 Spot Fleet请求-使您能够自动终止或启动位于Spot Fleet中的实例。你也可以替换那些被中断的实例,以优化成本和容量。
- ECS-可以通过添加或删除容器来应对负载变化。
- DynamoDB-调整表或二级索引的配置读和写的容量,以管理流量的增加而不节流。
- Aurora-可以动态地添加或删除读取副本,帮助你自动处理活动工作负载和连接的变化。
AWS目前不支持自动扩展。
- EBS卷-EC2的自动扩展是没有状态的。安装在旧EC2实例上的AWS EBS卷不能与新EC2实例一起扩展。
- 弹性存储服务-包括简单存储服务(S3)和弹性文件存储(EFS),是为可扩展性而建立的,不需要扩展的扩展功能。
- 关系型数据库服务(RDS)-带有自己独特的扩展行为,与AWS自动扩展不兼容。
- 无服务器产品-来自AWS无服务器生态系统,如AWS Lambda和AWS Lambda Edge,不能使用AWS Auto Scaling进行扩展。
- 容器服务–如Elastic Kubernetes Service(EKS),不能使用AWS Auto Scaling。在自动扩展容器时,请使用Kubernetes部署的本地功能,如Cluster Autoscaler。
缩放计划如何工作
缩放计划是AWS自动缩放的基础。这些计划为扩展AWS资源定义了一组指令。为了简化组织并充分利用缩放,您可以使用CloudFormation和标签来对资源进行分类。你可以使用计划提供的推荐扩展策略来定制每个资源或组。
为了确保最佳效果,你可以将动态扩展与预测性扩展相结合。动态扩展是基于AWS监控基础设施的指标,主要是Amazon CloudWatch。
缩放策略
缩放策略定义了AWS自动缩放如何在一个缩放计划中优化资源的使用。你可以选择不同的扩展策略,并控制资源利用率的优化方式。您可以针对可用性、成本或两者的组合进行优化。
动态扩展
动态扩展策略可以主动修改资源容量,对资源使用的实时变化做出反应。这是基于一个可配置的负载指标,衡量你的应用程序的实际负载。其目的是提供所需的容量,以达到扩展策略中定义的目标值。
预测性扩展
预测性扩展能力使用机器学习来分析每个资源的历史工作负荷。利用这种分析,软件可以定期预测未来两天的负载。它自动创建扩展行动,提供所需的资源,以达到预测的目标利用率值。
AWS自动扩展的最佳实践
下面的最佳实践可以帮助你更有效地利用自动扩展。
以1分钟的频率使用EC2实例指标
为了确保快速响应应用程序指标的变化,您在扩展EC2实例时应使用1分钟的频率。如果你使用5分钟的频率缩放,你可能会在陈旧的指标基础上出现缓慢的响应。
注意,默认情况下,指标数据是以5分钟的间隔提供的。要把它降到一分钟,你将被额外收费。要在预测图中看到实际容量数据,你需要启用自动扩展组并完成创建扩展计划向导。
注意实例类型
自动扩展组可以使用不同的EC2实例类型。每种类型提供不同的性能。例如,T2和T3实例,具有可爆发的性能。这些实例提供一个标准的CPU性能水平,并在需要时可以突发到更高的水平。每个扩展计划都定义了目标利用率,但有可能超过标准水平并耗尽CPU点数。如果发生这种情况,性能将受到影响。
使用预测性扩展
预测性扩展功能根据工作负载的预测来安排未来的容量。然而,每个预测的质量可能是不同的,这取决于训练有素的预测模型能够准确评估工作负载的程度。这通常受到工作负载周期的高度影响。
为了评估预测质量和后续的扩展行动,你可以在仅预测模式下运行预测性扩展。你可以在创建扩展计划时进行设置,并在完成预测质量评估后将其改回预测模式。
关联扩展和负载指标
你可以为预测性扩展定义自定义指标。但是,你需要把负载指标和缩放指标紧密联系起来。确保指标值总是与你的自动缩放组中的实例数量成比例地减少和增加。目标是实现实例的按比例扩展。
总结
AWS自动扩展使您能够扩展广泛的AWS资源 它适用于广泛的资源,目前不包括EBS卷、弹性存储服务、关系型数据库服务(RDS)、无服务器产品和容器服务。为了充分利用AWS自动扩展,你应该根据你的需求和优先级选择合适的计划(或在它们之间组合)。
The postAWS Auto Scaling:掌握正确的方法》首次出现在DevOps大会上。