

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

# 步驟擴展：使用步驟擴展政策來擴展 Spot 機群
<a name="spot-fleet-step-scaling"></a>

如果使用步進規模調整政策，您可以指定 CloudWatch 警示來觸發規模調整程序。例如，如果想在 CPU 的利用率達到某個水準時擴展，請使用 Amazon EC2 所提供的 `CPUUtilization` 指標來建立警示。

建立步進規模調整政策時，您必須指定下列規模調整類型的其中一種：
+ **新增** – 根據指定的容量單位數量或指定的目前容量百分比，來增加機群的目標容量。
+ **移除** – 根據指定的容量單位數量或指定的目前容量百分比，來減少機群的目標容量。
+ **設定為** – 將機群的目標容量設定為指定的容量單位數量。

警示觸發時，自動擴展程序會利用已實現的容量和規模調整政策，來計算出新的目標容量，然後據以更新目標容量。例如，假設目標容量為和已實現的容量為 10，而且規模調整政策會增加 1。當警示觸發時，自動擴展程序會將 10 加上 1 而得出 11，因此 Spot Fleet 會啟動 1 個執行個體。

當 Spot 機群因為目標容量減少而終止 Spot 執行個體時，執行個體會收到 Spot 執行個體中斷通知。

**先決條件**
+ Spot 機群請求必須具有 `maintain` 的請求類型。類型 `request` 的請求不支援自動擴展功能。
+ 設定 [Spot Fleet 自動擴展所需的 IAM 許可](spot-fleet-auto-scaling-IAM.md)。
+ 思考哪些 CloudWatch 指標對您的應用程式是重要的。您可以根據 提供的指標 AWS 或您自己的自訂指標來建立 CloudWatch 警示。
+ 對於您將在擴展政策中使用的 AWS 指標，如果提供指標的服務預設不會啟用 CloudWatch 指標集合。
+ 請參閱[考量事項](spot-fleet-automatic-scaling.md#considerations-for-spot-fleet-automatic-scaling)。

**建立 CloudWatch 警示**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，展開**警示**，然後選擇**所有警示**。

1. 選擇**建立警示**。

1. 在**指定指標和條件**頁面上，選擇**選取指標**。

1. 選擇 **EC2 Spot**、**機群請求指標**，選取指標 (例如，**TargetCapacity**)，然後選擇**選取指標**。

   **指定指標和條件**頁面隨即出現，顯示您選取指標的圖形及其他資訊。

1. 針對**期間**，選擇警示的評估期間，例如 **1 分鐘**。評估警示時，每個期間都會彙整為一個資料點。
**注意**  
期間越短會建立更敏感的警示。

1. 針對**條件**，透過定義閾值條件來定義警示。例如，您可以定義一個閾值，設定每當指標值大於或等於 80% 時，即會觸發警示。

1. 在**其他組態** 下，針對**要產生警示的資料點**，指定多少資料點 (評估期間) 必須處於 ALARM 狀態才會觸發警示，例如，1 評估期間或 3 個中的 2 個評估期間。這樣建立的警示會在連續超過這麼多期間時進入 ALARM 狀態。如需詳細資訊，請參閱 *Amazon CloudWatch 使用者指南* 中的[評估警示](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation)。

1. 對於**遺失資料處理**，選擇其中之一個選項 (或保留預設的 **將遺失資料視為遺失**)。如需詳細資訊，請參閱「Amazon CloudWatch 使用者指南」**中的[設定 CloudWatch 警示如何處理遺失資料](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data)。

1. 選擇**下一步**。

1. (選用) 若要接收擴展事件的通知，針對**通知**，您可以選擇或建立您要用於接收通知的 Amazon SNS 主題。否則，您可以立即刪除通知，並根據需要在之後新增通知。

1. 選擇**下一步**。

1. 在**新增名稱和描述**下，輸入警示的名稱和描述，然後選擇**下一步**。

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

**為您的 Spot 機群設定步進擴展政策**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在瀏覽窗格中，選擇 **Spot 請求**。

1. 選取您的 Spot Fleet 請求。

1. 選擇畫面底部附近的**自動擴展**索引標籤。如果您已選取 Spot 機群的連結，則沒有索引標籤；而是向下捲動至**自動擴展**區段。

1. 如果未設定自動擴展，請選擇**設定**。

1. 利用**容量擴展的範圍**來設定機群的最低和最高容量。擴展政策不會將機群的規模擴展到小於最低容量或大於最高容量。

1. 在**擴展政策**下，針對**政策類型**，選擇**步驟擴展政策**。

1. 一開始，**擴展政策**包含名為 **ScaleUp** 和 **ScaleDown** 的步驟擴展政策。您可以完成這些政策，或是選擇**移除政策**來刪除政策。您也可以選擇**新增政策**。

1. 若要定義政策，請執行下列的動作：

   1. 針對 **Policy Name (政策名稱)**，請輸入政策的名稱。

   1. 針對**政策觸發器**，選擇現有的警示，或是選擇**建立警示**來開啟 Amazon CloudWatch 主控台，然後建立警示。

   1. 針對**修改容量**，請定義要擴展的量以及步驟調整的下限與上限。您可以新增或移除特定數量的執行個體，或現有機群大小的百分比，或將機群設為確切大小。

      例如，若要建立可將機群容量增加 30% 的步驟擴展政策，請選擇**新增**，在下一個欄位中輸入 **30**，然後選擇**百分比**。根據預設，新增政策的下限為警示閾值，而上限為無限大正數 (\+) 值。根據預設，移除政策的上限為警示閾值，而下限為無限小負數 (-) 值。

   1. (選用) 若要新增另一個步驟，請選擇**新增步驟**。

   1. 針對**冷卻時間**，請指定一個新值 (以秒為單位) 或保留預設值。

1. 選擇**儲存**。

**使用 設定 Spot 機群的步驟擴展政策 AWS CLI**

1. 使用 [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) 命令，將 Spot Fleet 請求註冊為可擴充的目標。

1. 使用 [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html) 命令，來建立擴展政策。

1. 使用 [put-metric-alarm](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html) 命令，來建立觸發擴展政策的警示。