View a markdown version of this page

GAMEREL01-BP01 將遊戲基礎設施分散到多個可用區域和區域,以改善彈性 - 遊戲產業鏡頭

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

GAMEREL01-BP01 將遊戲基礎設施分散到多個可用區域和區域,以改善彈性

為了將本地化基礎設施損害對玩家的影響降至最低,您應該將基礎設施部署平均分散到足夠的獨立位置,以承受非預期的損害,同時仍有足夠的容量來滿足您的玩家需求。

未建立此最佳實務時的曝險等級:高

實作指引

部署遊戲基礎設施時,建議您將容量均勻分散到區域中的多個可用區域,以便能夠承受對一或多個可用區域的中斷,而不會中斷玩家體驗。諸如 Web 應用程式的遊戲後端服務應該跨多個可用區域進行負載平衡,或者應該使用 AWS Lambda 和 Amazon API Gateway 等受管服務建置,這些服務根據設計提供區域高可用性。同樣地,維護快取、資料庫、訊息佇列和儲存解決方案等狀態的元件應設計為跨多個可用區域提供持久的資料持久持久性,這是由 Amazon S3、DynamoDB 和 Amazon SQS 等服務的設計所提供,並且可以在其他服務中設定。

為彈性設計遊戲伺服器託管架構時,請在 內的可用區域間統一部署遊戲伺服器機群 AWS 區域 ,以最大化您對區域中可用運算容量的存取,並減少可用區域受損的影響範圍。例如,您可以將 Amazon EC2 Auto Scaling 設定為使用可用區域。如果 EC2 執行個體運作狀態不佳,EC2 Auto Scaling 可以取代執行個體,也可以在一或多個可用區域無法使用時,將執行個體啟動到其他可用區域。

對於關鍵基礎設施,例如身分驗證,佈建跨多個可用區域執行的最少可行執行個體數量,如果其中一個可用區域受損,請使用自動擴展來處理負載增加或容錯能力。

將您的遊戲基礎設施部署到多個區域,以最大化可用性。跨區域災難復原功能,例如 Aurora 全域資料庫和備援基礎設施,只要將簡單的 DNS 變更部署到次要區域,就可以在主要區域受損時提供服務持續性。雖然我們鼓勵您的遊戲後端服務實現高可用性,但此建議對您的遊戲伺服器特別重要。

例如,在多玩家遊戲中,遊戲伺服器的基礎設施容量可能會超過其他 服務的容量需求,因為遊戲伺服器用於為玩家託管遊戲工作階段。許多遊戲選擇將玩家分成邏輯遊戲區域 (例如美國西部和東部)。為了簡化玩家體驗並直接使用全域基礎設施來託管遊戲,請考慮將面向玩家的遊戲區域名稱與實際託管遊戲伺服器的基礎雲端供應商區域或資料中心位置,以及託管支援該玩家遊戲區域之遊戲伺服器執行個體的其他基礎設施解除耦合。

設計配對服務時,請跨區域部署具有個別軟體部署的多區域架構。將您的配對服務部署與託管遊戲伺服器執行個體的機群分離,以便您可以將玩家路由到區域中的遊戲伺服器,無論配對服務的哪個區域部署處理配對請求。

在您的配對實作中設計邏輯,以偏好符合您延遲和其他規則的遊戲伺服器區域,如果您的機群容量不足或有其他區域基礎設施中斷,則能夠將玩家遞回至其他區域的路由。

實作步驟

  • 將遊戲基礎設施均勻分散到多個可用區域,以提供高可用性和彈性。

  • 使用 Amazon S3 AWS Lambda、DynamoDB 和 SQS 等受管元件部署遊戲後端服務和具狀態元件,或設定自訂解決方案的負載平衡和耐久性。

  • 使用 Aurora 全球資料庫等災難復原解決方案,以及與基礎實體位置分離的邏輯玩家面向區域,為關鍵遊戲服務和伺服器實作多區域部署。

Resources