

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

# 使用歷史模式透過預測擴展來擴展 Amazon ECS 服務
<a name="predictive-auto-scaling"></a>

預測性擴展會檢視過去從流量流程載入的資料，以分析每日或每週模式。然後利用此分析來預測未來需求，並根據需要主動增加服務中的任務。

預測性自動擴展在下列情況中最為有用。
+ 周期性流量 – 在常規工作時間資源使用量增加，而在夜間與週末資源使用量減少。
+ 重複間歇工作負載模式 – 例如批次處理、測試或週期性資料分析。
+ 需要長時間才能初始化的應用程式 – 這可能會在橫向擴充事件期間影響應用程式效能，造成明顯延遲。

如果應用程式需要長時間才能初始化，並且流量以常規模式增加，您應該考慮使用預測性擴展。此功能透過為預測負載主動增加任務數量來協助您更快地擴展，而不是僅使用動態擴展政策，例如目標追蹤或步進擴展。透過協助您避免出現過度佈建任務數量的可能性，預測性擴展也可能會為您節省成本。

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

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

**Topics**
+ [預測性擴展概觀](#predictive-auto-scaling-overview)
+ [建立預測性擴展政策](predictive-scaling-create-policy.md)
+ [評估您的預測擴展政策](predictive-scaling-graphs.md)
+ [覆寫預測](predictive-scaling-overriding-forecast-capacity.md)
+ [使用自訂指標](predictive-scaling-custom-metrics.md)

## 預測性擴展在 Amazon ECS 中的運作方式
<a name="predictive-auto-scaling-overview"></a>

您可以在此處了解使用預測性擴展的考量、其運作方式以及相關限制。

### 使用預測性擴展的考量
<a name="predictive-auto-scaling-considerations"></a>
+ 您需要確保預測性擴展適合工作負載。可以透過在**僅預測**模式下設定擴展政策對此進行檢查，並查看主控台的建議。在開始使用預測性擴展之前，您應該先評估預測與建議。
+ 預測性擴展需要至少 24 小時的歷史資料才能開始預測。可用的歷史資料越多，預測效果越好，兩週的歷史資料最為理想。您刪除 Amazon ECS 服務並建立新服務時，還需要等待 24 小時，預測性擴展才能產生新的預測。加快此程序的一種方法是使用自訂指標，以彙總新舊 Amazon ECS 服務的指標。
+ 選擇能準確代表應用程式完整負載，且是應用程式最重要擴展方面的負載指標。
+ 結合預測性擴展的動態擴展可協助您密切遵循應用程式的需求，因此您可以在低落期間進行縮減，並在流量意外增加期間進行橫向擴充。當多個擴展政策處於作用中狀態時，每個政策會獨立決定所需的任務數量，並將所需任務數量設定為其中的上限。
+ 您可以使用預測性擴展搭配動態擴展政策，例如目標追蹤或步進擴展，以便應用程式根據即時模式與歷史模式進行擴展。預測性擴展本身不會縮減任務。
+ 如果您在呼叫 `register-scalable-target` API 時使用自訂角色，可能會收到錯誤，指出預測性擴展政策只能在啟用 SLR 的情況下運作。在這種情況下，您應該再次呼叫 `register-scalable-target`，但不使用 role-arn。在註冊可擴展的目標時，請使用 SLR，並呼叫 `put-scaling-policy` API。

### 預測擴展的運作方式
<a name="predictive-auto-scaling-details"></a>

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

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

當您首次啟用預測性擴展時，它會以*僅預測*模式執行。它會在此模式下產生預測，但不會根據這些預測擴展 Amazon ECS 服務。這表示您可以評估預測的準確性與適用性。您可以透過使用 `GetPredictiveScalingForecast` API 操作或 AWS 管理主控台來檢視預測資料。

您決定開始使用預測性擴展時，請將擴展政策切換至*預測與擴展*模式。在此模式下會發生下列情況。

依預設，Amazon ECS 服務會在每小時開始時根據該小時的預測進行擴展。您可以透過在 `PutScalingPolicy` API 操作中使用 `SchedulingBufferTime` 屬性，選擇提早開始。這使得新任務在預測需求之前啟動，並給予其時間開機並準備好處理流量。

### 任務數量上限
<a name="predictive-scaling-maximum-tasks-limit"></a>

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

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

**警告**  
允許自動增加任務數量上限時請小心謹慎。如果沒有監控與管理增加的任務數量上限，這可能會導致啟動的任務數量超出預期。增加的任務數量上限會成為 Amazon ECS 服務新的常規任務數量上限，直到您進行手動更新。任務數量上限不會自動減少回原始上限。

### 支援的 區域
<a name="predictive-auto-scaling-supported-regions"></a>
+ 美國東部 (維吉尼亞北部)
+ 美國東部 (俄亥俄)
+ 美國西部 (加利佛尼亞北部)
+ 美國西部 (奧勒岡)
+ 非洲 (開普敦)
+ 亞太地區 (香港)
+ 亞太地區 (雅加達)
+ 亞太地區 (孟買)
+ 亞太區域 (大阪)
+ 亞太區域 (首爾)
+ 亞太區域 (新加坡)
+ 亞太地區 (雪梨)
+ 亞太區域 (東京)
+ 加拿大 (中部)
+ 中國 (北京)
+ 中國 (寧夏)
+ 歐洲 (法蘭克福)
+ 歐洲 (愛爾蘭)
+ 歐洲 (倫敦)
+ 歐洲 (米蘭)
+ 歐洲 (巴黎)
+ 歐洲 (斯德哥爾摩)
+ 中東 (巴林)
+ 南美洲 (聖保羅)
+ AWS GovCloud （美國東部）
+ AWS GovCloud （美國西部）