View a markdown version of this page

Container-basierte Backend-Architektur für Spiele - Linse für die Spieleindustrie

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Container-basierte Backend-Architektur für Spiele

In diesem Abschnitt wird eine containerbasierte Backend-Architektur für Spiele beschrieben.

Hosten eines Spiele-Backends mithilfe von Containern

Hosten eines Spiele-Backends mithilfe von Containern

  • Die Spieler greifen über eine Game-Client-Software auf das Spiel zu, die ihnen über ein Spielesystem, eine digitale Storefront oder einen direkten Download von einem Content Delivery Network (CDN) wie Amazon zur Verfügung gestellt werden kann. CloudFront CDNsbietet Caching an Edge-Standorten, um die Leistung für Benutzer beim Herunterladen von Inhalten zu beschleunigen. CloudFront Kann beispielsweise verwendet werden, um die Game-Client-Software sowie die Spielressourcen und andere Inhalte an Ihre Spieler zu verteilen.

  • AWS Global Accelerator bietet eine Beschleunigung des Datenverkehrs und anpassbare Steuerelemente für die Weiterleitung des Datenverkehrs von Spieler-Spielclients zu Ihren Load Balancern sowie für die regionenübergreifende Weiterleitung von Datenverkehr für Multi-Regions- und Failover-Zwecke. Die benutzerdefinierten Domainnamen für Ihr Game-Backend REST APIs sind in Amazon Route 53 so konfiguriert, dass der Datenverkehr an Global Accelerator-Endpunkte weitergeleitet wird. Nicht im Diagramm dargestellt,AWS Shield Advanced kann zusätzliche DDo S-Abwehr für Ihren Accelerator und Ihr Spiel-Backend bieten.

  • NAT Gateway und Application Load Balancer werden in öffentlichen Subnetzen in jeder der Availability Zones bereitgestellt, die vom Spiel-Backend verwendet werden, um eine hohe Verfügbarkeit in der Region zu gewährleisten.AWS WAF wird auf dem Application Load Balancer bereitgestellt, um den Layer-7-Webdatenverkehr zu filtern.

  • Das Spiel-Backend wird als Sammlung einzelner containerbasierter Microservices gehostet, die in einem Amazon EKS-Cluster in privaten Subnetzen bereitgestellt werden, die aus Gründen der Ausfallsicherheit über Availability Zones verteilt sind. Die automatische Skalierung passt die Kapazität der Dienste und Clusterknoten dynamisch an die Ressourcennutzung an, die in der Regel mit der Nachfrage der Spieler korreliert. Während Cluster Autoscaler die Anzahl der Knoten im Cluster automatisch anpasst, skaliert der Horizontal Pod Autoscaler automatisch die im Cluster bereitgestellten Pods.

  • Spiel- und Spielerdaten werden in Backend-Datenbanken und Caches gespeichert, die in privaten Subnetzen über Availability Zones verteilt werden, wobei die Replikation zwischen Primär- und Replikatknoten erfolgt. Amazon Aurora ist eine beliebte Wahl für Anwendungsfälle wie Spielerprofile, Berechtigungen und In-Game-Käufe, die komplexere Abfrageanforderungen haben können und von den relationalen Datenmodellierungsfunktionen von MySQL und PostgreSQL profitieren können. Amazon ElastiCache ist nützlich, um leistungsstarke Bestenlisten und pub/sub Nachrichten zu erstellen und häufig abgerufene Daten zwischenzuspeichern, um die Latenz und die Belastung von Datenbanken zu reduzieren. Amazon DynamoDB ist ein vollständig verwalteter NoSQL-Datenspeicher, der sich ideal für unvorhersehbare Zugriffsmuster eignet und für Anwendungsfälle wie Spieler- und Spielstatusdaten, Sitzungsdaten, Inventar- und Artikelspeicher oder Anwendungsfälle, in denen Sie eine globale Datenbank mit minimalem Overhead benötigen, auf praktisch unbegrenzten Durchsatz skalieren kann.

  • Asynchrone Verarbeitungsworkflows sollten verwendet werden, um Arbeiten auszuführen, die im Hintergrund ausgeführt werden können, z. B. das Aktualisieren von Bestenlisten oder das Senden von Freundschaftsanfragen. Konfigurieren Sie Ihr Spiele-Backend so, dass diese Art von Arbeit in die Amazon SQS SQS-Warteschlangen verschoben wird, um sie an das Wachstum Ihres Spiels anzupassen, oder ziehen Sie in Betracht, Amazon SNS SNS-Themen zu verwenden, um die Arbeit parallel Parallelverarbeitung auf viele Warteschlangen für Verbraucheranwendungen zu verteilen. Verwenden Sie AWS Lambda-Funktionen, um die Verarbeitung ereignisgesteuert durchzuführen, um Ihre Kosten für die Recheninfrastruktur und den Verwaltungsaufwand zu reduzieren. Bei Workflows, die langlebig sind oder eine Aufgabenkoordination mit mehreren Schritten erfordern, sollten Sie erwägen, den gesamten Workflow mithilfe von zu orchestrieren.AWS Step Functions Amazon EventBridge kann verwendet werden, um Funktionen zu initiieren, um auf AWS Service- und benutzerdefinierte Anwendungsereignisse zu reagieren.