

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

# 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)