本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
容器型遊戲後端架構
本節概述容器型遊戲後端架構。
使用容器託管遊戲後端
-
玩家可以使用遊戲用戶端軟體存取遊戲,可透過遊戲系統、數位商店或直接從內容交付網路 (CDN),例如 Amazon CloudFront 進行下載。CDNs 在節點提供快取,以加速使用者下載內容的效能。例如,CloudFront 可用來將遊戲用戶端軟體分發給玩家,以及遊戲資產和其他內容。
-
AWS Global Accelerator 提供流量加速和可自訂的控制,可將流量從玩家遊戲用戶端路由到負載平衡器,以及將流量路由到區域以用於多區域和容錯移轉目的。遊戲後端 REST APIs的自訂網域名稱是在 Amazon Route 53 中設定,以將流量路由至 Global Accelerator 端點。未顯示在圖表中,AWS Shield Advanced 可以為您的加速器和遊戲後端提供額外的 DDoS 緩解措施。
-
NAT Gateway 和 Application Load Balancer 會部署到遊戲後端使用的每個可用區域中的公有子網路,以提供 區域的高可用性。AWS WAF 會部署在 Application Load Balancer 上,以提供 layer-7 Web 流量篩選。
-
遊戲後端託管為個別容器型微服務集合,這些服務部署至跨可用區域分佈的私有子網路中的 Amazon EKS 叢集,以提供彈性。自動擴展會根據資源使用率動態調整服務和叢集節點的容量,這通常與玩家需求相關。雖然 Cluster Autoscaler 會自動調整叢集中的節點數量,但 Horizontal Pod Autoscaler 會自動擴展部署到叢集中的 Pod。
-
遊戲和玩家資料存放在後端資料庫和快取中,這些快取會部署到跨可用區域的私有子網路,並在主要節點和複本節點之間進行複寫。Amazon Aurora 是熱門的使用案例選擇,例如玩家設定檔、權利和遊戲內購買,其可能具有更複雜的查詢需求,並可能受益於 MySQL 和 PostgreSQL 的關聯式資料建模功能。Amazon ElastiCache 適用於建置高效能排行榜、pub/sub 訊息,以及快取經常存取的資料,以減少資料庫的延遲和負載。Amazon DynamoDB 是全受管的 NoSQL 資料存放區,非常適合不可預測的存取模式,以及針對玩家和遊戲狀態資料、工作階段資料、庫存和項目存放區等使用案例,或您希望全域資料庫負荷降到最低的使用案例,擴展到幾乎無限制的輸送量。
-
非同步處理工作流程應用於執行可在背景完成的工作,例如更新排行榜或傳送好友請求。設定您的遊戲後端,將此類工作推送至 Amazon SQS 佇列,隨著遊戲的成長進行擴展,或考慮使用 Amazon SNS 主題在許多取用者應用程式佇列之間分配工作以進行平行處理。使用 AWS Lambda 函數 以事件驅動的方式執行處理,以減少運算基礎設施成本和管理開銷。對於長期或需要任務協調多個步驟的工作流程,請考慮使用 協調整個工作流程AWS Step Functions。Amazon EventBridge 可用來啟動 函數,以回應 AWS 服務和自訂應用程式事件。