本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用以規則為基礎的原則自動調整
Amazon 中基於規則的擴展政策在自動擴展叢集容量以回應玩家活動時,GameLift提供精細的控制。針對每個原則,您可以將擴展連結至數個叢集指標之一、識別觸發點,以及自訂回應向上擴充或縮減事件。規則型政策對於補充以目標為基礎的擴展以處理特殊情況非常有用。
以規則為基礎的原則會指出下列情況:「如果叢集量度在特定時間長度內達到或超過臨界值,則會依指定的數量變更叢集的容量。」 本主題介紹用於建構政策語句的語法,並提供說明以建立和管理以規則為基礎的政策。
管理以規則為基礎的政策
使用AWS開發套件或 AWS Command Line Interface (AWS CLI) 搭配 Amazon GameLift 服務 API 建立、更新或刪除以規則為基礎的政策。您可以在 Amazon GameLift 主控台中檢視所有使用中政策。
若要暫時停止叢集的所有擴展政策,請使用AWS CLI命令stop-fleet-actions。
若要建立或更新以規則為基礎的資源調整政策 ()AWS CLI:
-
設定容量限制。使用update-fleet-capacity指令設定其中一個或兩個限制值。如需詳細資訊,請參閱設置亞馬遜GameLift容量限制。
-
建立新政策。開啟命令列視窗,並搭配原則的參數設定使用put-scaling-policy命令。若要更新現有的政策,請指定政策的名稱,並提供已更新政策的完整版本。
--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
-
開啟命令列視窗,並使用具有叢集 ID 和原則名稱的delete-scaling-policy命令。
範例:
aws gamelift delete-scaling-policy \ --fleet-id fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa \ --name "Scale up when AGS<50"
自動縮放規則的語法
若要建構以規則為基礎的資源調整政策陳述式,請指定六個變數:
如果 <metric name>
保持為 <comparison operator>
<threshold value>
達 <evaluation period>
,則使用 <adjustment type>
將機群容量更改為 <adjustment value>
,或者按後者幅度更改。
例如,只要叢集的額外容量少於處理 50 個新遊戲工作階段所需的容量,本政策聲明就會啟動擴展事件:
如果 AvailableGameSessions
維持在 less than 50
達 10 minutes
,那麼請使用 ChangeInCapacity
依照 1 instances
的幅度來更改機群容量。
- 指標名稱
-
若要啟動 Scaling 事件,請將自動擴展政策連結至下列其中一個叢集特定量度。如需完整的量度說明,請參閱適用於艦隊的亞馬遜GameLift指標。
-
啟動遊戲工作階段
-
使用中的遊戲工作階段
-
可用的遊戲工作階段
-
可用遊戲工作階段所占百分比
-
使用中的執行個體
-
可用的玩家工作階段
-
目前玩家工作階段
-
閒置執行個體
-
閒置執行個體所占百分比
如果叢集位於遊戲工作階段佇列中,您可以使用下列指標:
-
佇列深度 — 此叢集的待處理遊戲工作階段要求數量是可用的最佳託管位置。
-
等待時間 — 特定於車隊的等待時間。最早的待處理遊戲工作階段請求已等待執行的時間長度。機群的等待時間等於佇列中目前最早請求的時間。
-
- 比較運算子
-
告訴 Amazon GameLift 如何將指標資料與臨界值進行比較。有效的比較運算子包括大於 (>)、小於 = <), greater than or equal (>) 以及小於或等於 (<=)。
- 閾值
-
當指定的量度值達到或超過閾值時,就會啟動縮放事件。此值一律為正整數。
- 評估期間
-
在開始擴展事件之前,量度必須符合或超過評估期間的完整長度臨界值。評估期長度是連續的;如果指標退回到閾值之下,則評估期重新開始。
- 調整類型和值
-
這組變數共同運作,指定 Amazon 在擴展事件開始時GameLift應如何調整叢集的容量。從三種可能的調整類型中選擇:
-
容量變更 — 依指定的執行個體數目增加或減少目前的容量。將調整值設為要在機群中增加或刪除的執行個體數。正值會新增執行個體,而負值會刪除執行個體。例如,值「-10」會將叢集縮減 10 個執行個體,無論叢集的總大小為何。
-
容量變更百分比 — 依指定的百分比增加或減少目前的容量。將調整值設定為您要增加或減少叢集容量的百分比。正值會新增執行個體,而負值會刪除執行個體。例如,對於具有 50 個執行個體的叢集,變更百分比為「20」會將 10 個執行個體新增至叢集。
-
精確容量 — 將目前容量增加或減少為特定值。將調整值設為您希望在機群中維持的精確執行個體數。
-
以規則為基礎的自動縮放提示
下列建議可協助您利用以規則為基礎的原則,充分利用自動調整規模。
使用多個政策
您可以同時為一個叢集建立多個自動擴展政策。最常見的情況是:使用一個以目標為基礎的政策來管理大多數擴展需求;而使用以規則為基礎的政策來處理邊緣情況。使用多個策略沒有限制。
對於多個策略,每個策略都會獨立運作。沒有辦法控制縮放事件的順序。例如,如果您有多個推動擴展規模的政策,則玩家活動可能會同時開始多個擴展事件。避免彼此啟動的策略。例如,如果您建立將容量設定在彼此臨界值之外的向上擴充和縮減政策,則可以建立無限迴圈。
設定最大和最小容量
每個機群都具有最大和最小容量限制。使用自動縮放時,此功能非常重要。自動調整規模永遠不會將容量設定為超出此範圍的值。預設情況下,新建立的機群具有最小值 0 和最大值 1。為了讓您的自動擴展政策按預期影響容量,請增加最大值。
叢集容量也受到叢集執行個體類型的限制以及AWS 帳戶. 在這些限制和帳戶配額之外,您無法設定最小和最大值。
在容量更改後追蹤指標
在因應自動擴展政策而變更容量後,Amazon 會GameLift等待 10 分鐘,然後再從相同政策回應觸發器。這項等待讓 Amazon 有GameLift時間新增執行個體、啟動遊戲伺服器、連接玩家,以及開始從新執行個體收集資料。在此期間,Amazon 會GameLift根據指標評估政策,並追蹤政策的評估期,該期間會在擴展事件發生後重新啟動。這意味著擴展政策可以在等待時間結束後立即啟動另一個擴展事件。
不同自動擴展政策啟動的擴展事件之間沒有等待時間。