使用歷史模式透過預測擴展來擴展 Amazon ECS 服務 - Amazon Elastic Container Service

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

使用歷史模式透過預測擴展來擴展 Amazon ECS 服務

預測擴展會查看過去從流量載入的資料,以分析每日或每週模式。然後,它會使用此分析來預測未來需求,並視需要主動增加服務中的任務。

在下列情況中,預測性自動擴展最有用。

  • 週期性流量 - 增加正常上班時間的資源使用量,並減少夜間和週末的資源使用量。

  • 經常性on-and-off工作負載模式 - 範例包括批次處理、測試或定期資料分析。

  • 初始化時間較長的應用程式 - 這可能會影響造成明顯延遲的橫向擴展事件期間的應用程式效能。

如果您的應用程式需要很長的時間來初始化,且流量以一般模式增加,您應該考慮使用預測擴展。它透過主動增加預測負載的任務數量來協助您更快地擴展,而不是單獨使用動態擴展政策,例如目標追蹤或 Step Scaling。透過協助您避免過度佈建任務數量的可能性,預測擴展也可能會為您節省成本。

例如,考量應用程式在營業時間內具有高使用率而在夜間具有低使用率。在每個工作日開始時,預測擴展可以在流量第一次湧入之前橫向擴展任務。在從較低的使用率期間到較高的使用率期間時,這可協助您的應用程式維持高可用性和效能。您不必等待動態擴展來對不斷變化的流量做出反應。您也不必花時間檢閱應用程式的載入模式,並嘗試使用排程擴展來排程正確數量的任務。

預測擴展是一種服務層級功能,可獨立於基礎運算容量 (例如 EC2 或 Fargate) 的擴展來擴展服務任務。對於 Fargate, 會根據任務需求 AWS 管理和自動擴展基礎容量。對於 EC2 容量,您可以使用 Auto Scaling 群組容量提供者,根據任務的擴展需求自動擴展基礎 EC2 執行個體。

預測擴展如何在 Amazon ECS 中運作

在這裡,您可以了解使用預測擴展的考量事項、其運作方式,以及限制為何。

使用預測擴展的考量事項

  • 您想要確保預測擴展適合您的工作負載。您可以透過在僅限預測模式下設定擴展政策來檢查這一點,並查看主控台的建議。您應該先評估預測和建議,再開始使用預測擴展。

  • 在預測擴展可以開始預測之前,它需要至少 24 小時的歷史資料。可用的歷史資料越多,預測就越有效,兩週是最理想的。您還需要等待 24 小時,預測擴展才能在刪除 Amazon ECS 服務並建立新的預測時產生新的預測。加速此速度的其中一種方法是使用自訂指標,跨新舊 Amazon ECS 服務彙總指標。

  • 選擇準確代表應用程式完全負載的負載指標,這是您應用程式最重要的擴展層面。

  • 具有預測擴展的動態擴展可協助您密切遵循應用程式的需求,因此您可以在延遲期間向內擴展,並在意外的流量增加期間向外擴展。當多個擴展政策處於作用中狀態時,每個政策會獨立決定所需的任務數量,並將所需的任務數量設定為這些任務的最大值。

  • 您可以使用預測擴展搭配動態擴展政策,例如目標追蹤或步進擴展,讓您的應用程式根據即時和歷史模式進行擴展。預測擴展本身不會縮減您的任務。

  • 如果您在呼叫 register-scalable-target API 時使用自訂角色,您可能會收到錯誤,指出預測擴展政策只能在啟用 SLR 的情況下運作。在這種情況下,您應該register-scalable-target再次呼叫 ,但不要使用 role-arn。註冊可擴展的目標並呼叫 put-scaling-policy API 時,請使用 SLR。

預測擴展的運作方式

您可以透過建立預測擴展政策來使用預測擴展,指定要監控和分析的 CloudWatch 指標。預測擴展必須至少有 24 小時的資料,才能開始預測未來值。

建立政策後,預測擴展會開始分析過去 14 天內的指標資料,以識別模式。此分析用於產生接下來 48 小時的需求每小時預測。最新的 CloudWatch 資料用於每六小時更新一次預測。隨著新資料傳入,預測擴展會持續改善未來預測的準確性。

當您第一次啟用預測擴展時,它會以僅限預測模式執行。它會在此模式下產生預測,但不會根據這些預測擴展 Amazon ECS 服務。這表示您可以評估預測的準確性和適用性。您可以使用 GetPredictiveScalingForecast API 操作或 檢視預測資料 AWS Management Console。

當您決定開始使用預測擴展時,請將擴展政策切換為預測和擴展模式。處於此模式時會發生下列情況。

預設情況下,您的 Amazon ECS 服務會在每小時開始時根據該小時的預測進行擴展。您可以選擇在 PutScalingPolicy API 操作中使用 SchedulingBufferTime 屬性以提早開始。這使得新任務在預測需求之前啟動,並讓他們有時間開機並準備好處理流量。

任務上限

當您註冊 Amazon ECS 服務以進行擴展時,您可以定義每個服務可啟動的任務數量上限。根據預設,當設定擴展政策時,它們無法增加高於其上限的任務數量。

或者,您可以允許在預測接近或超過 Amazon ECS 服務的任務數量上限時,自動增加服務的任務數量上限。

警告

允許自動增加任務數量上限時,請小心。如果未監控和管理增加的任務數量上限,這可能會導致比預期更多的任務啟動。增加的任務數量上限會成為 Amazon ECS 服務的新正常任務數量上限,直到您手動更新為止。任務數量上限不會自動減少回原始上限。

支援的 區域

  • 美國東部 (維吉尼亞北部)

  • 美國東部 (俄亥俄)

  • 美國西部 (加利佛尼亞北部)

  • 美國西部 (奧勒岡)

  • 非洲 (開普敦)

  • Asia Pacific (Hong Kong)

  • 亞太區域 (雅加達)

  • 亞太區域 (孟買)

  • 亞太區域 (大阪)

  • 亞太區域 (首爾)

  • 亞太區域 (新加坡)

  • 亞太區域 (雪梨)

  • 亞太區域 (東京)

  • 加拿大 (中部)

  • 中國 (北京)

  • 中國 (寧夏)

  • 歐洲 (法蘭克福)

  • 歐洲 (愛爾蘭)

  • 歐洲 (倫敦)

  • 歐洲 (米蘭)

  • 歐洲 (巴黎)

  • 歐洲 (斯德哥爾摩)

  • 中東 (巴林)

  • 南美洲 (聖保羅)

  • AWS GovCloud (美國東部)

  • AWS GovCloud (美國西部)