本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立橫向擴展的步驟擴展政策
若要為您的 Auto Scaling 群組建立橫向擴展的步驟擴展政策,請使用下列其中一種方法:
- Console
-
步驟 1:建立指標高閾值的 CloudWatch 警示
在 https://console.aws.amazon.com/cloudwatch/
開啟 CloudWatch 主控台。 -
如有必要請變更 區域。請在導覽列中選擇 Auto Scaling 群組所在的區域。
-
在導覽窗格中,選擇 Alarms, All alarms (警示,所有警示),然後選擇 Create alarm (建立警示)。
-
選擇 Select metric (選取指標)。
-
在 All metrics (所有指標) 索引標籤上,選擇 EC2、By Auto Scaling Group (依據 Auto Scaling 群組),然後在搜尋欄位中輸入 Auto Scaling 群組的名稱。然後,選取
CPUUtilization
並選擇 Select metric (選取指標)。Specify metric and conditions (指定指標和條件) 頁面隨即出現,顯示指標的圖表及其他資訊。 -
針對 Period (期間),選擇警示的評估期間,例如 1 分鐘。評估警示時,每個期間都會彙整為一個資料點。
注意
期間越短會建立更敏感的警示。
-
在 Conditions (條件) 下,執行下列動作:
-
對於 Threshold type (閾值類型),選擇 Static (靜態)。
-
對於何時
CPUUtilization
,請指定您希望指標的值大於或等於閾值以違反警示。然後,在 than (比) 下,輸入您要設定為超標警示的閾值。
-
-
在 Additional configuration (其他設定) 下,請執行下列動作:
-
針對 Datapoints to alarm (要警示的資料點),輸入資料點 (評估期間),在此期間指標值必須符合警示的閾值條件。例如,連續兩個 5 分鐘即表示需時 10 分鐘才會呼叫警示狀態。
-
對於 Missing data treatment (遺失資料處理),選擇 Treat missing data as bad (breaching threshold) (將遺失資料視為不良 (違反閾值))。如需詳細資訊,請參閱《Amazon CloudWatch 使用者指南》中的設定 CloudWatch 警示如何處理遺失資料。
-
-
選擇下一步。
Configure actions (設定動作) 頁面隨即顯示。
-
在 Notification (通知) 下,選取 Amazon SNS 主題來在警示處於
ALARM
狀態、OK
狀態或INSUFFICIENT_DATA
狀態時進行通知。若要讓警示針對相同的警示狀態或不同警示狀態傳送多個通知,請選擇 Add notification (新增通知)。
若要讓警示不傳送通知,請選擇 Remove (移動)。
-
您可以將 Configure actions (設定動作) 頁面的其他區段保留空白。將其他區段保留空白會建立警示,而不會將其與擴展政策建立關聯。然後,您可以從 Amazon EC2 Auto Scaling 主控台將此警示與擴展政策建立關聯。
-
選擇 Next (下一步)。
-
輸入名稱 (例如
Step-Scaling-AlarmHigh-AddCapacity
),選擇性地輸入警示描述,然後選擇 Next (下一步)。 -
選擇 Create alarm (建立警示)。
使用下列程序,在建立 CloudWatch 警示之後,從您離開的地方繼續。
步驟 2:建立橫向擴展的步驟擴展政策
前往網址 https://console.aws.amazon.com/ec2/
開啟 Amazon EC2 主控台,然後從導覽窗格中選擇 Auto Scaling 群組。 -
選取 Auto Scaling 群組旁的核取方塊。
頁面底部會開啟一個分割窗格。
-
確認已將擴展限制設定妥當。例如,如果群組已達到所需容量上限,則需要指定新的上限,以便進行橫向擴展。如需詳細資訊,請參閱設定 Auto Scaling 群組的擴展限制。
-
在 Automatic scaling (自動擴展) 索引標籤的 Dynamic scaling policies (動態擴展政策) 中,選擇 Create dynamic scaling policy (建立動態擴展政策)。
-
針對政策類型,選擇步驟擴展,然後指定政策的名稱。
-
如果是 CloudWatch alarm (CloudWatch 警示),請選擇您的警示。如果您尚未建立警示,請選擇建立 CloudWatch 警示,並完成先前程序中的步驟 4 到步驟 14 來建立警示。
-
使用 Take the action (採取動作) 指定此政策將進行的目前群組大小變更。您可以新增特定數量的執行個體,或現有群組大小的百分比,或將群組設為確切大小。
例如,若要建立將群組容量增加 30% 的橫向擴展政策,請選擇
Add
,30
在下一個欄位中輸入 ,然後選擇percent of group
。根據預設,此步驟調整的下限即為警示閾值,而上限為無限大正數 (+) 值。 -
若要新增另一個步進,請選擇 Add step (新增步進),然後定義擴展量,以及相對於警示閾值的步進下限與上限。
-
若要設定擴展的執行個體數量下限,請更新 Add capacity units in increments of at least
1
capacity units (以至少 1 個容量單位的增量幅度來新增容量單位) 中的數值欄位。 -
(選用) 對於執行個體暖機,視需要更新執行個體暖機值。
-
選擇 Create (建立)。
- AWS CLI
-
若要建立橫向擴展 (增加容量) 的步驟擴展政策,您可以使用下列範例命令。將每個
使用者輸入預留位置
替換為自己的資訊。當您使用 時 AWS CLI,您首先會建立一個步驟擴展政策,提供指示給 Amazon EC2 Auto Scaling,說明如何在指標的值增加時向外擴展。然後,您可以透過識別要監看的指標、定義警示的指標高閾值和其他詳細資訊,以及將警示與擴展政策建立關聯,來建立警示。
步驟 1:建立橫向擴展的政策
使用以下 put-scaling-policy
命令,建立名為 my-step-scale-out-policy
的步進擴展政策,其調整類型為PercentChangeInCapacity
,可依據以下步進調整增加群組容量 (假設 CloudWatch 警示閾值為 60%):-
當指標值大於或等於 60% 但小於 75% 時,將執行個體數增加 10%
-
當指標值大於或等於 75% 但小於 85% 時,將執行個體數增加 20%
-
當指標值大於或等於 85% 時,將執行個體數增加 30%
aws autoscaling put-scaling-policy \ --auto-scaling-group-name
my-asg
\ --policy-namemy-step-scale-out-policy
\ --policy-type StepScaling \ --adjustment-type PercentChangeInCapacity \ --metric-aggregation-type Average \ --step-adjustments MetricIntervalLowerBound=0.0
,MetricIntervalUpperBound=15.0
,ScalingAdjustment=10
\ MetricIntervalLowerBound=15.0
,MetricIntervalUpperBound=25.0
,ScalingAdjustment=20
\ MetricIntervalLowerBound=25.0
,ScalingAdjustment=30
\ --min-adjustment-magnitude1
記錄政策的 Amazon Resource Name (ARN)。您需要其來建立政策的 CloudWatch 警示。
{ "PolicyARN": "arn:aws:autoscaling:
region
:123456789012
:scalingPolicy:4ee9e543-86b5-4121-b53b-aa4c23b5bbcc
:autoScalingGroupName/my-asg
:policyName/my-step-scale-in-policy
}步驟 2:建立指標高閾值的 CloudWatch 警示
使用以下 CloudWatch put-metric-alarm
命令建立警示,依據 CPU 平均閾值在至少兩個連續的兩分鐘評估期間內達到 60% 時,增加 Auto Scaling 群組的大小。若要使用自訂指標,請於 --metric-name
中指定它的名稱,於--namespace
中指定它的命名空間。aws cloudwatch put-metric-alarm --alarm-name
Step-Scaling-AlarmHigh-AddCapacity
\ --metric-nameCPUUtilization
--namespaceAWS/EC2
--statistic Average \ --period120
--evaluation-periods2
--threshold60
\ --comparison-operator GreaterThanOrEqualToThreshold \ --dimensions "Name=AutoScalingGroupName,Value=my-asg
" \ --alarm-actionsPolicyARN
-