使用基于时间和基于负载的实例管理负载 - AWS OpsWorks

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

使用基于时间和基于负载的实例管理负载

重要

该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请通过 re AWS : Post 或通过 Pre mium Su AWS pp ort 与 AWS Support 团队联系。

由于传入流量不尽相同,因此您的堆栈可能要么实例太少而无法从容处理负载,要么实例太多超出了需要的数量。通过使用基于时间或基于负载的实例来自动增加或减少层的实例,让您总是有足够的实例来妥善处理传入流量而无需为不需要的容量付费,从而同时节约时间和金钱。不需要监控服务器负载或手动启动或停止实例。此外,基于时间和基于负载的实例自动在一个区域内的多个可用区中分发、扩展和平衡应用程序,从而为您提供地理冗余和可扩展性。

自动扩展基于两种实例类型,它们基于不同的标准调整层的联机实例数:

  • 基于时间的实例

    允许堆栈通过包括只在特定时间或特定日期运行的实例来处理遵循一定可预测模式的负载。例如,您可以在下午 6 点后启动某些实例来执行夜间备份任务,或在周末流量较低时停止某些实例。

  • 基于负载的实例

    允许堆栈基于任意负载指标,通过在流量高时启动额外实例,在流量低时停止实例,以此来处理变化的负载。例如,您可以让 AWS OpsWorks 堆栈在平均 CPU 利用率超过 80% 时启动实例,并在平均 CPU 负载低于 60% 时停止实例。

Linux 堆栈支持基于时间和基于负载的实例,而 Windows 堆栈仅支持基于时间的实例。

与必须手动启动和停止的全天候实例不同,您无需自己启动或停止基于时间或基于负载的实例,相反,您可以配置实例, AWS OpsWorks 堆栈会根据其配置启动或停止它们。例如,您可以将基于时间的实例配置为按指定的计划启动和停止。 AWS OpsWorks 然后,堆栈会根据该配置启动和停止实例。

常见的做法是将全部三种实例类型综合起来使用,如下所示。

  • 一组全天候实例,用来处理基本负载。您通常只要启动这些实例并让它们持续运行即可。

  • 一组基于时间的实例, AWS OpsWorks Stacks 启动和停止这些实例以处理可预测的流量变化。例如,如果流量在工作时间达到最高,则应配置基于时间的实例在早上启动晚上关闭。

  • 一组基于负载的实例, AWS OpsWorks Stacks 启动和停止这些实例以应对不可预测的流量变化。 AWS OpsWorks 当负载接近堆栈全天候和基于时间的实例的容量时,堆栈会启动它们,并在流量恢复正常时停止堆栈。

有关如何使用这些扩展时间的更多信息,请参阅优化服务器数

注意

如果您已经为实例层创建了应用程序或创建了自定义食谱, AWS OpsWorks Stacks 会在首次启动时自动将最新版本部署到基于时间和基于负载的实例。但是, AWS OpsWorks Stacks 不一定会将最新的食谱部署到重启的离线实例。有关更多信息,请参阅 编辑应用程序更新自定义说明书

基于负载的扩展与自动修复有何不同

基于负载的自动扩展使用所有正在运行的实例的平均负载指标。如果指标保持在指定的阈值之间,则 AWS OpsWorks Stacks 不会启动或停止任何实例。另一方面,借助 auto healin AWS OpsWorks g,当实例停止响应时,Stacks 会自动启动具有相同配置的新实例。旧实例可能因网络问题或一些与其关联的问题而无法响应。

例如,假设您的 CPU 规模升级阈值为 80%,并且有一个实例停止了响应。

  • 如果禁用了自动修复,并且其余正在运行的实例可以将平均 CPU 利用率保持在 80% 以下,则 AWS OpsWorks Stacks 不会启动新实例。只有当其余实例的平均 CPU 利用率超过 80% 时,它才启动替换实例。

  • 如果启用了自动修复,则无论负载阈值如何, AWS OpsWorks Stacks 都会启动替换实例。