View a markdown version of this page

建立橫向擴展的步驟擴展政策 - Amazon EC2 Auto Scaling

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

建立橫向擴展的步驟擴展政策

若要為 Auto Scaling 群組建立橫向擴展的步驟擴展政策,請使用下列其中一種方法:

Console
步驟 1:建立指標高閾值的 CloudWatch 警示
  1. 透過 https://console.aws.amazon.com/cloudwatch/ 開啟 CloudWatch 主控台。

  2. 如有必要請變更 區域。請在導覽列中選擇 Auto Scaling 群組所在的區域。

  3. 在導覽窗格中,選擇 Alarms, All alarms (警示,所有警示),然後選擇 Create alarm (建立警示)。

  4. 選擇 Select metric (選取指標)。

  5. 在 All metrics (所有指標) 索引標籤上,選擇 EC2、By Auto Scaling Group (依據 Auto Scaling 群組),然後在搜尋欄位中輸入 Auto Scaling 群組的名稱。然後,選取 CPUUtilization 並選擇 Select metric (選取指標)。Specify metric and conditions (指定指標和條件) 頁面隨即出現,顯示指標的圖表及其他資訊。

  6. 針對 Period (期間),選擇警示的評估期間,例如 1 分鐘。評估警示時,每個期間都會彙整為一個資料點。

    注意

    期間越短會建立更敏感的警示。

  7. 在 Conditions (條件) 下,執行下列動作:

    • 對於 Threshold type (閾值類型),選擇 Static (靜態)。

    • 對於每當CPUUtilization為 時,指定您希望指標的值大於或等於閾值以違反警示。然後,在 than (比) 下,輸入您要設定為超標警示的閾值。

  8. 在 Additional configuration (其他設定) 下,請執行下列動作:

    • 針對 Datapoints to alarm (要警示的資料點),輸入資料點 (評估期間),在此期間指標值必須符合警示的閾值條件。例如,連續兩個 5 分鐘即表示需時 10 分鐘才會呼叫警示狀態。

    • 對於 Missing data treatment (遺失資料處理),選擇 Treat missing data as bad (breaching threshold) (將遺失資料視為不良 (違反閾值))。如需詳細資訊,請參閱《Amazon CloudWatch 使用者指南》中的設定 CloudWatch 警示如何處理遺失資料。

  9. 選擇下一步。

    Configure actions (設定動作) 頁面隨即顯示。

  10. 在 Notification (通知) 下,選取 Amazon SNS 主題來在警示處於 ALARM 狀態、OK 狀態或 INSUFFICIENT_DATA 狀態時進行通知。

    若要讓警示針對相同的警示狀態或不同警示狀態傳送多個通知,請選擇 Add notification (新增通知)。

    若要讓警示不傳送通知,請選擇 Remove (移動)。

  11. 您可以將 Configure actions (設定動作) 頁面的其他區段保留空白。將其他區段保留空白會建立警示,而不會將其與擴展政策建立關聯。然後,您可以從 Amazon EC2 Auto Scaling 主控台將此警示與擴展政策建立關聯。

  12. 選擇下一步。

  13. 輸入名稱 (例如 Step-Scaling-AlarmHigh-AddCapacity),選擇性地輸入警示描述,然後選擇 Next (下一步)。

  14. 選擇 Create alarm (建立警示)。

使用下列程序在建立 CloudWatch 警示後,從您離開的地方繼續。

步驟 2:建立橫向擴展的步驟擴展政策
  1. 前往網址 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台,然後從導覽窗格中選擇 Auto Scaling 群組。

  2. 選取 Auto Scaling 群組旁的核取方塊。

    頁面底部會開啟一個分割窗格。

  3. 確認已將擴展限制設定妥當。例如,如果群組已達到所需容量上限,則需要指定新的上限,以便進行橫向擴展。如需詳細資訊,請參閱設定 Auto Scaling 群組的擴展限制。

  4. 在 Automatic scaling (自動擴展) 索引標籤的 Dynamic scaling policies (動態擴展政策) 中,選擇 Create dynamic scaling policy (建立動態擴展政策)。

  5. 針對政策類型,選擇步驟擴展,然後指定政策的名稱。

  6. 如果是 CloudWatch alarm (CloudWatch 警示),請選擇您的警示。如果您尚未建立警示,請選擇建立 CloudWatch 警示,並完成先前程序中的步驟 4 到步驟 14 來建立警示。

  7. 使用 Take the action (採取動作) 指定此政策將進行的目前群組大小變更。您可以新增特定數量的執行個體,或現有群組大小的百分比,或將群組設為確切大小。

    例如,若要建立將群組容量增加 30% 的向外擴展政策,請選擇 Add,30在下一個欄位中輸入 ,然後選擇 percent of group。根據預設,此步驟調整的下限即為警示閾值,而上限為無限大正數 (+) 值。

  8. 若要新增另一個步進,請選擇 Add step (新增步進),然後定義擴展量,以及相對於警示閾值的步進下限與上限。

  9. 若要設定擴展的執行個體數量下限,請更新 Add capacity units in increments of at least 1 capacity units (以至少 1 個容量單位的增量幅度來新增容量單位) 中的數值欄位。

  10. (選用) 對於執行個體暖機期,視需要更新執行個體暖機期值。

  11. 選擇建立。

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-name my-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-magnitude 1

記錄政策的 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-name CPUUtilization --namespace AWS/EC2 --statistic Average \ --period 120 --evaluation-periods 2 --threshold 60 \ --comparison-operator GreaterThanOrEqualToThreshold \ --dimensions "Name=AutoScalingGroupName,Value=my-asg" \ --alarm-actions PolicyARN