AWS Auto Scaling のアイコン

AWS Auto Scaling 经典2009年〜

根据需求自动扩缩 EC2、ECS、DynamoDB 等资源的服务

它能做什么

AWS Auto Scaling 是根据应用需求自动增减 EC2 实例、ECS 任务、DynamoDB 表、Aurora 副本等资源数量的服务。基于 CPU 使用率和请求数等指标设置扩展策略,负载高时添加资源,低时减少资源。兼顾性能维护和成本优化。

使用场景

用于应对电商网站促销时的访问激增、在工作时段和夜间变动服务器数量以优化成本、自动调整资源以保持 Web 应用响应时间恒定等。使用预测扩展还可根据历史流量模式预测需求并提前扩展。

日常类比

可以将其比作超市的收银台。顾客少的时段只开 2 个收银台(服务器),拥挤时自动增加到 5 个。空闲后再恢复为 2 个。店长(Auto Scaling)始终监控顾客排队情况(负载),自动调整最优收银台数量。

什么是 Auto Scaling

AWS Auto Scaling 是根据应用负载自动增减资源数量的服务。云的一大优势是可以按需使用资源。Auto Scaling 将这一优势自动化,省去手动添加和删除服务器的麻烦。同时防止资源过剩导致的成本浪费和资源不足导致的性能下降。

扩展策略

Auto Scaling 主要有 3 种扩展方式。目标跟踪扩展是最简单的方式,只需设置目标值(如将 CPU 使用率维持在 70%)。步进扩展可根据负载级别设置不同的扩展量。计划扩展可基于时间段设置(如每天早上 9 点增加实例)。

预测扩展

预测扩展是通过机器学习分析历史流量模式,预测未来需求并提前扩展的功能。例如,如果每天上午 10 点访问量激增,会在 10 点前稍早增加实例。即使是反应式扩展来不及应对的急剧负载增加也能处理。 关于预测扩展的实践案例和活用方法,可以参考相关书籍(Amazon)

开始使用

对于 EC2,首先在启动模板中定义实例配置,然后创建 Auto Scaling 组。设置最小、最大和期望实例数,添加扩展策略。最简单的入门方式是设置目标跟踪策略,将 CPU 使用率目标设为 70%。可通过 CloudWatch 指标确认扩展行为。

注意事项

  • Auto Scaling 本身免费,但扩展添加的资源(EC2 实例等)按正常费率收费
  • 缩容时实例会被终止,因此前提是无状态应用设计。会话信息应外部化到 ElastiCache 或 DynamoDB
  • 如果冷却期设置不当,可能出现扩展和缩容频繁交替的"抖动"现象
共有するXB!