

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

# 建置 Spot 執行個體的佇列
<a name="spot-tasks"></a>

您可以使用 Spot 機群，大幅節省託管成本。如需 Spot 機群及其使用方式的詳細資訊，請參閱 [隨需執行個體與 Spot 執行個體的比較](gamelift-compute.md#gamelift-compute-spot)。

如果您的遊戲託管解決方案包含 Spot 機群，您必須使用遊戲工作階段置放佇列。 Amazon GameLift Servers會使用佇列跨多個遊戲託管資源進行搜尋，並選取最適合用來託管新遊戲工作階段的佇列。使用 Spot 機群時，佇列對於將託管成本降至最低並避免可能的 Spot 中斷特別重要。本主題可協助您設定彈性佇列，即使發生中斷、減速和中斷，也能繼續為玩家託管遊戲。您可以自訂佇列如何根據多種因素排定可用託管資源的優先順序，包括託管成本。

您是否使用 FlexMatch 進行配對？ 您可以使用具有 Spot 機群的佇列，為您的配對進行遊戲工作階段放置。

## Spot 機群的實作任務
<a name="spot-tasks-queue"></a>

建立或更新遊戲託管解決方案以使用 Spot 機群時，請完成下列任務。如需如何建置佇列以最佳化 Spot 可用性和彈性的詳細指引，請參閱 [使用 Spot 機群降低遊戲託管成本](fleets-spot.md)。

1. **選擇並為您的遊戲工作階段佇列建立一組機群目的地。**

   首先，決定要佇列放置遊戲工作階段的位置。佇列可以跨多個機群進行搜尋，以尋找最佳的可能配置。每個機群都有一個執行個體類型，但可以有多個地理位置。具有在位置和執行個體類型中提供多樣性的機群的佇列更有可能成功放置。請參閱這些設計有效且具彈性 Spot 最佳化佇列的最佳實務。

1. **建立 Spot 最佳化遊戲工作階段佇列。**

   建立佇列並為您的 Spot 機群進行設定。請參閱 [建立遊戲工作階段佇列](queues-creating.md) 協助建立及設定新佇列。您可以使用 Amazon GameLift Servers主控台或 AWS CLI 來建立或編輯佇列。
   + 從步驟 1 新增機群目的地。
   + 視需要排定目的地順序的優先順序。根據預設， 會依目的地之前的成本排定Amazon GameLift Servers優先順序，因此只有在目的地之間的最低成本相等時，才會使用目的地訂單。
   + 如果您想要在玩家延遲之前排定遊戲託管成本的優先順序，請提供自訂置放優先順序。請參閱 [排定遊戲工作階段放置的優先順序](queues-design-priority.md)。

1. **更新解決方案中的其他元件，以使用新的佇列。**

   當您的解決方案使用 Spot 最佳化佇列來啟動新的遊戲工作階段時，佇列會自動避免將遊戲工作階段放置在具有高中斷可能性的機群中。它改為搜尋所有可行的機群，尋找符合您所定義優先順序的資源，包括玩家延遲、託管成本和目的地順序。
   + 如果您不是使用 FlexMatch- 更新您的後端服務，以在遊戲工作階段請求中指定新的 Spot 最佳化佇列。後端服務Amazon GameLift Servers代表您的遊戲用戶端向 發出 API 請求 （使用 `StartGameSessionPlacement()`)，而且每個請求都必須指定佇列名稱。如需協助在遊戲用戶端實作遊戲工作階段配置，請參閱 [建立遊戲工作階段](gamelift-sdk-client-api.md#gamelift-sdk-client-api-create)。
   + 如果您使用的是 FlexMatch- 更新您的配對組態，將遊戲工作階段請求傳送至新的 Spot 最佳化佇列。當配對系統形成玩家配對時，它會向指定的佇列傳送遊戲工作階段置放請求，以啟動配對的新遊戲工作階段。只有FlexMatch模式設為「受管」的配對組態才能指定置放佇列。您可以使用 CLI AWS 或Amazon GameLift Servers主控台更新配對組態 （請參閱[編輯配對組態](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-create-configuration-edit.html))。

1. **檢閱 Spot 機群和佇列的效能。**

   在Amazon GameLift Servers主控台中或使用 Amazon CloudWatch 檢視Amazon GameLift Servers指標，以檢閱效能。如需 Amazon GameLift Servers 指標的詳細資訊，請參閱[使用 Amazon CloudWatch 監控 Amazon GameLift Servers](monitoring-cloudwatch.md)。關鍵指標包括：
   + 中斷率 – 使用 `InstanceInterruptions`和 `GameSessionInterruptions`指標來追蹤執行個體和遊戲工作階段的 Spot 相關中斷次數和頻率。回收執行個體上的遊戲工作階段狀態為 `TERMINATED`，狀態原因為 `INTERRUPTED`。
   + 佇列有效性 – 追蹤置放成功率、平均等待時間和佇列深度，以確認 Spot 機群不會影響您的佇列效能。
   + 機群用量 – 監控執行個體、遊戲工作階段和玩家工作階段的資料。隨需機群的使用量可能是佇列避免置放至 Spot 機群以避免中斷的指標。

## Spot 機群佇列的最佳實務
<a name="queues-design-spot"></a>

 為 Spot 執行個體建立機群和佇列時，請使用下列最佳實務。
+ **展開佇列的地理涵蓋範圍。**即使您的玩家叢集在單一 中 AWS 區域，請將相鄰位置新增至 Spot 機群。此方法可改善佇列在區域變慢、中斷和 Spot 中斷期間維持容量的能力。多位置機群適用於 Spot 和隨需執行個體。
+ **分散佇列的執行個體類型涵蓋範圍。** 會根據執行個體類型Amazon GameLift Servers評估 Spot 可行性，因此讓具有各種執行個體類型的 Spot 機群降低多個 Spot 機群同時不可存活的機率。包含至少兩個 Spot 機群，每個位置都有不同的執行個體類型。
**注意**  
定價是以您使用的執行個體為基礎，而不是機群數量。執行五個具有 10 個執行個體的機群，與執行一個具有 50 個類似成本執行個體的機群相同。定價因執行個體類型、大小和位置而異。

  分組 Spot 執行個體類型的秘訣：
  + 在相同系列中使用執行個體類型，例如 `m6g.medium`、 `m6g.large`和 `m6g.xlarge`。較大的執行個體類型成本較高，但也可以一次託管更多遊戲工作階段。
  + 選取廣泛可用的執行個體類型。一般而言，較舊世代系列 （例如 C5, M5 和 R5) 和常見大小 （例如 .large、.xlarge 和 .2xlarge) 的可用性更佳。
  + 在 Amazon GameLift Servers主控台中檢查 30-90 天的定價歷史記錄。尋找具有一致可用性模式的執行個體類型。
  + 使用 Amazon GameLift Servers主控台、機群建立工具來探索執行個體類型的位置涵蓋範圍。
+ **為備份容量新增隨需機群。**當 Spot 機群無法使用時，遊戲託管可以切換到隨需機群。在每個位置至少放置一個隨需機群，以維持低玩家延遲。將自動擴展新增至備份隨需機群，以便您可以將它們向下擴展，直到需要為止。
+ **將別名指派給所有機群目的地。**為每個佇列的目的地建立別名。別名可讓您在需要取代機群時更輕鬆、更有效率。
+ **套用佇列優先順序策略。**您可以自訂佇列如何排定遊戲工作階段放置位置的優先順序 （如需詳細資訊[排定遊戲工作階段放置的優先順序](queues-design-priority.md)，請參閱 )。對於 Spot 最佳化佇列，成本的優先順序可確保盡可能使用低成本的 Spot 機群。

  您也可以指定目的地順序來排定特定機群的優先順序。例如，某些使用者會指定一組主要機群供定期使用，也會指定一組次要機群做為備份。在此案例中，設定佇列的目的地順序，以先列出主要機群。然後，使用目的地設定佇列的優先順序，後面接著成本。