使用以規則為基礎的原則自動調整 - Amazon GameLift

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

使用以規則為基礎的原則自動調整

Amazon 中基於規則的擴展政策在自動擴展叢集容量以回應玩家活動時,GameLift提供精細的控制。針對每個原則,您可以將擴展連結至數個叢集指標之一、識別觸發點,以及自訂回應向上擴充或縮減事件。規則型政策對於補充以目標為基礎的擴展以處理特殊情況非常有用。

以規則為基礎的原則會指出下列情況:「如果叢集量度在特定時間長度內達到或超過臨界值,則會依指定的數量變更叢集的容量。」 本主題介紹用於建構政策語句的語法,並提供說明以建立和管理以規則為基礎的政策。

管理以規則為基礎的政策

使用AWS開發套件或 AWS Command Line Interface (AWS CLI) 搭配 Amazon GameLift 服務 API 建立、更新或刪除以規則為基礎的政策。您可以在 Amazon GameLift 主控台中檢視所有使用中政策。

若要暫時停止叢集的所有擴展政策,請使用AWS CLI命令stop-fleet-actions

若要建立或更新以規則為基礎的資源調整政策 ()AWS CLI:
  1. 設定容量限制。使用update-fleet-capacity指令設定其中一個或兩個限制值。如需詳細資訊,請參閱設置亞馬遜GameLift容量限制

  2. 建立新政策。開啟命令列視窗,並搭配原則的參數設定使用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 5010 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根據指標評估政策,並追蹤政策的評估期,該期間會在擴展事件發生後重新啟動。這意味著擴展政策可以在等待時間結束後立即啟動另一個擴展事件。

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