最佳实践:优化应用程序服务器的数目 - AWS OpsWorks

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

最佳实践:优化应用程序服务器的数目

重要

AWS OpsWorks Stacks不再接受新客户。在 2024 年 5 月 26 日之前,现有客户将能够照常使用 OpsWorks 控制台、API、CLI 和 CloudFormation 资源,届时这些工具或资源将停用。为准备此过渡,我们建议您尽快将堆栈过渡到AWS Systems Manager。有关更多信息,请参阅 AWS OpsWorks Stacks 生命周期终止常见问题解答将 AWS OpsWorks Stacks 应用程序迁移到 AWS Systems Manager Application Manager

生产堆栈通常包含跨多个可用区分布的多个应用程序服务器。但是,传入请求的数量可能会有很大不同,具体取决于当日时间或星期几。您可以只运行足量服务器来处理预期的最大负载,而大多数情况下,您最终将为比所需容量更多的服务器容量付费。要高效运行您的站点,建议的做法是使服务器数量与当前请求卷匹配。

AWS OpsWorks Stacks 提供了三种方法来管理服务器实例的数目。

注意

在您创建并配置堆栈的基于时间和基于负载的实例后,AWS OpsWorks Stacks 将根据指定的配置自动启动和停止这些实例。除非您决定更改实例的配置或数目,否则您无需再次接触这些实例。

建议:如果您正在管理具有多个应用程序服务器实例的堆栈,建议您混合使用所有三个实例类型。以下示例说明如何管理堆栈的服务器容量以处理具备以下特性的可变每日请求量。

  • 一天中的平均请求量呈正弦周期变化。

  • 最小平均请求量需要 5 个应用程序服务器实例。

  • 最大平均请求量需要 16 个应用程序服务器实例。

  • 请求量峰值通常可由一个或两个应用程序服务器实例处理。

这是一个为了方便讨论而提供的模型,但您可以轻松调整来适应请求量的任何变化,并可对其进行扩展以处理每周变化。下图介绍如何使用三个实例类型来管理此请求量。

该示例具有以下特征:

  • 堆栈具有 3 个全天候实例,这些实例始终运行并处理基本负载。

  • 堆栈具有 12 个基于时间的实例,这些实例已配置为处理平均每日变化。

    1 个实例从 10 PM 运行至 2 AM,两个以上的实例从 8 PM 运行至 10 PM 以及从 2 AM 运行至 4 AM,以此类推。为简单起见,该图修改了每两小时的基于时间的实例数,但如果您希望实施更精细的控制,可修改每小时数量。

  • 堆栈具有足够的基于负载的实例来处理流量峰值,这已超出全天候实例和基于时间的实例可处理的范围。

    AWS OpsWorks Stacks 仅在所有当前运行的服务器的负载超出指定的指标时启动基于负载的实例。未运行实例的成本最低 (由 Amazon EBS 提供支持的实例) 或没有成本 (由实例存储提供支持的实例),因此,建议的做法是创建足量的实例以顺利处理预期的最大请求量。在本示例中,堆栈应具有至少 3 个基于负载的实例。

注意

确保您拥有跨多个可用区分布的所有三个实例类型,以减小任何服务中断所带来的影响。