在 Managed Service for Apache Flink 中使用自動擴展 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink 之前稱為 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大於 75% 或更高,且持續 15 分鐘,您的應用程式會擴展 (增加平行處理)。這表示當有 15 個連續資料點,且 1 分鐘的期間等於或超過 75% 時,就會啟動ScaleUp動作。ScaleUp 動作CurrentParallelism會將您應用程式的 加倍。 ParallelismPerKPU 不會修改。因此,配置的數目KPUs也會加倍。

  • 當您的CPU用量維持在 10% 以下達 6 小時時,您的應用程式會縮減規模 (減少平行處理)。這表示當有 360 個連續資料點,且 1 分鐘的期間小於 10% 時,就會啟動ScaleDown動作。ScaleDown 動作將應用程式的平行處理減半 (四捨五入)。 ParallelismPerKPU 不會修改,配置的數目KPUs也減半 (四捨五入)。

注意

最多可以參考containerCPUUtilization超過 1 分鐘的時段,以尋找與用於擴展動作的資料點的關聯性,但不必反映動作初始化時的確切時刻。

Managed Service for Apache Flink 不會將應用程式的 CurrentParallelism 值降低到小於應用程式的 Parallelism 設定。

當 Managed Service for Apache Flink 服務擴展應用程式時,應用程式將處於 AUTOSCALING 狀態。您可以使用 DescribeApplication ListApplications動作來檢查目前的應用程式狀態。當服務擴展您的應用程式時,您可以使用的唯一有效API動作是 StopApplicationForce 參數設定為 true

您可以使用 AutoScalingEnabled 屬性 (FlinkApplicationConfiguration 的一部分) 來啟用或停用自動擴展行為。 AWS 您的帳戶會針對 KPUs Managed Service for Apache Flink 條款收費,這是應用程式parallelismparallelismPerKPU設定函數。活動尖峰會增加您的 Managed Service for Apache Flink 成本。

如需定價相關的資訊,請參閱 Amazon Managed Service for Apache Flink 定價

請留意下列與應用程式擴展相關的資訊:

  • 預設會啟用自動擴展。

  • 擴展不適用於 Studio 筆記本。不過,如果您將 Studio 筆記本部署為具有持久狀態的應用程式,則擴展將套用到已部署的應用程式。

  • 您的應用程式預設限制為 64 KPUs。如需詳細資訊,請參閱Managed Service for Apache Flink 和 Studio 筆記本配額

  • 當自動擴展更新應用程式的平行處理層級時,應用程式會經歷停機。若要避免停機,請執行下列動作:

實作自訂自動擴展

如果您想要對自動擴展進行更精細的控制,或使用 以外的觸發指標containerCPUUtilization,您可以使用此範例:

  • AutoScaling

    此範例說明如何使用與 Apache Flink 應用程式不同的 CloudWatch 指標來擴展 Managed Service for Apache Flink 應用程式,包括使用 Amazon MSK和 Amazon Kinesis Data Streams 做為來源或接收器的指標。

如需詳細資訊,請參閱增強 Apache Flink 的監控和自動擴展

實作排程自動擴展

如果您的工作負載隨著時間遵循可預測的設定檔,您可能偏好先擴展 Apache Flink 應用程式。這會在排程時間擴展您的應用程式,而不是根據指標被動擴展。若要在一天的固定時間設定擴展和縮減,您可以使用此範例: