概览
有了 Auto Scaling,您便可以根据自己定义的条件自动扩展或缩减 Amazon EC2 容量。借助 Auto Scaling,您可以确保所使用的 Amazon EC2 实例数量在需求峰值期实现无缝增长以保持性能,也可以在需求平淡期自动减少,以最大程度降低成本.Auto Scaling 特别适合每小时、每天或每周使用率都不同的应用程序。
但 Auto Scaling 提供了多种方式来增加和删减服务器。它还是一种故障处理机制,其方法类似于负载均衡处理不响应服务器。该实验将展示配置 Auto Scaling 以自动启动、监控和更新与您的 Elastic Compute Cloud (EC2) 实例相关的负载均衡器。
关于 Auto Scaling,有两件重要的事需要了解。首先,Auto Scaling 是设置“云温度”的一种方法。您使用策略来“设定恒温器”,在满足“恒温”这一前提下,Auto Scaling 根据需要增加或删减 Amazon EC2 资源来控制热度,以便维持“温度”(容量)。
Auto Scaling 策略包括:
-
一种启动配置,用于定义为响应增加的需求而创建的服务器。
-
一个 Auto Scaling 组,用于定义何时使用启动配置创建新的服务器实例,以及应在哪个可用区和负载均衡器上下文中创建这些实例。
第二,Auto Scaling 假定一组同性质的服务器。也就是说,Auto Scaling 不知道服务器 A 是一个 64 位超大型实例,比 32 位小型实例性能强大。实际上,这是云计算的一个核心原则,即:使用可替代资源群水平扩展;单个资源作为资源群的次要选项。
涵盖的主题
完成本实验后,您将能够:
- 使用命令行工具创建新的启动配置
- 使用命令行工具创建新的 Auto Scaling 组
- 配置 Auto Scaling 通知,以在实例资源过高或过低时会触发通知
- 创建策略以根据资源利用率的变化扩展或缩减当前正在运行的实例的数量
实验先决条件
若要成功完成此实验,您应该熟悉基本 Linux 服务器管理并自如地使用 Linux 命令行工具。您还应该熟悉新建 Amazon EC2 服务器实例和配置 Elastic Load Balancing 的基础知识。
其他 AWS 服务
在您访问本实验期间,IAM 策略将禁用本实验不需要的其他 AWS 服务。此外,本实验中只会使用所需的服务功能,并且在某些情况下,甚至会根据实验设计特意进一步限制这些功能。在访问其他服务或执行本实验指南中未提供的操作时,预计会出现错误。
Auto Scaling 的关键组件
当您手动启动服务器时,要提供各种参数,如哪个 Amazon Machine Image (AMI)、哪种实例类型、要在哪个安全组中启动等。Auto Scaling 称此为启动配置。它只是一组参数,用来描述要启动的实例类型。
Auto Scaling 组会告诉系统实例启动后如何处理。您要在这里指定要在哪个可用区启动您的实例,这些实例可以接受来自哪个负载均衡器的流量,最重要的是,还要规定在任何指定时间同时运行的最少和最多实例数量。
您需要规则以告知系统何时增加或删减实例。这些被称为扩展策略,其中包含诸如“将实例群扩展 10%”和“缩减 1 个实例”之类的规则。
时间很重要
有些成本与使用 Auto Scaling 有关。有两个重要因素直接影响 AWS 的成本和您的应用程序扩展方式:成本和时间。
Amazon EC2 Linux 实例是按秒收费的
这意味着您可以在执行大量活动时向外扩展服务器,然后在需要较少容量时进行收缩以降低成本。
扩展需要时间
请考虑以下图表。在大部分情况下,需要发生扩展事件的时间和扩展事件的发生时间之间有很长的时间跨度。
- 在此示例中,规则规定您必须处于特定条件至少两分钟。
- CloudWatch 是基础数据收集系统,监控 CPU 使用率之类的统计信息。在轮询协议中,一般需要 60 秒来聚合新的数据。
- 自动扩展也是一个轮询系统,需要再花 60 秒。
- 然后,是服务器的启动时间。一个庞大而复杂的服务器启动时可能需要许多分钟。
- 最后,负载均衡器需要轮询服务器几个周期,然后才能确信服务器运行状况良好,可以接受请求。