评估预测性扩展策略 - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

评估预测性扩展策略

在使用预测性扩展策略扩展您的自动扩缩组之前,请在 Amazon EC2 Auto Scaling 控制台中查看您策略的建议和其他数据。这很重要,因为在确定预测准确之前,您不希望使用预测扩展策略来扩展实际容量。

如果自动扩缩组是新的,则需要 24 小时的时间让 Amazon EC2 Auto Scaling 创建第一个预测。

当 Amazon EC2 Auto Scaling 创建预测时,它使用历史数据。如果您的自动扩缩组还没有太多最近的历史数据,Amazon EC2 Auto Scaling 可能会使用从当前可用的历史聚合中创建的聚合数据临时回填预测。预测会在策略创建日期前最多回填两周。

查看您的预测性扩展建议

为了进行有效的分析,Amazon EC2 Auto Scaling 应至少有两个预测性扩展策略可供比较。(但您仍可以查看单个策略的调查结果。) 创建多个策略时,您可以对使用一个指标的策略和使用另一个指标的策略进行评估。您还可以评估不同目标值和指标组合的影响。创建预测性扩展策略后,Amazon EC2 Auto Scaling 会立即开始评估哪种策略可以更好地扩展您的组。

在 Amazon EC2 Auto Scaling 控制台中查看您的建议
  1. 访问 https://console.aws.amazon.com/ec2/,打开 Amazon EC2 控制台,然后从导航窗格中选择 Auto Scaling Groups(Auto Scaling 组)。

  2. 选中 Auto Scaling 组旁边的复选框。

    这时将在页面底部打开一个拆分窗格。

  3. Auto Scaling 选项卡的预测性扩展策略下,您可以查看有关策略的详细信息以及我们的建议。该建议告诉您预测性扩展策略是否比不使用预测性扩展策略做得更好。

    如果您不确定预测性扩展策略是否适合您的组,请查看可用性影响成本影响列以选择正确的策略。每列的信息告诉您该策略的影响。

    • 可用性影响:描述与不使用策略相比,该策略是否可以通过预置足够的实例来处理工作负载,从而避免对可用性的负面影响。

    • 成本影响:描述与不使用策略相比,该策略是否可以通过不过度预置实例而避免对您的成本产生负面影响。过度预置会导致您的实例未得到充分利用或处于闲置状态,这只会增加对成本的影响。

    如果您有多个策略,则在以较低成本提供最大可用性优势的策略名称旁边显示最佳预测标签。对可用性的影响给予了更多的重视。

  4. (可选)要为建议结果选择所需的时间段,请从评估期下拉列表中选择您的首选值:2 天1 周2 周4 周6 周8 周。默认情况下,评估期为过去两周。更长的评估期可为建议结果提供更多的数据点。但是,如果您的负载模式发生了变化,例如在需求异常之后,添加更多数据点可能不会改善结果。在这种情况下,您可以通过查看最新数据来获得更有针对性的建议。

注意

仅为处于仅预测模式的策略生成建议。当策略在整个评估期内处于仅预测模式时,建议功能的效果会更好。如果您在预测和扩展模式下启动策略,稍后将其切换为仅预测模式,则该策略的调查结果可能会有偏差。这是因为该策略已经为实际容量做出了贡献。

查看预测性扩展监控图表

在 Amazon EC2 Auto Scaling 控制台中,您可以查看前几天、几周或几个月的预测,以便可视化策略在一段时间内的表现如何。在决定是否让策略扩展您的实际容量时,您还可以使用这些信息来评估预测的准确性。

在 Amazon EC2 Auto Scaling 控制台中查看预测性扩展监控图表
  1. 预测性扩展策略列表中选择一个策略。

  2. 监控部分中,您可以根据实际值查看策略对过去和未来负载和容量的预测。负载图表显示所选负载指标的负载预测和实际值。容量图表显示策略预测的实例数量。它还包括启动实例的实际数量。垂直线将历史值与未来预测分开。创建策略后不久,这些图表可用。

  3. (可选)要更改图表中显示的历史数据量,请从页面顶部的评估期下拉列表中选择您的首选值。评估期不会以任何方式转换此页面上的数据。它只会更改显示的历史数据量。

下图显示了多次应用预测时的负载容量图表。预测性扩展会根据您的历史负载数据来预测负载。应用程序生成的负载由自动扩缩组中每个实例的 CPU 利用率、网络输入/输出、收到的请求或自定义指标的总和来表示。预测性扩展会根据负载预测和您希望扩展指标达到的目标利用率来计算未来的容量需求。

预测性扩展图表
比较负载图表中的数据

每条水平线代表一小时间隔内报告的一组不同的数据点:

  1. 实际观测负载使用所选负载指标的 SUM 统计数据来显示过去每小时的总负载。

  2. 策略预测的负载显示每小时的负载预测。该预测基于前两周的实际负载观测结果。

比较容量图表中的数据

每条水平线代表一小时间隔内报告的一组不同的数据点:

  1. 实际观测容量显示您的自动扩缩组过去的实际容量,这取决于您的其他扩展策略和所选时间段内有效的最小组大小。

  2. 策略预测的容量显示当策略处于预测和扩展模式时,您在每个小时开始时期望拥有的基准容量。

  3. 推断的所需容量显示将扩展指标维持在您所选择目标值的理想容量。

  4. 最小容量显示自动扩缩组的最小容量。

  5. 最大容量显示自动扩缩组的最大容量。

为了计算推断的所需容量,我们首先假设每个实例在指定目标值下的利用率相等。实际上,实例的利用率并不均等。但是,通过假设实例之间的利用率分布均匀,我们可以对所需的容量进行可能的估计。然后计算容量需求与您在预测性扩展策略中使用的扩展指标成反比。换句话说,随着容量的增加,扩展指标会以相同的速率减少。例如,如果容量翻倍,则扩展指标必定会减少一半。

推断的所需容量的公式:

sum of (actualCapacityUnits*scalingMetricValue)/(targetUtilization)

例如,我们在给定一小时内使用 actualCapacityUnits (10) 和 scalingMetricValue (30)。然后,我们采用您在预测扩展策略 (60) 中指定的 targetUtilization,计算同一小时的推断所需容量。这会返回值 5。这意味着 5 是推断出的维持容量所需的容量,与扩展指标的目标值成反比。

注意

您可以使用各种杠杆来调整和提高应用程序的成本节约和可用性。

  • 您可以使用预测性扩展来计算基准容量,使用动态扩展来处理额外的容量。动态扩展独立于预测性扩展,会根据当前的利用率向内和向外扩展。首先,Amazon EC2 Auto Scaling 计算每个动态扩展策略的建议实例数。然后,它会根据提供最多实例的策略进行扩展。

  • 要允许在负载减少时进行横向缩减,您的自动扩缩组应始终至少有一个启用了横向缩减部分的动态扩展策略。

  • 您可以通过确保最小和最大容量不太严格来提高扩展性能。如果策略中包含的推荐实例数不在最小和最大容量范围内,则将阻止横向缩减和横向扩展。