什么是 Amazon EC2 Auto Scaling? - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

什么是 Amazon EC2 Auto Scaling?

Amazon EC2 Auto Scaling 帮助您确保具有正确数量的 Amazon EC2 实例以处理应用程序负载。您可创建 EC2 实例的集合,称为 Auto Scaling 组。您可以指定每个 Auto Scaling 组中最少的实例数量,Amazon EC2 Auto Scaling 会确保您的组中的实例永远不会低于这个数量。您可以指定每个 Auto Scaling 组中最大的实例数量,Amazon EC2 Auto Scaling 会确保您的组中的实例永远不会高于这个数量。如果您在创建组的时候或在创建组之后的任何时候指定了所需容量,Amazon EC2 Auto Scaling 会确保您的组一直具有此数量的实例。如果您指定了扩展策略,则 Amazon EC2 Auto Scaling 可以在您的应用程序的需求增加或降低时启动或终止实例。

例如,以下 Auto Scaling 组的最小大小为 1 个实例,所需的容量为 2 个实例,最大大小为 4 个实例。您制定的扩展策略是按照您指定的条件,在最大最小实例数范围内调整实例的数量。


			基本 Auto Scaling 组的示意图。

Amazon EC2 Auto Scaling 的特点

使用 Amazon EC2 Auto Scaling,您的 EC2 实例会被组织为 Auto Scaling 组,因此可以将其视为用于扩展和管理的逻辑单元。Auto Scaling 组使用启动模板(或启动配置)作为其 EC2 实例的配置模板。

以下是 Amazon EC2 Auto Scaling 的主要功能:

监控正在运行的实例的运行状况

Amazon EC2 Auto Scaling 使用 EC2 运行状况检查自动监控您的实例的运行状况和可用性,并替换已终止或受损的实例以保持所需的容量。

自定义运行状况检查

除了内置的运行状况检查外,您还可以定义特定于您的应用程序的自定义运行状况检查,以验证其是否按预期响应。如果某个实例未通过自定义运行状况检查,则会自动替换该实例以保持所需的容量。

在可用区域之间平衡容量

您可以为 Auto Scaling 组指定多个可用区,随着组的扩展,Amazon EC2 Auto Scaling 会在可用区之间均衡您的实例。这可以保护您的应用程序免受单一位置故障的影响,从而提供高可用性和弹性。

多种实例类型和购买选项

在一个 Auto Scaling 组中,您可以启动多种实例类型和购买选项(竞价型和按需实例),从而允许您通过竞价型实例的使用来优化成本。您还可以将预留实例和 Savings Plan 折扣与组中的按需实例结合使用,从而享受这些折扣。

自动替换竞价型实例

如果您的组包含竞价型实例,则在您的竞价型实例中断时,Amazon EC2 Auto Scaling 可以自动请求替换竞价型容量。通过容量再平衡,Amazon EC2 Auto Scaling 还可以监控并主动替换中断风险较高的竞价型实例。

负载均衡

您可以使用 Elastic Load Balancing 负载平衡和运行状况检查来确保将应用程序流量均匀分配到运行状况良好的实例。无论何时启动或终止实例,Amazon EC2 Auto Scaling 都会自动向负载均衡器注册和注销这些实例。

可扩展性

Amazon EC2 Auto Scaling 还为您提供了多种扩展 Auto Scaling 群组的方法。使用 auto scaling 可以增加容量以处理峰值负载,并在需求较低时移除容量,从而保持应用程序可用性并降低成本。您也可以根据需要手动调整 Auto Scaling 组的大小。

实例刷新

实例刷新功能提供了一种机制,可在您更新 AMI 或启动模板时以滚动方式更新实例。您还可以使用分阶段方法(称为金丝雀部署)在一小部分实例上测试新 AMI 或启动模板,然后再将其推广到整个群组。

生命周期钩子

生命周期挂钩对于定义在新实例启动时或实例终止之前调用的自定义操作非常有用。此功能对于构建事件驱动架构特别有用,但它也可以帮助您在实例的整个生命周期中对其进行管理。

Support 支持有状态工作负载

生命周期挂钩还提供了一种在关闭时保持状态的机制。为确保有状态应用程序的连续性,您还可以使用缩减保护或自定义终止策略来防止进程长时间运行的实例提前终止。

有关 Amazon EC2 Auto Scaling 优势的更多信息,请参阅 Amazon EC2 Auto Scaling 优势

Amazon EC2 Auto Scaling 的定价

Amazon EC2 Auto Scaling 不收取任何额外费用,因此您可以轻松试用,看看它如何使您的 Amazon 架构受益。您只需为使用的 Amazon 资源(例如 EC2 实例、EBS 卷和 CloudWatch 警报)付费。

开始使用

首先,请完成创建您的第一个 Auto Scaling 组教程以创建 Auto Scaling 组,并了解该组中的实例终止时该组的响应情况。

使用 Auto Scaling 组

您可以通过下面的任何一种方式来创建、访问和管理 Auto Scaling 组:

  • Amazon Web Services Management Console – 提供了可用来访问 Auto Scaling 组的 Web 界面。如果您已经注册了 Amazon Web Services 账户,则可以通过登录来访问您的 Auto Scaling 群组 Amazon Web Services Management Console,使用导航栏上的搜索框搜索 Auto Scaling 群组,然后选择 Aut o Scaling 群组

  • Amazon Command Line Interface (Amazon CLI) — 为大量用户提供命令,并在 Windows Amazon Web Services、macOS 和 Linux 上受支持。要开始使用,请参阅 准备使用 Amazon CLI。有关更多信息,请参阅 Amazon CLI 命令参考中的弹性伸缩

  • Amazon Tools for Windows PowerShell— 为那些在 PowerShell 环境中编写脚本的用户提供一系列 Amazon 产品的命令。要开始使用,请参阅 Amazon Tools for Windows PowerShell 用户指南。有关更多信息,请参阅 Amazon Tools for PowerShell Cmdlet 参考

  • Amazon 软件开发工具包 — 提供特定语言的 API 操作并处理许多连接细节,例如计算签名、处理请求重试和处理错误。有关更多信息,请参阅 Amazon 软件开发工具包

  • 查询 API – 提供了您使用 HTTPS 请求调用的低级别 API 操作。使用查询 API 是访问 Amazon Web Services 的最直接方式。但它需要您的应用程序处理低级别的详细信息,例如生成哈希值以签署请求以及处理错误。有关更多信息,请参阅 Amazon EC2 Auto Scaling API 参考

  • Amazon CloudFormation— 支持使用 CloudFormation 模板创建 Auto Scaling 组。有关更多信息,请参阅使用 Amazon CloudFormation 创建 Auto Scaling 组

要以编程方式连接到 Amazon Web Service,请使用终端节点。有关调用 Amazon EC2 Auto Scaling 的 终端节点中的 Amazon中国亚马逊网络服务终端节点入门 Amazon Amazon Amazon