本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
遷移您的擴展計劃
您可以從擴展計劃遷移到 Amazon EC2 Auto Scaling 和 Application Auto Scaling 擴展政策。
遷移程序
重要
若要遷移擴展計劃,您必須以確切順序完成多個步驟。遷移擴展計劃時,請勿更新,因為這會中斷操作順序,並可能導致不良行為。
步驟 1:檢閱您現有的設定
若要判斷您必須移動的擴展設定,請使用 describe-scaling-plans
aws autoscaling-plans describe-scaling-plans \ --scaling-plan-names
my-scaling-plan
記下您要從現有擴展計劃中保留的項目,其中可能包括下列項目:
-
MinCapacity
– 可擴展資源的最小容量。 -
MaxCapacity
– 可擴展性資源的最大容量。 -
PredefinedLoadMetricType
– 預測擴展的負載指標。 -
PredefinedScalingMetricType
– 目標追蹤 (動態) 擴展和預測擴展的擴展指標。 -
TargetValue
– 擴展指標的目標值。
擴展計劃和擴展政策之間的差異
擴展計劃和擴展政策之間有一些重要的差異:
-
擴展政策只能啟用一種擴展類型:目標追蹤擴展或預測擴展。若要使用這兩種擴展方法,您必須建立個別的政策。
-
同樣地,您必須分別定義預測擴展的擴展指標,以及目標追蹤擴展的擴展指標。
步驟 2:建立預測擴展政策
如果您不使用預測擴展,請直接跳到 步驟 4:準備刪除擴展計劃。
為了提供時間來評估預測,建議您先建立預測擴展政策,然後再建立其他擴展政策。
對於任何具有現有負載指標規格的 Auto Scaling 群組,請執行下列動作將其轉換為以 Amazon EC2 Auto Scaling 為基礎的預測擴展政策。
建立預測擴展政策
-
在 JSON 檔案中,定義
MetricSpecifications
結構,如下列範例所示:{ "MetricSpecifications":[ {
...
} ] } -
在
MetricSpecifications
結構中,針對擴展計畫中的每個負載指標,從擴展計畫建立PredefinedLoadMetricSpecification
或 ,CustomizedLoadMetricSpecification
使用同等設定。以下是負載指標區段結構的範例。
{ "MetricSpecifications":[ {
"PredefinedLoadMetricSpecification":{ "PredefinedMetricType":"ASGTotalCPUUtilization" }, ...
} ] }如需詳細資訊,請參閱《Amazon EC2 Auto Scaling Scaling API 參考》中的 PredictiveScalingPredefinedLoadMetric。
-
將擴展指標規格新增至
MetricSpecifications
並定義目標值。以下是擴展指標和目標值區段結構的範例。
{ "MetricSpecifications":[ { "PredefinedLoadMetricSpecification":{ "PredefinedMetricType":"ASGTotalCPUUtilization" },
"PredefinedScalingMetricSpecification":{ "PredefinedMetricType":"ASGCPUUtilization" }, "TargetValue":50 } ], ...
}如需詳細資訊,請參閱《Amazon EC2 Auto Scaling Scaling API 參考》中的 PredictiveScalingPredefinedScalingMetric。
-
若要僅預測,請新增值
Mode
為 的 屬性ForecastOnly
。完成遷移預測擴展並確保預測準確可靠後,您可以變更模式以允許擴展。如需詳細資訊,請參閱步驟 7:重新啟動預測擴展。{ "MetricSpecifications":[
...
], "Mode":"ForecastOnly",...
}如需詳細資訊,請參閱《Amazon EC2 Auto Scaling Scaling API 參考》中的 PredictiveScalingConfiguration。
-
如果擴展計劃中存在
ScheduledActionBufferTime
屬性,則將其值複製到預測擴展政策中的SchedulingBufferTime
屬性。{ "MetricSpecifications":[
...
], "Mode":"ForecastOnly","SchedulingBufferTime":300, ...
}如需詳細資訊,請參閱《Amazon EC2 Auto Scaling Scaling API 參考》中的 PredictiveScalingConfiguration。
-
如果您的擴展計劃中存在
PredictiveScalingMaxCapacityBehavior
和PredictiveScalingMaxCapacityBuffer
屬性,您可以在預測擴展政策中設定MaxCapacityBreachBehavior
和MaxCapacityBuffer
屬性。這些屬性會定義預測容量接近或超過 Auto Scaling 群組指定的容量上限時會發生的情況。警告
如果您將
MaxCapacityBreachBehavior
屬性設定為IncreaseMaxCapacity
,則除非您監控和管理增加的最大容量,否則可能會啟動比預期更多的執行個體。增加的最大容量會成為 Auto Scaling 群組的新正常最大容量,直到您手動更新為止。最大容量不會自動減少回原始最大容量。{ "MetricSpecifications":[
...
], "Mode":"ForecastOnly", "SchedulingBufferTime":300,"MaxCapacityBreachBehavior": "IncreaseMaxCapacity", "MaxCapacityBuffer": 10
}如需詳細資訊,請參閱《Amazon EC2 Auto Scaling Scaling API 參考》中的 PredictiveScalingConfiguration。
-
使用唯一名稱儲存 JSON 檔案。記下檔案名稱。當您重新啟用預測擴展政策時,在下一個步驟和遷移程序結束時都需要它。如需詳細資訊,請參閱步驟 7:重新啟動預測擴展。
-
儲存 JSON 檔案後,請執行 put-scaling-policy
命令。在下列範例中,將每個 使用者輸入預留位置
取代為您自己的資訊。aws autoscaling put-scaling-policy --policy-name
my-predictive-scaling-policy
\ --auto-scaling-group-namemy-asg
--policy-type PredictiveScaling \ --predictive-scaling-configurationfile://my-predictive-scaling-config.json
如果成功,此命令會傳回政策的 Amazon Resource Name (ARN)。
{ "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:2f4f5048-d8a8-4d14-b13a-d1905620f345:autoScalingGroupName/my-asg:policyName/my-predictive-scaling-policy", "Alarms": [] }
-
針對您要遷移至以 Amazon EC2 Auto Scaling 為基礎的預測擴展政策的每個負載指標規格,重複這些步驟。
步驟 3:檢閱預測擴展政策產生的預測
如果您不使用預測擴展,請略過下列程序。
預測會在您建立預測擴展政策後不久提供。Amazon EC2 Auto Scaling 產生預測後,您可以透過 Amazon EC2 Auto Scaling 主控台檢閱政策的預測,並視需要調整。
檢閱預測擴展政策的預測
-
在 https://console.aws.amazon.com/ec2/
開啟 Amazon EC2 主控台。 -
在導覽窗格中,選擇 Auto Scaling 群組,然後從清單中選擇 Auto Scaling 群組的名稱。
-
在自動擴展索引標籤的預測擴展政策中,選擇您的政策。
-
在監控區段中,您可以根據實際值檢視政策在過去和未來的負載和容量預測。
如需詳細資訊,請參閱《Amazon EC2 Auto Scaling 使用者指南》中的檢閱預測擴展監控圖表。
-
為您建立的每個預測擴展政策重複這些步驟。
步驟 4:準備刪除擴展計劃
對於具有現有目標追蹤擴展組態的任何資源,請執行下列動作,在刪除擴展計劃之前,從擴展計劃收集所需的任何其他資訊。
若要描述擴展計劃中的擴展政策資訊,請使用 describe-scaling-plan-resourcesmy-scaling-plan
取代為您自己的資訊。
aws autoscaling-plans describe-scaling-plan-resources \ --scaling-plan-name
my-scaling-plan
\ --scaling-plan-version 1
檢閱輸出並確認您想要遷移所述的擴展政策。使用此資訊在 中建立新的 Amazon EC2 Auto Scaling 和 Application Auto Scaling 型目標追蹤擴展政策步驟 6:重新啟動動態擴展。
步驟 5:刪除擴展計劃
在建立新的目標追蹤擴展政策之前,您必須刪除擴展計劃,以刪除其建立的擴展政策。
若要刪除擴展計劃,請使用 delete-scaling-planmy-scaling-plan
取代為您自己的資訊。
aws autoscaling-plans delete-scaling-plan \ --scaling-plan-name
my-scaling-plan
\ --scaling-plan-version 1
刪除擴展計劃後,動態擴展會停用。因此,如果流量或工作負載突然激增,則每個可擴展資源的可用容量不會自行增加。作為預防措施,您可能想要在短期內手動增加可擴展資源的容量。
增加 Auto Scaling 群組的容量
-
在 https://console.aws.amazon.com/ec2/
開啟 Amazon EC2 主控台。 -
在導覽窗格中,選擇 Auto Scaling 群組,然後從清單中選擇 Auto Scaling 群組的名稱。
-
在 Details (詳細資訊) 索引標籤上,選擇 Group details (群組詳細資訊)、Edit (編輯)。
-
對於所需容量,增加所需的容量。
-
完成後,請選擇更新。
將 Aurora 複本新增至資料庫叢集
-
前往 https://console.aws.amazon.com/rds/
,開啟 Amazon RDS 主控台。 -
在導覽窗格中,選擇資料庫,然後選取資料庫叢集。
-
確定叢集和主要執行個體都處於 Available (可用) 狀態。
-
選擇動作、新增讀取器。
-
在新增讀取器頁面上,指定新 Aurora 複本的選項。
-
選擇新增讀取器。
增加 DynamoDB 資料表或全域次要索引的佈建讀取和寫入容量
請在 https://console.aws.amazon.com/dynamodb/
開啟 DynamoDB 主控台。 -
在導覽窗格中,選擇資料表,然後從清單中選擇資料表的名稱。
-
在其他設定索引標籤上,選擇讀取/寫入容量、編輯。
-
在編輯讀取/寫入容量頁面上,對於讀取容量、佈建容量單位,增加資料表的佈建讀取容量。
-
(選用) 如果您希望全域次要索引使用與基礎資料表相同的讀取容量設定,請選取對所有全域次要索引使用相同的讀取容量設定核取方塊。
-
對於寫入容量、佈建容量單位,增加資料表的佈建寫入容量。
-
(選用) 如果您希望全域次要索引使用與基礎資料表相同的寫入容量設定,請選取對所有全域次要索引使用相同的寫入容量設定核取方塊。
-
如果您未在步驟 5 或 7 中選取核取方塊,請向下捲動頁面以更新任何全域次要索引的讀取和寫入容量。
-
選擇儲存變更以繼續。
增加 Amazon ECS 服務的執行中任務計數
開啟主控台,網址為 https://console.aws.amazon.com/ecs/v2
。 -
在導覽窗格中,選擇叢集,然後從清單中選擇叢集的名稱。
-
在服務區段中,選取服務旁的核取方塊,然後選擇更新。
-
針對所需任務,輸入您要為服務執行的任務數量。
-
選擇更新。
增加 Spot 機群的容量
-
在 https://console.aws.amazon.com/ec2/
開啟 Amazon EC2 主控台。 -
在導覽窗格中,選擇 Spot 請求,然後選取您的 Spot 機群請求。
-
選擇動作和修改目標容量。
-
在修改目標容量中,輸入新的目標容量和隨需執行個體部分。
-
選擇提交。
步驟 6:重新啟動動態擴展
透過建立目標追蹤擴展政策來重新啟用動態擴展。
當您為 Auto Scaling 群組建立目標追蹤擴展政策時,請將其直接新增至群組。當您為其他可擴展性資源建立目標追蹤擴展政策時,請先將資源註冊為可擴展性目標,然後將目標追蹤擴展政策新增至可擴展性目標。
為 Auto Scaling 群組建立目標追蹤擴展政策
為 Auto Scaling 群組建立目標追蹤擴展政策
-
在 JSON 檔案中,
CustomizedMetricSpecification
從擴展計劃建立PredefinedMetricSpecification
或 的同等設定。以下是目標追蹤組態的範例。在這些範例中,將每個
使用者輸入預留位置
取代為您自己的資訊。{ "TargetValue":
50.0
, "PredefinedMetricSpecification": { "PredefinedMetricType": "ASGAverageCPUUtilization
" } }如需詳細資訊,請參閱《Amazon EC2 Auto Scaling API 參考》中的 PredefinedMetricSpecification。
-
若要建立擴展政策,請使用 put-scaling-policy
命令,以及您在上一個步驟中建立的 JSON 檔案。在下列範例中,將每個 使用者輸入預留位置
取代為您自己的資訊。aws autoscaling put-scaling-policy --policy-name
my-target-tracking-scaling-policy
\ --auto-scaling-group-namemy-asg
--policy-type TargetTrackingScaling \ --target-tracking-configurationfile://config.json
-
針對您要遷移至 Amazon EC2 Auto Scaling 型目標追蹤擴展政策的每個擴展計劃型擴展政策,重複此程序。
為其他可擴展資源建立目標追蹤擴展政策
接著,執行下列組態任務,為其他可擴展資源建立目標追蹤擴展政策。
-
使用 Application Auto Scaling 服務註冊可擴展的目標以進行自動擴展。
-
在可擴展目標上新增目標追蹤擴展政策。
為其他可擴展性資源建立目標追蹤擴展政策
-
使用 register-scalable-target
命令將資源註冊為可擴展目標,並定義擴展政策的擴展限制。 在下列範例中,將每個
使用者輸入預留位置
取代為您自己的資訊。對於命令選項,請提供下列資訊:-
--service-namespace
– 目標服務的命名空間 (例如
)。若要取得服務命名空間,請參閱 RegisterScalableTarget 參考。ecs
-
--scalable-dimension
– 與目標資源相關聯的可擴展維度 (例如
)。若要取得可擴展的維度,請參閱 RegisterScalableTarget 參考。ecs:service:DesiredCount
-
--resource-id
– 目標資源的資源 ID (例如
)。如需有關語法和特定資源 IDs 範例的資訊,請參閱 RegisterScalableTarget 參考。service/
my-cluster
/my-service
aws application-autoscaling register-scalable-target --service-namespace
namespace
\ --scalable-dimensiondimension
\ --resource-ididentifier
\ --min-capacity1
--max-capacity10
如果成功,此命令會傳回可擴展目標的 ARN。
{ "ScalableTargetARN": "arn:aws:application-autoscaling:
region
:account-id
:scalable-target/1234abcd56ab78cd901ef1234567890ab123" } -
-
在 JSON 檔案中,
CustomizedMetricSpecification
從擴展計劃建立PredefinedMetricSpecification
或 的同等設定。以下是目標追蹤組態的範例。
{ "TargetValue":
70.0
, "PredefinedMetricSpecification": { "PredefinedMetricType": "ECSServiceAverageCPUUtilization
" } }如需詳細資訊,請參閱《Application Auto Scaling API 參考》中的 PredefinedMetricSpecification。
-
若要建立擴展政策,請使用 put-scaling-policy
命令,以及您在上一個步驟中建立的 JSON 檔案。 aws application-autoscaling put-scaling-policy --service-namespace
namespace
\ --scalable-dimensiondimension
\ --resource-ididentifier
\ --policy-namemy-target-tracking-scaling-policy
--policy-typeTargetTrackingScaling
\ --target-tracking-scaling-policy-configurationfile://config.json
-
針對您要遷移至 Application Auto Scaling 型目標追蹤擴展政策的每個擴展計劃型擴展政策,重複此程序。
步驟 7:重新啟動預測擴展
如果您不使用預測擴展,請略過此步驟。
透過將預測擴展切換為預測和擴展來重新啟動預測擴展。
若要進行此變更,請更新您在 中建立的 JSON 檔案,步驟 2:建立預測擴展政策並將 Mode
選項的值變更為 ,ForecastAndScale
如下列範例所示:
"Mode":"ForecastAndScale"
然後,使用 put-scaling-policy使用者輸入預留位置
取代為您自己的資訊。
aws autoscaling put-scaling-policy --policy-name
my-predictive-scaling-policy
\ --auto-scaling-group-namemy-asg
--policy-type PredictiveScaling \ --predictive-scaling-configurationfile://my-predictive-scaling-config.json
或者,您也可以根據預測設定開啟擴展,從 Amazon EC2 Auto Scaling 主控台進行此變更。如需詳細資訊,請參閱《Amazon EC2 Auto Scaling 使用者指南》中的 Amazon EC2 Auto Scaling 的預測擴展。
遷移目標追蹤擴展政策的 Amazon EC2 Auto Scaling 參考
基於參考目的,下表列出擴展計劃中的所有目標追蹤組態屬性,以及其在 Amazon EC2 Auto Scaling PutScalingPolicy
API 操作中的對應屬性。
擴展計劃來源屬性 | Amazon EC2 Auto Scaling 目標屬性 |
---|---|
PolicyName |
PolicyName |
PolicyType |
PolicyType |
TargetTrackingConfiguration.CustomizedScalingMetricSpecification.Dimensions.Name |
TargetTrackingConfiguration.CustomizedMetricSpecification.Dimensions.Name |
TargetTrackingConfiguration.CustomizedScalingMetricSpecification.Dimensions.Value |
TargetTrackingConfiguration.CustomizedMetricSpecification.Dimensions.Value |
TargetTrackingConfiguration.CustomizedScalingMetricSpecification.MetricName |
TargetTrackingConfiguration.CustomizedMetricSpecification.MetricName |
TargetTrackingConfiguration.CustomizedScalingMetricSpecification.Namespace |
TargetTrackingConfiguration.CustomizedMetricSpecification.Namespace |
TargetTrackingConfiguration.CustomizedScalingMetricSpecification.Statistic |
TargetTrackingConfiguration.CustomizedMetricSpecification.Statistic |
TargetTrackingConfiguration.CustomizedScalingMetricSpecification.Unit |
TargetTrackingConfiguration.CustomizedMetricSpecification.Unit |
TargetTrackingConfiguration.DisableScaleIn |
TargetTrackingConfiguration.DisableScaleIn |
TargetTrackingConfiguration.EstimatedInstanceWarmup |
TargetTrackingConfiguration.EstimatedInstanceWarmup 1 |
TargetTrackingConfiguration.PredefinedScalingMetricSpecification.PredefinedScalingMetricType |
TargetTrackingConfiguration.PredefinedMetricSpecification.PredefinedMetricType |
TargetTrackingConfiguration.PredefinedScalingMetricSpecification.ResourceLabel |
TargetTrackingConfiguration.PredefinedMetricSpecification.ResourceLabel |
TargetTrackingConfiguration.ScaleInCooldown |
Not available |
TargetTrackingConfiguration.ScaleOutCooldown |
Not available |
TargetTrackingConfiguration.TargetValue |
TargetTrackingConfiguration.TargetValue |
1 執行個體暖機是 Auto Scaling 群組的一項功能,有助於確保新啟動的執行個體準備好接收流量,然後再將用量資料提供給擴展指標。當執行個體仍在暖機時,Amazon EC2 Auto Scaling 會減慢將執行個體新增至群組或移除群組的程序。建議您使用 Auto Scaling 群組的預設執行個體暖機設定,以確保所有執行個體啟動都使用相同的執行個體暖機時間,而不是指定擴展政策的暖機時間。如需詳細資訊,請參閱《Amazon EC2 Auto Scaling 使用者指南》中的設定 Auto Scaling 群組的預設執行個體暖機。
遷移目標追蹤擴展政策的 Application Auto Scaling 參考
基於參考目的,下表列出擴展計劃中的所有目標追蹤組態屬性,以及其在 Application Auto Scaling PutScalingPolicy
API 操作中的對應屬性。
擴展計劃來源屬性 | Application Auto Scaling 目標屬性 |
---|---|
PolicyName |
PolicyName |
PolicyType |
PolicyType |
TargetTrackingConfiguration.CustomizedScalingMetricSpecification.Dimensions.Name |
TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Dimensions.Name |
TargetTrackingConfiguration.CustomizedScalingMetricSpecification.Dimensions.Value |
TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Dimensions.Value |
TargetTrackingConfiguration.CustomizedScalingMetricSpecification.MetricName |
TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.MetricName |
TargetTrackingConfiguration.CustomizedScalingMetricSpecification.Namespace |
TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Namespace |
TargetTrackingConfiguration.CustomizedScalingMetricSpecification.Statistic |
TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Statistic |
TargetTrackingConfiguration.CustomizedScalingMetricSpecification.Unit |
TargetTrackingScalingPolicyConfiguration.CustomizedMetricSpecification.Unit |
TargetTrackingConfiguration.DisableScaleIn |
TargetTrackingScalingPolicyConfiguration.DisableScaleIn |
TargetTrackingConfiguration.EstimatedInstanceWarmup |
Not available |
TargetTrackingConfiguration.PredefinedScalingMetricSpecification.PredefinedScalingMetricType |
TargetTrackingScalingPolicyConfiguration.PredefinedMetricSpecification.PredefinedMetricType |
TargetTrackingConfiguration.PredefinedScalingMetricSpecification.ResourceLabel |
TargetTrackingScalingPolicyConfiguration.PredefinedMetricSpecification.ResourceLabel |
TargetTrackingConfiguration.ScaleInCooldown 1 |
TargetTrackingScalingPolicyConfiguration.ScaleInCooldown |
TargetTrackingConfiguration.ScaleOutCooldown 1 |
TargetTrackingScalingPolicyConfiguration.ScaleOutCooldown |
TargetTrackingConfiguration.TargetValue |
TargetTrackingScalingPolicyConfiguration.TargetValue |
1 Application Auto Scaling 使用冷卻時間,在可擴展性資源向外擴展 (增加容量) 和向內擴展 (減少容量) 時減慢擴展速度。如需詳細資訊,請參閱《Application Auto Scaling 使用者指南》中的定義冷卻時間。
其他資訊
若要了解如何從主控台建立新的預測擴展政策,請參閱下列主題:
-
Amazon EC2 Auto Scaling – 在 Amazon EC2 Auto Scaling 使用者指南中建立預測擴展政策。
若要了解如何使用主控台建立新的目標追蹤擴展政策,請參閱下列主題:
-
Amazon RDS 使用者指南中的 Amazon Aurora – 搭配使用 Amazon Aurora Auto Scaling 與 Aurora 複本。
-
DynamoDB – 在 AWS Management Console Amazon DynamoDB 開發人員指南中使用 搭配 DynamoDB 自動擴展。 DynamoDB
-
Amazon EC2 Auto Scaling – 在 Amazon EC2 Auto Scaling 使用者指南中建立目標追蹤擴展政策。
-
Amazon ECS – Amazon Elastic Container Service 開發人員指南中的使用主控台更新服務。
-
Spot 機群 – Amazon EC2 使用者指南中的使用目標追蹤政策擴展 Spot 機群。