

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

# 使用規則型政策自動擴展
<a name="fleets-autoscaling-rule"></a>

中的規則型擴展政策會在自動擴展機群容量以回應玩家活動時Amazon GameLift Servers提供精細的控制。對於每個政策，您可以將擴展連結至多個機群指標之一、識別觸發點，以及自訂回應擴展或縮減事件。規則型政策適用於補充[目標型擴展](fleets-autoscaling-target.md)，以處理特殊情況。

規則型政策會陳述下列項目：「如果機群指標符合或超過閾值達特定時間長度，則依指定數量變更機群的容量。」 本主題介紹用於建構政策語句的語法，並提供說明以建立和管理以規則為基礎的政策。

## 管理以規則為基礎的政策
<a name="fleets-autoscaling-policy-setting-cli"></a>

使用 AWS SDK 或 AWS Command Line Interface (AWS CLI) 搭配 [的服務 API Amazon GameLift Servers](https://docs.aws.amazon.com/gameliftservers/latest/apireference/Welcome.html)來建立、更新或刪除規則型政策。您可以在 Amazon GameLift Servers 主控台中查看所有使用中的政策。

若要暫時停止機群的所有擴展政策，請使用 AWS CLI 命令 [stop-fleet-actions](https://docs.aws.amazon.com/cli/latest/reference/gamelift/stop-fleet-actions.html)。

**若要建立或更新規則型擴展政策 (AWS CLI)：**

1. **設定容量限制。**使用 [update-fleet-capacity](https://docs.aws.amazon.com/cli/latest/reference/gamelift/update-fleet-capacity.html) 命令來設定其中一項或同時設定兩項限制值。如需詳細資訊，請參閱[設定Amazon GameLift Servers容量限制](fleets-capacity-limits.md)。

1. **建立新政策。**開啟命令列視窗，並使用 [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/gamelift/put-scaling-policy.html) 命令搭配政策的參數設定。若要更新現有的政策，請指定政策的名稱，並提供已更新政策的完整版本。

   ```
   --fleet-id <unique fleet identifier>
   --name "<unique policy name>"
   --policy-type <target- or rule-based policy>
   --metric-name <name of metric>
   --comparison-operator <comparison operator>
   --threshold <threshold integer value>
   --evaluation-periods <number of minutes>
   --scaling-adjustment-type <adjustment type>
   --scaling-adjustment <adjustment amount>
   ```

   範例：

   ```
   aws gamelift put-scaling-policy \
       --fleet-id fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa \
       --name "Scale up when AGS<50" \
       --policy-type RuleBased \
       --metric-name AvailableGameSessions \
       --comparison-operator LessThanThreshold \
       --threshold 50 \
       --evaluation-periods 10 \
       --scaling-adjustment-type ChangeInCapacity \
       --scaling-adjustment 1
   ```

**若要使用 刪除規則型擴展政策 AWS CLI：**
+ 開啟命令列視窗，並使用 [delete-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/gamelift/delete-scaling-policy.html) 命令搭配機群 ID 和政策名稱。

  範例：

  ```
  aws gamelift delete-scaling-policy \
      --fleet-id fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa \
      --name "Scale up when AGS<50"
  ```

## 自動擴展規則的語法
<a name="fleets-autoscaling-rule-syntax"></a>

若要建構規則型擴展政策陳述式，請指定六個變數：

如果 *<metric name>* 保持為 *<comparison operator>* *<threshold value>* 達 *<evaluation period>*，則使用 *<adjustment type>* 將機群容量更改為 *<adjustment value>*，或者按後者幅度更改。

例如，每當機群的額外容量低於處理 50 個新遊戲工作階段所需的容量時，此政策陳述式就會啟動擴展事件：

如果 `AvailableGameSessions` 維持在 `less than 50` 達 `10 minutes`，那麼請使用 `ChangeInCapacity` 依照 `1 instances` 的幅度來更改機群容量。

**指標名稱**  
若要啟動擴展事件，請將自動擴展政策連結至下列其中一個機群特定的指標。如需完整的指標說明，請參閱 [機群的 Amazon GameLift Servers 指標](monitoring-cloudwatch.md#gamelift-metrics-fleet)。  
+ 啟動遊戲工作階段
+ 使用中的遊戲工作階段
+ 可用的遊戲工作階段
+ 可用遊戲工作階段所占百分比
+ 使用中的執行個體
+ 可用的玩家工作階段
+ 目前玩家工作階段
+ 閒置執行個體
+ 閒置執行個體所占百分比
如果機群位於遊戲工作階段佇列中，您可以使用下列指標：  
+ 佇列深度 – 此機群的最佳可用託管位置是待定遊戲工作階段請求的數量。
+ 等待時間 – 機群特定的等待時間。最早的待處理遊戲工作階段請求已等待執行的時間長度。機群的等待時間等於佇列中目前最早請求的時間。

**比較運算子**  
Amazon GameLift Servers 說明如何比較指標資料與閾值。有效的比較運算子包括大於 (＞)、小於 (＜)、大於或等於 (>=)，以及小於或等於 (<=)。

**閾值**  
當指定的指標值符合或超過閾值時，就會啟動擴展事件。此值一律為正整數。

**評估期間**  
在開始擴展事件之前，指標必須符合或超過評估期間完整長度的閾值。評估期長度是連續的；如果指標退回到閾值之下，則評估期重新開始。

**調整類型和值**  
這組變數可一起運作，指定擴展事件開始時Amazon GameLift Servers應如何調整機群的容量。從三種可能的調整類型中選擇：  
+ **容量變更** – 增加或減少指定執行個體數量的目前容量。將調整值設為要在機群中增加或刪除的執行個體數。正值會新增執行個體，而負值會刪除執行個體。例如，「-10」的值會將機群縮減 10 個執行個體，無論機群的總大小為何。
+ **容量的百分比變更** – 將目前容量增加或減少指定的百分比。將調整值設定為您要增加或減少機群容量的百分比。正值會新增執行個體，而負值會刪除執行個體。例如，對於具有 50 個執行個體的機群，「20」的百分比變更會將 10 個執行個體新增至機群。
+ **精確容量** – 將目前容量增加或減少為特定值。將調整值設為您希望在機群中維持的精確執行個體數。

## 規則型自動擴展的提示
<a name="fleets-autoscaling-rule-tips"></a>

下列建議可協助您使用規則型政策充分利用自動擴展。

### 使用多個政策
<a name="fleets-autoscaling-policy-tips-multiples"></a>

您可以同時有多個機群的自動擴展政策。最常見的情況是：使用一個以目標為基礎的政策來管理大多數擴展需求；而使用以規則為基礎的政策來處理邊緣情況。使用多個政策沒有限制。

使用多個政策時，每個政策都會獨立運作。無法控制擴展事件的序列。例如，如果您有多個政策正在向上擴展，則玩家活動可能會同時啟動多個擴展事件。避免互相啟動的政策。例如，如果您建立的擴展和縮減政策將容量設定為超過彼此的閾值，您可以建立無限迴圈。

### 設定最大和最小容量
<a name="fleets-autoscaling-policy-tips-maximums"></a>

每個機群都具有最大和最小容量限制。使用自動擴展時，此功能很重要。自動擴展永遠不會將容量設定為超出此範圍的值。預設情況下，新建立的機群具有最小值 0 和最大值 1。若要讓您的自動擴展政策如預期影響容量，請增加最大值。

機群容量也會受限於機群的執行個體類型限制，以及 中的服務配額限制 AWS 帳戶。您無法在這些限制和帳戶配額之外設定下限和上限。

### 在容量更改後追蹤指標
<a name="fleets-autoscaling-policy-tips-cooldown"></a>

變更容量以回應自動擴展政策後， 會Amazon GameLift Servers等待 10 分鐘，然後再回應來自相同政策的觸發。此等待可讓您有Amazon GameLift Servers時間新增執行個體、啟動遊戲伺服器、連接玩家，以及開始從新執行個體收集資料。在此期間， 會根據 指標Amazon GameLift Servers評估政策，並追蹤政策的評估期間，該期間會在發生擴展事件後重新啟動。這表示擴展政策可能會在等待時間結束後立即啟動另一個擴展事件。

不同自動擴展政策開始的擴展事件之間沒有等待時間。