

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 Managed Service for Apache Flink 中使用自動擴展
<a name="how-scaling-auto"></a>

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](https://docs.aws.amazon.com//managed-flink/latest/apiv2/API_DescribeApplication.html) 或 [ListApplications](https://docs.aws.amazon.com//managed-flink/latest/apiv2/API_ListApplications.html) 動作來檢查目前的應用程式狀態。當服務擴展您的應用程式時，您唯一可以使用的有效 API 動作是 [StopApplication](https://docs.aws.amazon.com//managed-flink/latest/apiv2/API_ListApplications.html)，且 `Force` 參數設定為 `true`。

您可以使用 `AutoScalingEnabled` 屬性 ([https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_FlinkApplicationConfiguration.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_FlinkApplicationConfiguration.html) 的一部分) 來啟用或停用自動擴展行為。 AWS 您的帳戶會針對 Managed Service for Apache Flink 佈建的 KPUs 收費，這是應用程式`parallelism`和`parallelismPerKPU`設定的函數。活動尖峰會增加您的 Managed Service for Apache Flink 成本。

如需定價相關的資訊，請參閱 [Amazon Managed Service for Apache Flink 定價](https://aws.amazon.com/kinesis/data-analytics/pricing/)。

請留意下列與應用程式擴展相關的資訊：
+ 預設會啟用自動擴展。
+ 擴展不適用於 Studio 筆記本。不過，如果您將 Studio 筆記本部署為具有持久狀態的應用程式，則擴展將套用到已部署的應用程式。
+ 應用程式的預設限制為 64 個 KPU。如需詳細資訊，請參閱[Managed Service for Apache Flink 和 Studio 筆記本配額](limits.md)。
+ 當自動擴展更新應用程式的平行處理層級時，應用程式會經歷停機。若要避免停機，請執行下列動作：
  + 停用自動擴展
  + 使用 [UpdateApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_UpdateApplication.html) 動作設定應用程式的 `parallelism` 和 `parallelismPerKPU`。如需設定應用程式平行處理設定的詳細資訊，請參閱 [更新應用程式的平行處理](how-scaling.md#how-scaling-howto)。
  + 定期監控應用程式的資源使用量，以確認應用程式的工作負載具有正確的平行處理設定。如需資源配置情況的相關資訊，請參閱[Managed Service for Apache Flink 中的指標和維度](metrics-dimensions.md)。

## 實作自訂自動擴展
<a name="how-scaling-custom-autoscaling"></a>

如果您想要對自動擴展進行更精細的控制，或使用 以外的觸發指標`containerCPUUtilization`，您可以使用此範例：
+ [AutoScaling](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/infrastructure/AutoScaling)

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

如需詳細資訊，請參閱 [Apache Flink 的增強型監控和自動擴展](https://aws.amazon.com/blogs/big-data/enhanced-monitoring-and-automatic-scaling-for-apache-flink/)。

## 實作排定的自動擴展
<a name="how-scaling-scheduled-autoscaling"></a>

如果您的工作負載隨著時間遵循可預測的設定檔，您可能偏好先行擴展 Apache Flink 應用程式。這會在排程時間擴展您的應用程式，而不是根據指標被動擴展。若要在一天中的固定時間設定擴展和縮減，您可以使用此範例：
+ [ScheduledScaling](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/infrastructure/ScheduledScaling)