本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立 Amazon ECS 服務自動擴展的預測擴展政策
建立預測擴展政策,讓 Amazon ECS 根據歷史資料增加或減少服務執行的任務數量。
注意
新服務需要提供至少 24 小時的資料,才能產生預測。
-
除了建立和更新服務的標準 IAM 許可之外,您還需要額外的許可。如需詳細資訊,請參閱Amazon ECS 服務自動擴展所需的 IAM 許可。
-
決定要用於政策的指標。下列指標可供使用:
-
ECSServiceAverageCPUUtilization – 服務應使用的平均 CPU 使用率。
-
ECSServiceAverageMemoryUtilization – 服務應使用的平均記憶體使用率。
-
ALBRequestCountPerTarget – 任務理想情況下每分鐘應接收的平均請求數。
或者,您可以使用自訂指標。您需要定義下列值:
-
Load - 準確代表應用程式完全載入的指標,是應用程式最需要擴展的方面。
-
擴展指標 - 最適合您應用程式使用率的最佳預測器。
-
開啟主控台,網址為 https://console.aws.amazon.com/ecs/v2
。 -
在叢集頁面上,選擇叢集。
-
在叢集詳細資訊頁面的服務區段中,選擇服務。
服務詳細資訊頁面隨即出現。
-
選擇服務自動擴展,然後選擇設定任務數量。
-
在 Amazon ECS 服務任務計數下,選擇使用自動擴展。
任務計數區段隨即出現。
-
針對任務數量下限,輸入服務自動擴展要使用的任務數量下限。所需的計數不會低於此計數。
-
針對最大值,輸入服務自動擴展要使用的任務數量上限。所需的計數不會高於此計數。
-
選擇儲存。
政策頁面隨即出現。
-
-
選擇建立擴展政策。
建立政策頁面隨即出現。
-
針對擴展政策類型,選擇預測擴展。
-
針對 Policy name (政策名稱),輸入政策的名稱。
-
對於指標對,從選項清單中選擇您的指標。
如果選擇了 Application Load Balancer request count per target (每個目標的 Application Load Balancer 請求計數),則在 Target group (目標群組) 中選擇目標群組。只有在您已連接服務的 Application Load Balancer 目標群組時,才支援每個目標的 Application Load Balancer 請求計數。 Application Load Balancer
如果您選擇自訂指標對,請從載入指標和擴展指標的清單中選擇個別指標。
-
針對目標使用率,輸入 Amazon ECS 應維護之任務百分比的目標值。服務自動擴展會擴展您的容量,直到平均使用率達到目標使用率,或達到您指定的任務數量上限為止。
-
選擇建立擴展政策。
使用 AWS CLI 設定 Amazon ECS 服務的預測擴展政策,如下所示。將每個使用者輸入預留位置
替換為自己的資訊。
如需有關您可以指定之 CloudWatch 指標的詳細資訊,請參閱《Amazon EC2 Auto Scaling API 參考》中的 PredictiveScalingMetricSpecification。
範例 1:具有預先定義記憶體的預測擴展政策。
以下是具有預先定義記憶體組態的範例政策。
cat policy.json { "MetricSpecifications": [ { "TargetValue":
40
, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ECSServiceMemoryUtilization
" } } ], "SchedulingBufferTime":3600
, "MaxCapacityBreachBehavior": "HonorMaxCapacity", "Mode": "ForecastOnly" }
下列範例說明使用指定的組態檔案執行 put-scaling-policy 命令來建立政策。
aws application-autoscaling put-scaling-policy \ --service-namespace
ecs
\ --regionus-east-1
\ --policy-namepredictive-scaling-policy-example
\ --resource-idservice/MyCluster/test
\ --policy-type PredictiveScaling \ --scalable-dimension ecs:service:DesiredCount \ --predictive-scaling-policy-configuration file://policy.json
如果成功,此命令會傳回政策的 ARN。
{
"PolicyARN": "arn:aws:autoscaling:us-east-1:012345678912:scalingPolicy:d1d72dfe-5fd3-464f-83cf-824f16cb88b7:resource/ecs/service/MyCluster/test:policyName/predictive-scaling-policy-example",
"Alarms": []
}
範例 2:具有預先定義 CPU 的預測擴展政策。
以下是具有預先定義 CPU 組態的範例政策。
cat policy.json { "MetricSpecifications": [ { "TargetValue":
0.00000004
, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ECSServiceCPUUtilization
" } } ], "SchedulingBufferTime":3600
, "MaxCapacityBreachBehavior": "HonorMaxCapacity", "Mode": "ForecastOnly" }
下列範例說明使用指定的組態檔案執行 put-scaling-policy 命令來建立政策。
aws aas put-scaling-policy \ --service-namespace
ecs
\ --regionus-east-1
\ --policy-namepredictive-scaling-policy-example
\ --resource-idservice/MyCluster/test
\ --policy-type PredictiveScaling \ --scalable-dimension ecs:service:DesiredCount \ --predictive-scaling-policy-configuration file://policy.json
如果成功,此命令會傳回政策的 ARN。
{
"PolicyARN": "arn:aws:autoscaling:us-east-1:012345678912:scalingPolicy:d1d72dfe-5fd3-464f-83cf-824f16cb88b7:resource/ecs/service/MyCluster/test:policyName/predictive-scaling-policy-example",
"Alarms": []
}