EC2自动伸缩:基础知识和4个最佳实践

什么是EC2自动缩放?

传统的IT环境是有限的,使用特定数量的服务器来处理任何给定应用程序的负载。当请求数量增加时,服务器上的负载也会增加。最终,对负载的需求会导致性能下降和故障。Amazon弹性计算云(EC2)提供的自动伸缩服务克服了这一挑战。

Auto Scaling确保有足够的EC2实例来运行应用程序。在服务运行之前,您需要定义自动伸缩组。对于每个组,指定EC2实例的最小或最大数量。Auto Scaling然后检测实例上是否有错误或失败,并立即启动另一个实例以维持所需的容量。

Amazon EC2还提供基于负载指标、CloudWatch警报、来自其他Amazon服务(如SQS)的事件或固定计划的动态自动伸缩策略。

EC2自动伸缩是AWS自动伸缩服务的一部分,该服务为多个Amazon服务提供自动伸缩。

在这篇文章中,你将学到:

EC2自动伸缩组件

EC2自动伸缩涉及三个关键组件:

自动缩放组

组将EC2实例组织成逻辑单元,用于扩展或管理目的。在创建自动伸缩组时,您可以指定所需的EC2实例的最小、最大和首选数量。

在EC2自动伸缩组指南中了解更多信息

发布模板

启动模板是一种配置自动伸缩的新方法,它取代了仍然作为传统选项支持的启动配置。

启动模板为在自动伸缩组中创建的新实例指定配置信息。这包括在创建实例、安全组和密钥对时使用的Amazon Machine Image (AMI)。

您可以使用版本控制来创建参数集的子集,并重用它来创建其他启动模板。例如,您可以创建一个指定公共配置值的默认模板,并通过编程方式插入不同的值来创建模板的新版本。

缩放选项

EC2 Auto Scaling提供了几种扩展实例组的方法:

  • 手动缩放-将实例附加或分离到自动伸缩组。
  • 维护已定义数量的实例-根据您的规格进行缩放,以获得最小、最大以及首选或期望的实例数量。
  • 目标跟踪-允许根据指定的负载度量目标值进行动态缩放。
  • 步长伸缩策略-指定某个度量的几个阈值,并在达到每个阈值时执行伸缩作业。
  • 简单的伸缩策略-按特定实例数或百分比减少或增加组的容量。
  • 基于SQS的伸缩-根据SQS队列中的负载来扩展组。
  • 预定的比例-在特定的日期和时间执行缩放事件。

EC2如何自动缩放?

自动伸缩组中的EC2实例具有与其他EC2实例不同的生命周期。当自动伸缩组启动实例,或者手动将实例添加到组中时,生命周期就开始了。当实例结束或组删除并终止实例时,生命周期结束。

AWS自动缩放流程图

来源:AWS

向外扩展

几个被称为“scale out events”的事件会启动一个进程,告诉自动伸缩组它应该启动新的计算实例并将它们添加到组中:

  • 组大小手动增加
  • 伸缩策略是活动的,它在满足策略条件时自动增加组大小
  • 设置了预定的伸缩事件

当其中一个事件发生时,自动伸缩组使用组的启动配置创建新实例。在中启动新实例等待状态,您可以添加生命周期钩子,以便在创建它们时自动执行操作。

服务中的实例

创建实例并执行任何生命周期钩子之后,它将进入在使用中的的地位。它一直保持这种状态,直到发生以下任何一个事件:

  • “向内缩放”事件,该事件导致伸缩组终止实例,以减小实例的大小
  • 用户手动将实例放入备用
  • 用户手动从组中分离实例
  • 实例多次健康检查失败,将从组中删除、销毁并由一个新实例替换

规模

以下“scale in”事件会导致一个自动伸缩组从组中删除一个实例并销毁它:

  • 用户减少组的大小
  • 当满足某个条件时,伸缩策略会自动减小组的大小
  • 计划事件被定义为在给定时间缩小组的规模

确保为每个向外扩展事件定义一个向内扩展事件,以防止未检查的扩展和实例扩展。

4 AWS EC2自动伸缩最佳实践

这里有几个最佳实践,可以帮助您更有效地管理EC2扩展。

EC2实例频率

确保Amazon EC2 Auto Scaling定义在频率为一分钟的负载指标上。这样可以更快地响应应用程序使用情况的变化。使用频率为5分钟的缩放度量会降低响应时间,并可能导致基于旧数据的缩放事件。

默认情况下,EC2提供基本监控,每5分钟跟踪一次指标。对于基于EC2指标的自动伸缩,建议启用详细监控,每分钟更新一次指标。注意,这会产生额外的费用。

自动伸缩组健康检查

确保正确配置了健康检查特性,以检测注册到自动伸缩组的EC2实例是否正常工作。否则,自动伸缩组无法执行删除和替换失败实例等基本功能。

如果您正在使用Amazon Elastic Load Balancer (ELB)在自动伸缩组中的实例之间分配流量,请确保启用了ELB健康检查(这在管理程序和应用程序级别工作)。

预测尺度预测

预测扩展使用工作负载预测来规划未来的容量。如果工作负载具有周期性的性能模式,则预测的质量将更高。尝试在“仅预测”模式下运行预测扩展,以评估策略生成的预测和扩展操作的质量。如果对预测结果满意,可以将策略设置为“预测和规模”。

自动伸缩组通知

如果您没有用于自动伸缩的任何其他监视机制,请确保您的自动伸缩组已配置为在向外伸缩或在事件中伸缩时发送电子邮件通知。启用通知后,与自动伸缩组关联的AWS SNS主题将接收伸缩事件,并将伸缩事件通知发送到设置过程中指定的电子邮件地址。

EC2自动缩放Spot。io Elastigroup

Elastigroup提供人工智能驱动的现场实例中断预测,并通过现场、保留和按需实例的最佳混合自动重新平衡工作负载。它允许您利用现场实例来降低AWS中的成本,即使对于生产和关键任务工作负载,管理开销也很低。

Elastigroup的主要功能包括:

  • 预测再平衡-提前一小时识别现场实例中断,允许在新实例上优雅地排泄和工作负载,无论是现场的、保留的还是按需的。
  • 高级自动缩放-简化了定义扩展策略的过程,识别高峰时间,自动扩展以提前确保正确的容量。
  • 优化成本和性能-让你的集群以最佳的性能运行,同时使用按需、现货和保留实例的最佳组合。
  • 企业级sla-持续监控和预测现场实例行为、容量趋势、定价和中断率。当存在中断风险时,提前采取行动增加容量。
  • 智能地利用AWS储蓄计划和RIs-确保无论何时有未使用的预留容量资源,这些资源将在旋转新的spot实例之前使用,从而实现最大的成本效益。雷竞技rabet官网
  • 可见性-让您可视化集群活动和成本,实时查看潜在和实际成本、资源利用率和运行实例。您可以为每个集群设置预算,并接收关于预算偏差的通知警报。
  • 应用意识-将扩展行为匹配到工作负载类型,可以从负载平衡器中添加或删除服务器,使用运行状况检查来监视运行状况,并在不影响数据完整性的情况下为有状态应用程序提供多余容量。

了解更多关于Spot的信息。io Elastigroup

Baidu
map