建立用於向外延展的步驟調整政策 - Amazon EC2 Auto Scaling

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

建立用於向外延展的步驟調整政策

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

Console
步驟 1:為量度高閾值建立 CloudWatch 警示
  1. 請在以下位置開啟 CloudWatch 主控台。 https://console.aws.amazon.com/cloudwatch/

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

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

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

  5. All metrics (所有指標) 索引標籤上,選擇 EC2By 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. 選擇 Next (下一步)。

  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 鬧鐘,請選擇您的鬧鐘。如果您尚未建立鬧鐘,請選擇 [建立 CloudWatch 鬧鐘],並完成上一個程序中的步驟 4 到步驟 14 來建立鬧鐘。

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

    例如,若要建立將群組容量增加 30% 的向外延展原則,請選擇並在下一個欄位30中輸入Add,然後選擇。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