使用 Auto Scaling,您可以维持应用程序的可用性,并根据自己定义的条件以动态方式自动扩展或缩减 Amazon EC2 的容量。您可以将 Auto Scaling 用于 EC2 实例的队列管理,以帮助维持队列的正常运行和可用性,并确保当前运行的是所需数量的 Amazon EC2 实例。您还能将 Auto Scaling 用于 EC2 实例的动态扩展,以便在需求高峰期自动增加 Amazon EC2 实例的数量来维持性能,并在需求较低时自动减少容量来降低成本。Auto Scaling 既适合需求稳定的应用程序,同时也适合每小时、每天、每周使用量不停波动的应用程序。除了将 Auto Scaling 用于 Amazon EC2,您还能使用 Application Auto Scaling 来自动扩展其他 AWS 服务 (包括 Amazon ECS、Amazon EC2 竞价型队列、Amazon EMR 群集、AppStream 2.0 队列和 Amazon DynamoDB)的资源。

立即开始使用 Auto Scaling
VideoThumbnail

开始免费使用 AWS

创建免费账户
或登录到控制台

获得 12 个月的 AWS 免费使用套餐,同时享受 AWS 的基本支持功能,包括全年全天候客户服务、支持论坛等。


不论您运行多少个 Amazon EC2 实例,都可以使用 Auto Scaling 来检测有问题的 Amazon EC2 实例和运行状况不佳的应用程序,而且不用您的介入就能完成实例的替换工作。这样可确保您的应用程序获得预期的计算容量。为了自动化 EC2 实例的队列管理,Auto Scaling 将执行三项主要功能,如此处和我们的博客 Fleet Management Made Easy with Auto Scaling 中所述。

  • 监控正在运行的实例的运行状况
    Auto Scaling 可确保您的应用程序能够接收流量,以及实例本身正常运行。如果 Auto Scaling 检测到实例未通过运行状况检查,则会自动替换该实例。
  • 自动替换受损实例
    如果受损实例未通过运行状况检查,Auto Scaling 会自动将其终止并替换为新实例。这意味着在实例需要替换时无需您手动操作。
  • 均衡可用区之间的容量
    Auto Scaling 会在配置的多个区域之间自动均衡 EC2 实例,并始终启动新实例以便它们跨整个队列尽可能均匀地分布在各个区域。   

Auto Scaling 让您能够密切关注应用程序的需求曲线,减少提前手动预置 Amazon EC2 容量的需要。例如,您可以使用目标轨迹扩展策略来选择应用程序的负载指标,如 CPU 使用率。或者,您可以使用 Application Load Balancer 中的新“每个目标的请求计数”指标 (即一种适用于 Elastic Load Balancing 服务的负载均衡选项),来设置目标值。然后,Auto Scaling 将根据需要自动调整 EC2 实例的数量以维持目标。您还可以使用简单的扩展策略设置一个条件,在 Amazon EC2 队列的平均使用率较高时增量添加新 Amazon EC2 实例;同样,也可以设置一个条件在 CPU 使用率较低时以同一增量删除实例。如果您的负载变化情况是可以预先判定的,则您还能通过 Auto Scaling 设置一个计划,来对您的扩展活动进行规划。此外,Auto Scaling 还能与 Amazon CloudWatch 结合使用,从而发送警报来触发扩展活动;与 Elastic Load Balancing 结合使用,从而帮助向 Auto Scaling 组中的实例分配流量。

AutoScaling
NASA JPL 在 re:Invent 2016 上讨论动态扩展

借助 Application Auto Scaling,您可以自动扩展 Amazon EC2 外的其他 AWS 服务的资源。其体验与使用 Auto Scaling 相似。您能够使用 Application Auto Scaling 定义扩展策略以自动扩展 AWS 资源、扩展您的资源以响应 CloudWatch 警报,以及查看扩展事件的历史记录。

Application Auto Scaling 能够扩展以下 AWS 资源:

  • Amazon ECS 服务:您可以选择配置 Amazon ECS 服务,以使用 Service Auto Scaling 根据 CloudWatch 警报上调或下调其预期数量。有关更多信息,请阅读我们的文档
  • Amazon EC2 竞价型队列:竞价型队列能够根据一个或多个扩展策略,在您选择的范围内启动实例 (扩展) 或终止实例 (缩减)。有关更多详细信息,请参阅该文档
  • Amazon EMR 群集:利用 Amazon EMR 中的 Auto Scaling,您可以基于您在扩展策略中指定的规则以编程方式扩展和缩减群集中的核心节点和任务节点。有关更多信息,请阅读我们的文档
  • AppStream 2.0 队列:您可以定义扩展策略,使其根据各种使用率指标自动调整队列的大小,并根据用户需求优化正在运行的实例的数量。您还可以选择关闭自动扩展功能,并使队列以固定大小运行。要了解更多信息,请参阅该文档
  • Amazon DynamoDB:您可以根据实际流量模式,动态调整预置的吞吐容量。这样一来,表格或全局二级索引便能提高其预置的读取和写入容量,从而不受限制地应对流量的突增。如果工作负载减少,Application Auto Scaling 会降低吞吐量,这样您就无需为未使用的预置容量付费。有关更多详细信息,请参阅该文档。您还可以阅读我们的博客 Auto Scaling for Amazon DynamoDB
  • 全新!Amazon Aurora Replicas:您可以自动添加或删除 Aurora Replica 以响应预定义指标 (例如,平均 CPU 利用率或平均活跃连接数) 的变化。您还可以创建自定义指标并对这些指标进行调节。Aurora Replicas 与数据库群集内的主实例共享底层卷,非常适合用于读取扩展。此功能适用于可支持 Aurora MySQL 的数据库群集。有关更多详细信息,请参阅该文档