本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用基于负载的自动扩展
重要
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请通过 re AWS : Post 或通过 Pre
基于负载的实例允许您快速启动或停止实例,以响应传入流量的变化。 AWS OpsWorks Stacks 使用 Amazon CloudWatch
-
CPU:平均 CPU 消耗,如 80%
-
内存:平均内存消耗,如 60%
-
负载:一个系统在一分钟内的平均计算工作。
您可以为这些指标中的任何一个或全部定义规模升级 和规模降级 阈值。您也可以使用自定义 CloudWatch 警报作为阈值。
超出阈值会触发扩展事件。通过指定以下值来确定 AWS OpsWorks Stacks 如何响应扩展事件:
-
启动或停止多少个实例。
-
AWS OpsWorks 堆栈在超过阈值后应等待多长时间才能启动或删除实例。例如,CPU 利用率必须超过阈值至少 15 分钟。该值允许您忽略短暂的流量波动。
-
AWS OpsWorks Stacks 在启动或停止实例后应等待多长时间才能再次监控指标。通常,需要留有足够的时间来让启动的实例上线,或让停止的实例关闭,然后再评估层是否仍超出阈值。
发生扩展事件时, AWS OpsWorks Stacks 仅启动或停止基于负载的实例。而不启动或停止全天候实例或基于时间的实例。
注意
基于负载的自动扩展不创建新实例;它仅启动和停止那些已创建的实例。因此,您必须提前配置足够的基于负载的实例来处理预期的最大负载。
创建基于负载的实例
-
在实例页面上,选择+实例添加一个实例。选择高级,然后选择基于负载。
-
配置实例,然后选择添加实例将实例添加到层。
重复此步骤,直到创建了足够数量的实例。稍后,您可以根据需要添加或移除实例。
将基于负载的实例添加到层后,必须启用基于负载的扩展并指定配置。基于负载的扩展配置是一种层属性,而非实例属性,它指定一个层什么时候应启动或停止其基于负载的实例。必须为每个使用基于负载的实例的层单独指定该属性。
启用和配置基于负载的自动扩展
-
在导航窗格中,单击实例下的基于负载,并针对相应的层单击编辑。
-
将启用基于负载的自动扩缩设置为开启。然后,设置阈值和扩展参数来定义如何以及何时添加或删除实例。
- 层-平均阈值
-
您可以基于以下值设置扩展阈值,这些值为层所有实例的平均值。
-
平均 CPU:层的平均 CPU 使用率,用占总量的百分比表示。
-
平均内存:层的平均内存使用率,用占总量的百分比表示。
-
平均负载:层的平均负载。
有关负载计算方法的更多信息,请参阅维基百科的负载(计算)
。
超过阈值会导致扩展事件,如果需要更多实例,则会扩大规模,如果需要更少的实例,则会缩小规模。 AWS OpsWorks 然后,堆栈会根据扩展参数添加或删除实例。
-
- 自定义 CloudWatch 警报
-
您最多可以使用五个自定义 CloudWatch 警报作为扩大或缩小阈值。这些警报必须和堆栈在同一个区域。有关如何创建自定义警报的更多信息,请参阅创建 Amazon CloudWatch 警报。
注意
要使用自定义警报,必须更新您的服务角色以允许
cloudwatch:DescribeAlarms
。你可以让 AWS OpsWorks Stacks 在你第一次使用此功能时为你更新角色,也可以手动编辑角色。有关更多信息,请参阅 允许 AWS OpsWorks Stacks 代表你行事。当为基于负载的配置配置了多个警报时,如果警报处于
INSUFFICIENT_DATA
指标警报状态,则即使另一个警报处于ALARM
状态,也无法进行基于负载的实例扩展。只有当所有警报都处于OK
或ALARM
状态时,才能继续进行自动扩缩。有关使用亚马逊 CloudWatch 警报的更多信息,请参阅亚马逊 CloudWatch 用户指南中的使用亚马逊 CloudWatch 警报。 - 扩展参数
-
以下参数控制 AWS OpsWorks 堆栈管理扩展事件的方式。
-
批量启动的服务器数:当发生扩展事件时要添加或移除的实例数量。
-
如果超过阈值 — 在 AWS OpsWorks 堆栈触发扩展事件之前,负载必须保持在升级阈值或缩减阈值之下的时间(以分钟为单位)。
-
缩放后,忽略指标 — 扩展事件发生后, AWS OpsWorks 堆栈应忽略指标并抑制其他扩展事件的时间(以分钟为单位)。
例如, AWS OpsWorks Stacks 在发生升级事件后会添加新实例,但这些实例在启动和配置后才会开始减少负载。引发更多的扩展事件直到新的实例在线并处理请求,这样的做法没有意义,实例在线和处理请求通常需要花费几分钟的时间。该设置允许您指示 AWS OpsWorks Stacks 抑制扩展事件足够长的时间以便让新的实例在线。
您可以提高此设置,防止当平均 CPU、平均内存或平均负载等层平均值临时偏离时扩展突然波动。
例如,如果 CPU 利用率超出限制并且内存使用率接近规模降级,则实例规模升级事件发生之后会紧接着发生内存规模降级事件。为防止这种情况发生,您可以增加扩展之后,忽略指标设置中的分钟数。在这个例子中,虽然会发生 CPU 扩展,但不会发生内存规模降级事件。
-
-
要添加额外的基于负载的实例,请单击+实例,配置设置,然后单击添加实例。重复此步骤,直到您有足够的基于负载的实例来处理您的预期最高负载。然后选择保存。
注意
您也可以向层中添加新的基于负载的实例,方法是打开基于负载页面,单击添加基于负载的实例 (如果您尚未向层中添加任何基于负载的实例) 或 +实例 (如果该层已有一个或多个基于负载的实例)。然后,如本节前面所述配置实例。
向层中添加基于负载的现有实例
-
在导航窗格中,选择实例下的基于负载。
-
如果您已为层启用了基于负载的自动扩展,则单击 +实例。否则,选择添加基于负载的实例。选择 “现有” 选项卡。
-
在现有选项卡上,选择一个实例。该列表仅显示基于负载的实例。
注意
如果您改变了主意,不想使用现有实例,可在新建选项卡按照上一步骤所述创建一个新实例。
-
选择添加实例将实例添加到层。
您可以随时修改基于负载的自动扩展的配置或将其禁用。
禁用基于负载的自动扩展
-
在导航窗格中,单击实例下的基于负载,并针对相应的层单击编辑。
-
将启用基于负载的自动扩缩切换为否。