

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

# 容器型遊戲後端架構
<a name="container-based-game-backend-architecture"></a>

 本節概述容器型遊戲後端架構。

![使用容器託管遊戲後端](https://docs.aws.amazon.com/zh_tw/wellarchitected/latest/games-industry-lens/images/image4.jpeg)

+  玩家可以使用遊戲用戶端軟體存取遊戲，該軟體可透過遊戲系統、數位商店或直接從 Amazon CloudFront 等內容交付網路 (CDN) 下載。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 服務和自訂應用程式事件。