

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

# 什麼是Amazon GameLift Servers FleetIQ？
<a name="gsg-intro"></a>

Amazon GameLift Servers FleetIQ 最佳化使用低成本 Amazon Elastic Compute Cloud (Amazon EC2) Spot 執行個體進行雲端遊戲託管。使用Amazon GameLift Servers FleetIQ，您可以直接使用 Amazon EC2 和 Amazon EC2 Auto Scaling 中的託管資源，同時利用Amazon GameLift Servers最佳化為玩家提供經濟實惠、彈性的遊戲託管。雖然 Amazon EC2 Spot 執行個體以大幅折扣提供，但通常無法用於遊戲託管，因為可用性會波動，並且有[中斷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html)的可能性。 可Amazon GameLift Servers FleetIQ大幅降低這些限制，使低成本 Spot 執行個體可用於遊戲託管。

FleetIQ 使用 Amazon GameLift Servers管理遊戲託管時，也可以使用 最佳化。如需Amazon GameLift Servers託管選項的詳細資訊，請參閱 [Amazon GameLift Servers開發人員指南](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-intro.html)。

Amazon GameLift Servers FleetIQ 遊戲託管解決方案專為以下遊戲開發人員而設計：
+ 擁有現有的 AWS 部署或想要直接使用 Amazon EC2，而不是透過全受管Amazon GameLift Servers服務。 Amazon GameLift Servers FleetIQ 可與您在 中管理的 EC2 Auto Scaling 群組搭配使用 AWS 帳戶，讓您完整存取 EC2 執行個體和群組。您也可以與其他 AWS 服務整合，包括 Amazon Elastic Container Service (Amazon ECS)、Amazon Elastic Kubernetes Service (Amazon EKS) 和 AWS Shield Advanced。
+ 擁有現有的內部部署遊戲託管，並希望將容量擴充到雲端。使用Amazon GameLift Servers FleetIQ，您可以建置混合部署系統，以使用您的內部部署容量，並視需要遞增新增 AWS 雲端容量。

**準備好開始使用Amazon GameLift Servers FleetIQ了嗎？**  
參加在 AWS 技能建置器上使用 [Amazon Amazon GameLift Servers FleetIQ for Game Servers](https://explore.skillbuilder.aws/learn/course/external/view/elearning/435/using-amazon-gamelift-fleetiq-for-game-servers) 的課程，了解如何Amazon GameLift Servers FleetIQ在遊戲中使用 。如需相關課程的概觀，請參閱[遊戲技術學習計畫](https://explore.skillbuilder.aws/learn/public/learning_plan/view/26/game-tech-learning-plan)。有些課程提供不同的語言。
請遵循中的說明進行[Amazon GameLift ServersFleetIQ 整合步驟](gsg-getting-started.md)

# 如何Amazon GameLift Servers FleetIQ運作
<a name="gsg-howitworks"></a>

Amazon GameLift Servers FleetIQ 解決方案是一種遊戲託管層，可補充您使用 Amazon EC2 和 Auto Scaling 取得的完整運算資源管理工具。除了提供遊戲託管的一系列功能之外，Amazon GameLift Servers FleetIQ還提供額外的邏輯層，讓您可以使用低成本 Spot 執行個體進行遊戲託管。此解決方案可讓您直接管理 Amazon EC2 和 Auto Scaling 資源，並視需要與其他 AWS 服務整合。

使用 時Amazon GameLift Servers FleetIQ，您準備照常啟動 Amazon EC2 執行個體：使用遊戲伺服器軟體建立 Amazon Machine Image (AMI)、建立 Amazon EC2 啟動範本，以及定義 Auto Scaling 群組的組態設定。不過，您可以使用 Amazon EC2 和 Auto Scaling 資源和組態建立Amazon GameLift Servers FleetIQ遊戲伺服器群組，而不是直接建立 Auto Scaling 群組。此動作Amazon GameLift Servers FleetIQ會提示建立遊戲伺服器群組和對應的 Auto Scaling 群組。遊戲伺服器群組會連結至和管理 Auto Scaling 群組的某些層面。

建立 Auto Scaling 群組後，您可以完整存取 Amazon EC2 和 Auto Scaling 資源。您可以變更 Auto Scaling 群組的組態、新增多層擴展政策或負載平衡器，以及與其他 AWS 服務整合。您可以直接連線至 群組中的執行個體。作為其最佳化邏輯的一部分，Amazon GameLift Servers FleetIQ也會定期更新特定 Auto Scaling 群組屬性。您可以追蹤 Auto Scaling 群組部署之所有執行個體的可用性狀態。

您可以隨時暫停遊戲伺服器群組Amazon GameLift Servers FleetIQ的活動。您也可以選擇刪除遊戲伺服器群組，但保留對應的 Auto Scaling 群組。

**Topics**
+ [Amazon GameLift Servers FleetIQ 邏輯](gsg-howitworks-logic.md)
+ [主要資源及元件](gsg-howitworks-resources.md)

# Amazon GameLift Servers FleetIQ 邏輯
<a name="gsg-howitworks-logic"></a>

下圖說明使用 Amazon EC2 進行遊戲託管Amazon GameLift Servers FleetIQ時 的角色。其主要目標是找到*最佳的*遊戲伺服器來託管遊戲工作階段，並為玩家提供最佳遊戲體驗。 將*最佳*資源Amazon GameLift Servers FleetIQ定義為能以最低成本提供最高遊戲託管可行性的資源。 會以兩種關鍵方式Amazon GameLift Servers FleetIQ處理此目標：首先在 Auto Scaling 群組中只允許可行的執行個體類型，其次是在群組的可用資源之間有效地放置新的遊戲工作階段。

![\[Amazon GameLift Servers FleetIQ 可與 Amazon EC2 搭配使用\]](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/fleetiqguide/images/gsg-howitworks-logic.png)


## 將最佳執行個體類型填入 Auto Scaling 群組中
<a name="gsg-howitworks-logic-rebalancing"></a>

Auto Scaling 群組的任務是啟動新執行個體並淘汰舊執行個體、維護託管資源的集合，並擴展以符合您的玩家需求。為此，Auto Scaling 群組依賴於您所需的執行個體類型清單。的任務Amazon GameLift Servers FleetIQ是持續檢查這些所需執行個體類型的可行性，並更新 Auto Scaling 群組的清單。此程序稱為執行個體平衡。它可確保持續重新整理 Auto Scaling 群組中的執行個體，以便隨時只使用目前可行的執行個體類型。

Amazon GameLift Servers FleetIQ 影響 Auto Scaling 群組如何以下列方式選取最佳執行個體類型：
+ **它決定 Spot 和/或隨需執行個體的使用情況。**Amazon GameLift Servers FleetIQ 遊戲伺服器群組設定了平衡策略，這會影響 Auto Scaling 群組如何使用 Spot 和/或隨需執行個體。由於可用性和潛在[中斷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html)的波動，以及Amazon GameLift Servers FleetIQ遊戲伺服器託管最小化的限制，Spot 執行個體的成本較低。隨需執行個體的成本更高，但在需要時提供更可靠的可用性。
+ **它限制新執行個體只能在可行的執行個體類型上啟動。**Amazon GameLift Servers FleetIQ 遊戲伺服器群組會維護所需執行個體類型的主清單，執行個體平衡程序會使用查看執行個體類型最近可用性和中斷率的預測演算法，持續評估清單中的每個所需執行個體類型是否有遊戲託管可行性。由於此評估結果，Amazon GameLift Servers FleetIQ會持續更新 Auto Scaling 群組的所需執行個體類型清單，只包含目前可行的執行個體類型。
+ **它會標記為不可存活執行個體類型的現有執行個體。** Amazon GameLift Servers FleetIQ會識別 Auto Scaling 群組中目前不可存活執行個體類型的現有執行個體。這些執行個體會標記為*耗盡*，這表示它們會終止並以新的執行個體取代。對於已開啟遊戲伺服器保護的執行個體，終止會延遲到任何作用中的遊戲工作階段正常結束為止。

當 Auto Scaling 群組啟動和淘汰執行個體時，會維護針對遊戲託管最佳化的集合，即使低成本 Spot 執行個體類型的可用性波動也一樣。平衡活動只會在具有作用中執行個體的遊戲伺服器群組上進行。進一步了解此程序在 [Spot 平衡程序](gsg-lifecycle-rebalance.md) 中的運作方式。

## 有效進入遊戲工作階段
<a name="gsg-howitworks-logic-fleetiq"></a>

Amazon GameLift Servers FleetIQ 會追蹤遊戲伺服器群組中的所有作用中遊戲伺服器，並使用此資訊來判斷新遊戲工作階段和玩家的最佳放置位置。

若要讓 Amazon GameLift Servers FleetIQ 追蹤遊戲伺服器，您的遊戲伺服器軟體必須報告其狀態。您的自訂 AMI 可控制在每個執行個體上啟動和停止新遊戲伺服器程序的方式。當新的遊戲伺服器啟動時，它會向 註冊Amazon GameLift Servers FleetIQ，表示它已準備好託管遊戲工作階段。註冊後，遊戲伺服器會定期回報其運作狀態，以及目前是否託管遊戲工作階段。當遊戲伺服器關閉時，它會向 取消註冊Amazon GameLift Servers FleetIQ。

若要啟動新的遊戲工作階段，您的遊戲用戶端 （或配對建構器或其他用戶端服務） 會將遊戲伺服器的請求傳送至Amazon GameLift Servers FleetIQ。 會Amazon GameLift Servers FleetIQ尋找可用的遊戲伺服器、宣告新的遊戲工作階段，並使用遊戲伺服器 ID 和連線資訊來回應。您的遊戲接著會提示遊戲伺服器更新其狀態，並為進入遊戲的玩家啟動新的遊戲工作階段。

選取遊戲伺服器以託管新的遊戲工作階段時，Amazon GameLift Servers FleetIQ會使用下列決策程序，透過可行的低成本 Spot 執行個體來最佳化置放：

1. 可能的話， 會在已託管其他遊戲工作階段的執行個體上Amazon GameLift Servers FleetIQ放置新的遊戲工作階段。透過封裝 （但不超載） 某些執行個體並保持其他執行個體閒置，Auto Scaling 群組可以在不需要閒置執行個體時快速縮減，進而降低託管成本。

1. Amazon GameLift Servers FleetIQ 會忽略標記為*耗盡*的執行個體，也就是無法用於遊戲託管。這些執行個體只會繼續執行，以支援現有的遊戲工作階段。除非沒有其他遊戲伺服器可用，否則它們無法用於新的遊戲工作階段。

1. Amazon GameLift Servers FleetIQ 識別在可行執行個體上執行的所有可用遊戲伺服器。

您可以為遊戲伺服器群組開啟遊戲工作階段保護，以防止 Auto Scaling 群組在主動執行遊戲工作階段的情況下終止執行個體。

# 主要資源及元件
<a name="gsg-howitworks-resources"></a>

使用 設定遊戲託管資源之前，請先在 AWS 帳戶中建立下列資源Amazon GameLift Servers FleetIQ。根據最佳實務，在透過遊戲伺服器群組使用資源之前，會先使用這些資源來開發和測試遊戲伺服器部署。
+ **Amazon Machine Image (AMI)。**AMI 是您要使用 Amazon EC2 執行個體啟動之特定軟體組態的範本。對於遊戲託管，AMI 包括作業系統、遊戲伺服器二進位檔或容器，以及遊戲伺服器所需的其他執行階段軟體。如需建立 AMI 的詳細資訊，請參閱[《Amazon EC2 使用者指南》中的 Amazon Machine Image](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html)。 Amazon EC2 AMI 具有區域限制。您可以將 AMI 從一個區域複製到另一個區域，如 *Amazon EC2 使用者指南*中的[複製 AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html) 所述。
+ **Amazon EC2 啟動範本。**啟動範本提供在 Auto Scaling 群組中啟動和管理執行個體的指示。它會指定一個 AMI、提供適合的執行個體類型清單，以及設定網路、安全性及其他屬性。如需建立啟動範本的詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[從啟動範本啟動執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html)。啟動範本具有區域限制。
+ **AWS IAM 角色**。IAM 角色會定義一組允許有限存取 AWS 資源的許可。信任的實體，例如其他服務 AWS ，可以擔任該角色並繼承其許可。使用 時Amazon GameLift Servers FleetIQ，您必須為 IAM 角色提供受管政策，Amazon GameLift Servers FleetIQ允許 建立和存取您 AWS 帳戶中的 Auto Scaling 群組和 EC2 執行個體資源。IAM 角色沒有區域限制。

Amazon GameLift Servers FleetIQ 會直接管理下列資源，並擁有其直接授權。
+ **Amazon GameLift Servers 遊戲伺服器群組**。遊戲伺服器群組包含組態設定，定義 如何與對應的 Auto Scaling 群組Amazon GameLift Servers FleetIQ搭配使用，以提供低成本的遊戲託管。遊戲伺服器群組是區域特定的。當您在區域中建立遊戲伺服器群組時，系統會自動在相同區域的 AWS 帳戶中建立新的 Auto Scaling 群組。遊戲伺服器群組連結至 Auto Scaling 群組，並具有存取權 (藉由擔任 IAM 角色) 以管理和修改其部分設定。遊戲伺服器群組是長期資源；開發人員應該很少會建立這些資源。遊戲伺服器群組也是遊戲伺服器的功能性分組資源，這些資源託管在 Auto Scaling 群組中的執行個體上，並向 註冊Amazon GameLift Servers FleetIQ。
+ **Amazon GameLift Servers 遊戲伺服器。**遊戲伺服器資源代表在與遊戲伺服器群組相關聯的執行個體上執行的Amazon GameLift Servers FleetIQ遊戲執行。當遊戲伺服器向 註冊Amazon GameLift Servers FleetIQ並識別其所屬的遊戲伺服器群組時，就會建立此資源。 會Amazon GameLift Servers FleetIQ追蹤每個已註冊遊戲伺服器的使用狀態和宣告狀態，讓它能夠監控遊戲伺服器的可用性。遊戲伺服器具有區域限制，因為它們與特定區域的遊戲伺服器群組相關聯。當您的遊戲請求新的遊戲伺服器時，會指定遊戲伺服器群組和區域。

這些資源是透過 Amazon GameLift Servers FleetIQ 資源建立的。它們會在您的帳戶 AWS 中建立，您可以完全控制它們。
+ **Amazon EC2 Auto Scaling 群組。**Auto Scaling 群組會啟動和管理 EC2 執行個體的集合，並自動調整群組容量。使用 時Amazon GameLift Servers FleetIQ，遊戲伺服器群組與 Auto Scaling 群組之間有one-to-one的關係。雖然您可以更新 Auto Scaling 群組的所有設定，但 會Amazon GameLift Servers FleetIQ定期覆寫和更新特定設定作為其邏輯的一部分，以平衡 Spot 執行個體的遊戲託管可行性。如需詳細資訊，請參閱《*Amazon EC2 Auto Scaling * [ Auto Scaling 使用者指南》中的 AutoScalingGroup](https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroup.html)。Auto Scaling 群組具有區域限制；這些群組是在與遊戲伺服器群組相同的區域中建立的。
+ **Amazon EC2 執行個體。**執行個體是雲端虛擬伺服器。執行個體類型具有特定硬體組態，可指定運算、記憶體、磁碟和網路資源。它們通常由具有 AMI 的 Auto Scaling 群組啟動。執行個體可以是 Spot 或隨需，視可用性而定。透過Amazon GameLift Servers FleetIQ，執行個體會執行一或多個遊戲伺服器程序，每個程序都可以託管多個遊戲工作階段。執行個體是區域特定的，因為它們與區域特定的 Auto Scaling 群組相關聯。

# 使用 的遊戲架構 Amazon GameLift ServersFleetIQ
<a name="gsg-architecture"></a>

## 補充內部部署託管
<a name="gsg-architecture-on-premises"></a>

Amazon GameLift ServersFleetIQ 旨在重複使用現有的遊戲後端，包括您可能已經有的任何玩家地理 IP 路由、配對或大廳服務。下列範例說明 Amazon GameLift ServersFleetIQ如何符合現有的現場部署。

**Example**  
在此範例中，遊戲託管最初是由四個專屬資料中心處理，以便託管北美和歐洲的玩家。根據玩家大致的地理位置，會將玩家路由到兩個區域配對建構器中的其中之一。配對建構器會依照技巧和延遲時間將玩家進行分組，然後將他們放在附近的遊戲伺服器上，將延遲降到最低。  

![\[內部部署遊戲架構\]](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/fleetiqguide/images/gsg-architecture-onprem.png)

遊戲開發人員想要將其北美洲遊戲伺服器取代為 提供的伺服器Amazon GameLift ServersFleetIQ。首先，他們會對其遊戲伺服器進行次要更新，使其能夠與 搭配使用，Amazon GameLift ServersFleetIQ然後建立 Amazon Machine Image (AMI)。此映像將安裝在針對遊戲部署的每個 EC2 執行個體上。此映像包含遊戲伺服器、相依性，以及為玩家執行遊戲工作階段所需的任何其他項目。  
準備好 AMI 後，開發人員會建立兩個Amazon GameLift ServersFleetIQ遊戲伺服器群組，每個 AWS 北美洲區域 (`us-east-1` 和 `us-west-2)`) 各一個。 開發人員傳入啟動範本 （提供 AMI)、所需執行個體類型的清單，以及群組的其他組態設定。所需執行個體類型的清單會告知在檢查遊戲託管可行的 Spot 執行個體時要使用Amazon GameLift ServersFleetIQ的類型。  
最後，開發人員將 AWS SDK 與 整合Amazon GameLift ServersFleetIQ到其北美配對建構器中，當新的玩家群組需要遊戲工作階段的伺服器容量Amazon GameLift ServersFleetIQ時呼叫 。 會Amazon GameLift ServersFleetIQ尋找具有可用遊戲伺服器的 Spot 執行個體、保留給玩家，並提供伺服器連線資訊。玩家連線到伺服器、玩遊戲，然後中斷連線。若要開始新的遊戲，玩家會重新進入配對，以提示 Amazon GameLift ServersFleetIQ 尋找另一個可用的遊戲伺服器。每個新的遊戲請求都會觸發，Amazon GameLift ServersFleetIQ以搜尋和選取具有低中斷機率的遊戲伺服器。因此，即使 Spot 執行個體可用性隨著時間的推移而波動， Amazon GameLift ServersFleetIQ 也會持續將玩家從無法用於遊戲託管的遊戲伺服器重新導向。  

![\[內部部署 + Amazon GameLift ServersFleetIQ遊戲架構\]](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/fleetiqguide/images/gsg-architecture-onprem-gamelift.png)


# 遊戲伺服器群組的生命週期
<a name="gsg-howitworks-lifecycle-gameservergroup"></a>

遊戲伺服器群組會經歷下列生命週期，包括佈建和狀態更新。遊戲伺服器群組預期會是長期的資源。

![\[遊戲伺服器群組資源的生命週期。\]](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/fleetiqguide/images/gsg-lifecycles-gameservergroup.png)

+ 您可以呼叫 Amazon GameLift Servers API `CreateGameServerGroup()` 並傳入 EC2 啟動範本和組態設定來建立遊戲伺服器群組。為了回應呼叫，會建立一個新的遊戲伺服器群組，並將其置於 NEW (新) 狀態。
+ Amazon GameLift Servers FleetIQ 會啟用非同步啟用工作流程，將遊戲伺服器群組狀態轉換為 ACTIVATING。工作流程會啟動基礎資源的建立，包括 Amazon EC2 Auto Scaling 群組和具有所提供 AMI 的 EC2 執行個體。
  + 如果由於某種原因造成佈建失敗，則遊戲伺服器群組狀態會變成 ERROR (錯誤)。若要取得額外的錯誤資訊，以協助偵錯失敗原因，請就錯誤狀態中的遊戲伺服器群組呼叫 `DescribeGameServerGroup()`。
  + 如果佈建成功，遊戲伺服器群組狀態會轉換為 ACTIVE (作用中)。此時，執行個體會使用向 註冊的遊戲伺服器啟動Amazon GameLift Servers FleetIQ。群組的執行個體類型會定期評估遊戲託管可行性，並視需要平衡。Amazon GameLift Servers FleetIQ也會追蹤群組中作用中遊戲伺服器的狀態，並回應遊戲伺服器的請求。
+ 您可以使用群組識別碼來呼叫 `DeleteGameServerGroup()`，藉此移除遊戲伺服器群組。此動作會讓遊戲伺服器群組狀態進入 DELETE\$1SCHEDULED。只有處於 ACTIVE (作用中) 或 ERROR (錯誤) 狀態的遊戲伺服器群組才能排定刪除。
+ Amazon GameLift Servers FleetIQ 會啟用非同步停用工作流程以回應 DELETE\$1SCHEDULED 狀態，並將遊戲伺服器群組狀態轉換為 DELETING。您可以選擇僅刪除遊戲伺服器群組，或刪除遊戲伺服器群組和連結的 Auto Scaling 群組。
  + 如果由於某種原因造成停用失敗，則遊戲伺服器群組狀態會變成 ERROR (錯誤)。若要取得額外的錯誤資訊，以協助偵錯失敗原因，請就錯誤狀態中的遊戲伺服器群組呼叫 `DescribeGameServerGroup()`。
  + 如果停用成功，遊戲伺服器群組狀態會轉換為 DELETED (已刪除)。

# 遊戲伺服器的生命週期
<a name="gsg-howitworks-lifecycle-gameserver"></a>

透過 Amazon GameLift ServersFleetIQ，遊戲伺服器會經歷下列生命週期，包括佈建和狀態更新。遊戲伺服器預期會是短期的資源。根據最佳實務，遊戲伺服器應在遊戲工作階段結束後取消註冊，而不是重新用於另一個遊戲工作階段。此方法有助於確保可用的遊戲伺服器一律在遊戲託管可行的最低成本資源上執行。
+ 當遊戲伺服器程序在連結 Auto Scaling Amazon GameLift ServersFleetIQ群組中的執行個體上執行時，就會建立遊戲伺服器資源，呼叫 Amazon GameLift Servers API `RegisterGameServer()` 以通知Amazon GameLift ServersFleetIQ它已準備好託管玩家和遊戲。遊戲伺服器有兩種狀態可追蹤其目前的可用性：
  + 使用狀態會追蹤遊戲伺服器目前是否支援遊戲。此狀態最初設定為 AVAILABLE (可用)，表示已準備好接受新的遊戲。一旦遊戲佔用了遊戲伺服器，此狀態會設定為 UTILIZED (已使用)。
  + 佔用狀態會追蹤遊戲伺服器是否已受到即將進行的遊戲佔用。處於 CLAIMED (已佔用) 狀態的遊戲伺服器表示已暫時由遊戲用戶端 (或遊戲服務，例如配對機制) 保留。此狀態Amazon GameLift ServersFleetIQ可防止 將相同的遊戲伺服器提供給多個請求者。您可以佔用其佔用狀態為空白的遊戲伺服器。
+ 下圖說明遊戲伺服器的使用狀態和佔用狀態在其生命週期內如何變更。  
![\[遊戲伺服器資源的生命週期。\]](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/fleetiqguide/images/gsg-lifecycles-gameserver.png)
  + **步驟 1. ** 一個遊戲伺服器群組有六個已註冊的遊戲伺服器。四個的使用狀態為 AVAILABLE (可用) (A、B、C 和 D)，兩個目前狀態為 UTILIZED (已使用) (E 和 F)。
  + **步驟 2.** 遊戲客戶端或配對系統會呼叫 Amazon GameLift Servers API `ClaimGameServer()` 來請求新的遊戲伺服器。此請求Amazon GameLift ServersFleetIQ會提示搜尋可用的遊戲伺服器 (D)，並將其宣告狀態設定為已宣告 60 秒。 會使用遊戲伺服器的連線資訊 (IP 地址和連接埠） 以及其他選用的遊戲特定資料來Amazon GameLift ServersFleetIQ回應其請求。由於遊戲伺服器尚未開始進行遊戲，其使用狀態仍然是 AVAILABLE，但無法透過其他要求佔用。
  + **步驟 3a.** 使用提供的連線資訊，遊戲用戶端可以連線到遊戲伺服器並啟動遊戲。必須藉由呼叫 Amazon GameLift Servers API `UpdateGameServer()`，在 60 秒內觸發遊戲伺服器 (D)，才能將其使用狀態變更為 UTILIZED (已使用)。
  + **步驟 3b.** 如果遊戲伺服器的使用狀態未在 60 秒內更新，則佔用計時器會過期，且佔用狀態會重設為空白。遊戲伺服器 (D) 會返回可用且無人佔用的遊戲伺服器集區。
+ 遊戲伺服器上的遊戲完成且玩家中斷連線後，遊戲伺服器資源會予以移除。在關閉之前，遊戲伺服器程序會呼叫 Amazon GameLift Servers API`DeregisterGameServer()`，通知Amazon GameLift ServersFleetIQ其離開遊戲伺服器群組的遊戲伺服器集區。

# Spot 平衡程序
<a name="gsg-lifecycle-rebalance"></a>

Amazon GameLift ServersFleetIQ 會定期平衡具有 Spot 執行個體的 Auto Scaling 群組中的執行個體。此程序不適用於使用 ON\$1DEMAND\$1ONLY 平衡策略或沒有任何作用中執行個體的遊戲伺服器群組。

Spot 平衡有兩個關鍵目標：
+ 若要持續重新整理群組，請僅使用適用於遊戲託管的 Spot 執行個體類型。
+ 使用多種可行的執行個體類型 （如果可能），以減少意外遊戲伺服器中斷的影響。

 Amazon GameLift ServersFleetIQ 透過評估群組的執行個體類型並移除更可能導致遊戲伺服器中斷的執行個體來平衡。為了避免在平衡期間終止具有作用中遊戲的執行個體，最佳實務是為生產中的遊戲伺服器群組開啟遊戲伺服器保護。

**Example**  
下列範例說明 Auto Scaling 群組中的執行個體如何受到 Spot 平衡的影響。  

![\[Auto Scaling Amazon GameLift ServersFleetIQ 群組在平衡期間的生命週期。\]](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/fleetiqguide/images/gsg-lifecycles-rebalancing.png)

+ **步驟 1. ** 透過遊戲伺服器群組，連結的 Auto Scaling 群組會設定為在啟用遊戲伺服器保護的情況下啟動 m4.large、c4.large 和 c5.large 類型的執行個體。Auto Scaling 群組已啟動平衡集合，其中包含每種類型的兩個 Spot 執行個體。四個執行個體至少有一個處於 UTILIZED (使用) 狀態的遊戲伺服器 (以虛線邊框顯示)，而兩個執行個體目前不支援遊戲。
+ **步驟 2.** Amazon GameLift ServersFleetIQ評估所有三種執行個體類型的目前遊戲託管可行性。評估判斷 c4.large 執行個體類型有不可接受的遊戲伺服器中斷可能性。 會Amazon GameLift ServersFleetIQ立即更新 Auto Scaling 群組組態，暫時從執行個體類型清單中移除 c4.large，防止啟動其他 c4.large 執行個體。
+ **步驟 3：**Amazon GameLift ServersFleetIQ識別 c4.large 類型的現有執行個體，並採取動作從群組中移除這些執行個體。第一個步驟，在 c4.large 執行個體上執行的所有遊戲伺服器都會標示為「耗盡」**。只有在沒有其他遊戲伺服器可用的情況下，才能佔用耗盡狀態之執行個體上的遊戲伺服器。此外，還會觸發具有耗盡狀態之執行個體的 Auto Scaling 群組，以啟動新執行個體來取代它們。
+ **步驟 4.** 當新的可用執行個體上線時，Auto Scaling 群組會終止耗盡狀態的執行個體。此替換可確保維持群組所需的容量。要終止的第一個執行個體是 c4.large 執行個體，其中沒有使用過的遊戲伺服器，而且遊戲伺服器防護已關閉。其已取代為新的 c5.large 執行個體。
+ **步驟 5.** 具有遊戲伺服器防護功能的耗盡執行個體會繼續執行，同時，其遊戲伺服器也會支援遊戲。遊戲結束時，一旦啟動新的 m4.large 執行個體來取代它，即會終止其餘的 c4.large 執行個體。
由於此程序，Auto Scaling 群組會維持所需的容量，同時群組會平衡使用三種執行個體類型至兩種。 會Amazon GameLift ServersFleetIQ繼續評估執行個體類型的原始清單，以取得遊戲託管可行性。當再次將 c4.large 視為可行的執行個體類型時，Auto Scaling 群組會更新為包含所有三種執行個體類型。群組會隨著時間自然平衡。

# Amazon GameLift ServersFleetIQ 最佳實務
<a name="gsg-best-practices"></a>

Amazon GameLift ServersFleetIQ 是一種低階邏輯層，可協助您管理遊戲託管的 Amazon EC2 資源。特別是， 透過將遊戲工作階段可能中斷的機會降至最低，Amazon GameLift ServersFleetIQ最佳化對遊戲託管可行的 Spot 執行個體使用。它也提供基本的遊戲託管功能，以追蹤可用的遊戲伺服器，並將遊戲路由到低成本、高可行性的遊戲伺服器。

Amazon GameLift ServersFleetIQ 作為獨立功能， 不提供完全受管Amazon GameLift Servers解決方案提供的進階功能，該解決方案也使用 FleetIQ 將託管成本降至最低。如果您需要配對、以延遲為基礎的玩家路由、遊戲工作階段和玩家工作階段管理，以及版本控制等功能，請查看Amazon GameLift Servers解決方案。

以下是一些最佳實務，可協助您獲得最大利益Amazon GameLift ServersFleetIQ。
+ **將 Amazon GameLift ServersFleetIQ用於以工作階段為基礎的遊戲。**當 持續將玩家導向最不可能中斷遊戲工作階段的執行個體時， Amazon GameLift ServersFleetIQ效果最佳。維護長期工作階段會干擾Amazon GameLift ServersFleetIQ平衡程序，這會增加遊戲工作階段中斷的可能性。最理想的工作流程是讓玩家從配對 (或選擇伺服器) 進入遊戲。遊戲結束時，玩家會回到配對，並在新的執行個體上路由到另一部遊戲伺服器。我們建議將 Amazon GameLift ServersFleetIQ 用於具有兩小時內工作階段的遊戲。
+ **提供許多執行個體類型以供選擇。**當您設定遊戲伺服器群組時，會提供要使用的執行個體類型清單。您包含的執行個體類型越多，彈性就越大，Amazon GameLift ServersFleetIQ必須針對遊戲託管使用具有高可行性的 Spot 執行個體。例如，您可以在同一個執行個體系列中列出多個大小 (c5.large、c5.xlarge、c5.2xlarge、c5.4xlarge)。使用較大的執行個體，您可以在每個執行個體上執行更多的遊戲伺服器，進而降低成本。使用較小的執行個體，自動擴展可以更快地回應玩家需求的變化。請記住，所需執行個體類型的清單並未排定優先順序，Auto Scaling 群組將使用可行執行個體類型的平衡來維持群組的彈性。
+ **在所有執行個體類型上測試您的遊戲。**確保您的遊戲伺服器可在您為遊戲伺服器群組設定的每個執行個體類型上正常執行。
+ **使用執行個體容量加權。**如果您將遊戲伺服器群組設為使用一系列執行個體大小 (例如 c5.2xlarge、c5.4xlarge、c5.12xlarge)，請包含每個執行個體類型的容量加權資訊。如需詳細資訊，請參閱《[Amazon EC2 Auto Scaling 使用者指南》中的 Amazon EC2 Auto Scaling 的執行個體權重](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-weighting.html)。 *Amazon EC2 Auto Scaling *
+ **使用 放置您的遊戲工作階段Amazon GameLift ServersFleetIQ。**將玩家群組與遊戲伺服器一起放置時，請使用 Amazon GameLift Servers API `ClaimGameServer()`。 Amazon GameLift ServersFleetIQ避免將玩家放置在遊戲工作階段中斷機率較高的執行個體上。
+ **向 報告遊戲伺服器狀態Amazon GameLift ServersFleetIQ。**使用 Amazon GameLift Servers API `UpdateGameServer()` 定期回報伺服器運作狀態和使用率狀態。維持準確的遊戲伺服器狀態有助於更有效率地Amazon GameLift ServersFleetIQ放置遊戲。它也有助於避免在 Spot 平衡活動期間終止具有作用中遊戲體驗的執行個體。
+ **設定自動擴展政策。**您可以建立目標追蹤擴充政策，該政策可以根據玩家使用率和預期需求維護您的託管容量。Amazon GameLift ServersFleetIQ 指標`PercentUtilizedGameServers`是目前使用多少託管容量的指標。大部分的遊戲都希望維護未使用的遊戲伺服器緩衝區，讓新玩家能夠快速進入遊戲。您可以建立維持特定緩衝區大小的擴展政策，並在玩家需求波動時新增或移除執行個體。如需詳細資訊，請參閱《Amazon EC2 Auto Scaling [ Scaling 使用者指南》中的目標追蹤擴展政策](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html)。
+ **針對開發和生產環境使用不同的 AWS 帳戶。**將各帳戶的開發和生產組態分開可以降低設定錯誤影響線上玩家的風險。
+ **為生產環境中的遊戲伺服器群組啟用遊戲工作階段保護。**為了保護您的玩家，請開啟遊戲工作階段保護，並防止作用中的遊戲工作階段因擴展或平衡活動而提早終止。
+ **在與 EC2 整合之前，先測試您的遊戲Amazon GameLift ServersFleetIQ。**我們建議在 EC2 上啟動並執行您的遊戲，並先微調您的組態。然後，您可以使用相同的啟動範本和 AMI 建立遊戲伺服器群組。

  如果您使用的是 Kubernetes，我們建議您先將標準 EC2 執行個體新增到您的 Kubernetes 叢集，然後使用您為 Kubernetes 叢集中工作者節點建立的啟動範本來建立遊戲伺服器群組。如果您使用的是 EKS，請分別建立 EKS 叢集和遊戲伺服器群組。對於遊戲伺服器群組，請使用 EKS 最佳化的 AMI 搭配適當的使用者資料，以及用於 EKS 整合的啟動範本組態。請參閱 [Amazon EKS 最佳化的 Linux AMI](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html) 指南中有關 EKS 工作者節點和 EKS 最佳化 AMI 的詳細資訊。
+ **使用遊戲伺服器群組平衡策略`ON_DEMAND_ONLY`，以獲得可靠的遊戲伺服器可用性。**使用此平衡策略時，不會使用 Spot 執行個體。這是一個有用的工具，可在您最需要時確保伺服器可用性，例如在功能啟動或其他特殊事件期間。您可以視需要將遊戲伺服器群組從 Spot 切換到隨需策略。

也請檢閱這些 AWS 最佳實務：
+ [Amazon EC2 的最佳實務](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-best-practices.html)
+ [Amazon EC2 Auto Scaling 的最佳實務](https://docs.aws.amazon.com/autoscaling/ec2/userguide/gs-best-practices.html)

## Amazon GameLift ServersfeaturesFleetIQ
<a name="gsg-intro-features"></a>
+ **最佳化 Spot 平衡。** 會Amazon GameLift Servers FleetIQ定期評估您的執行個體類型，並取代因遊戲工作階段中斷可能性較高而被視為不可行的 Spot 執行個體。當 EC2 Auto Scaling 群組淘汰舊執行個體並啟動新執行個體時，該群組會持續重新整理為目前可用於遊戲託管的執行個體類型。
+ **最佳化玩家路由。** Amazon GameLift Servers FleetIQ APIs新的遊戲工作階段引導至最有彈性的 Spot 執行個體，最不可能中斷這些執行個體。此外，遊戲工作階段封裝在較少的執行個體上，可改善 EC2 Auto Scaling 群組縮減不需要資源和降低託管成本的能力。
+ **根據玩家用量自動擴展。** Amazon GameLift Servers FleetIQ 會發出遊戲伺服器使用率資料做為 Amazon CloudWatch 指標。您可以使用這些指標來自動擴展可用的託管資源，以追蹤實際的玩家需求，並降低託管成本。
+ **直接管理 Amazon EC2 執行個體。**維持 中 EC2 執行個體和 EC2 Auto Scaling 群組的完整控制權 AWS 帳戶。這表示您可以設定執行個體啟動範本、維護 EC2 Auto Scaling 群組組態，以及與其他 AWS 服務整合。作為 Spot 平衡活動的一部分，Amazon GameLift Servers FleetIQ會定期更新某些 EC2 Auto Scaling 群組屬性。您可以視需要暫時覆寫這些設定或暫停Amazon GameLift Servers FleetIQ活動。
+ **支援多種遊戲伺服器可執行檔格式。**Amazon GameLift Servers FleetIQ支援目前在 Amazon EC2 上執行的所有格式，包括 Windows、Linux、容器和 Kubernetes。如需支援的作業系統和執行時間清單，請參閱 [Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/)。
+ **多種類型的託管資源。 **使用Amazon GameLift Servers FleetIQ，您可以存取遊戲伺服器託管的大量執行個體類型。（可用性因 AWS 區域而異。) 這表示您可以將遊戲伺服器與適當的 CPU、記憶體、儲存體和網路容量組合進行配對，為玩家提供最佳的遊戲體驗。
+ **全球觸角。** Amazon GameLift Servers FleetIQ 適用於 15 個區域，包括中國。有了這個觸手可及之處，您就可以讓玩家無論身在何處，都能以最小的延遲來使用遊戲伺服器。如需區域的完整清單，請參閱 中的[Amazon GameLift Servers端點和配額](https://docs.aws.amazon.com/general/latest/gr/gamelift.html)*AWS 一般參考*。

## 的定價 Amazon GameLift Servers FleetIQ
<a name="gsg-intro-pricing"></a>

Amazon GameLift Servers 依使用持續時間計算的執行個體費用，以及依傳輸資料數量計算的頻寬費用。如需 Amazon GameLift Servers 的完整收費清單與定價，請參閱 [Amazon GameLift Servers 定價](https://aws.amazon.com/gamelift/servers/pricing)。

如需使用 計算託管遊戲或配對成本的資訊Amazon GameLift Servers，請參閱[產生Amazon GameLift Servers定價預估](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/gamelift-calculator.html)，其中說明如何使用 [AWS 定價計算工具](https://calculator.aws/#/createCalculator/GameLift)。