在 Managed Service for Apache Flink 中使用自动扩展 - Managed Service for Apache Flink
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon Managed Service for Apache Flink(Amazon MSF)之前称为 Amazon Kinesis Data Analytics for Apache Flink。

在 Managed Service for Apache Flink 中使用自动扩展

Managed Service for Apache Flink 可以弹性地扩展应用程序的并行度,以适应大多数情况下源的数据吞吐量和操作员的复杂性。默认情况下,将会启用自动扩展。Managed Service for Apache Flink 监控应用程序的资源 (CPU) 使用情况,并相应地弹性地向上或向下扩展应用程序的并行度:

  • 如果 CloudWatch 指标最大 containerCPUUtilization 在 15 分钟内大于 75% 或以上,则您的应用程序会向上扩展(增加并行度)。这意味着,当连续有 15 个数据点,其中 1 分钟周期等于或大于 75% 时,就会启动 ScaleUp 操作。ScaleUp 操作将应用程序的 CurrentParallelism 翻倍。 ParallelismPerKPU 未修改。因此,分配的 KPU 数量也翻倍。

  • 当 CPU 使用率在六小时内保持在 10% 以下时,您的应用程序会缩小规模(降低并行度)。这意味着当 360 个连续数据点的 1 分钟周期小于 10% 时,就会启动 ScaleDown 操作。ScaleDown 操作将应用程序的并行度减半(向上舍入)。 ParallelismPerKPU 未修改,分配的 KPU 的数量也减半(向上舍入)。

注意

可以引用最长 containerCPUUtilization 超过 1 分钟的时间段来查找与用于缩放操作的数据点的相关性,但没有必要反映启动操作的确切时刻。

Managed Service for Apache Flink 不会将应用程序的CurrentParallelism价值降低到低于应用程序设置的Parallelism值。

当 Managed Service for Apache Flink 正在扩展您的应用程序时,它将处于状态。AUTOSCALING您可以使用 DescribeApplication ListApplications 操作来检查当前的应用程序状态。在该服务扩展您的应用程序时,您可以使用的唯一有效的 API 操作是将Force参数设置为 停止应用程序true

您可以使用 AutoScalingEnabled 属性(FlinkApplicationConfiguration 的一部分)启用或禁用自动扩展行为。您的Amazon帐户需要为 Managed Service for Apache Flink提供的 KPU 付费,这取决于您的应用程序parallelismparallelismPerKPU设置。活动激增会增加您的 Managed Service for Apache Flink 费用。

有关定价的更多信息,请参阅Amazon Managed Service for Apache Flink 定价

请注意有关应用程序扩展的以下内容:

实施自定义自动扩展

如果您想对自动扩展进行更精细的控制或使用 containerCPUUtilization 之外的触发指标,则可以使用以下示例:

  • 自动扩展

    此示例说明了如何使用来自 Apache Flink 应用程序的不同 CloudWatch 指标来扩展 Managed Service for Apache Flink 应用程序,包括来自 Amazon MSK 和 Amazon Kinesis Data Streams 的指标(用作源或接收器)。

有关更多信息,请参阅 Apache Flink 的增强监控和自动扩展

实施计划的自动扩展

如果您的工作负载随时间推移呈现可预测的趋势,您可能更倾向于预先扩展您的 Apache Flink 应用程序。这会按计划的时间扩展您的应用程序,而不是根据指标进行被动扩展。要设置在一天中的固定时间纵向扩展和缩减,可以使用以下示例: