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-based Backend-Architektur für Spiele
In diesem Abschnitt wird eine containerbasierte Backend-Architektur für Spiele beschrieben.
Hosten eines Spiel-Backends mithilfe von Containern
-
Die Spieler greifen mithilfe einer Spiel-Client-Software auf das Spiel zu, die ihnen über ein Spielesystem, ein digitales Schaufenster oder einen direkten Download von einem Content Delivery Network (CDN) wie Amazon zur Verfügung gestellt werden kann. CloudFront CDNs bieten Caching an Edge-Standorten, um die Leistung für Benutzer zu beschleunigen, die Inhalte herunterladen. CloudFront Sie können beispielsweise verwendet werden, um die Spiel-Client-Software sowie die Spielressourcen und andere Inhalte an Ihre Spieler zu verteilen.
-
AWS Global Accelerator bietet Verkehrsbeschleunigung und anpassbare Steuerelemente für die Weiterleitung des Datenverkehrs von den Spielclients der Spieler zu Ihren Load Balancern sowie für die regionsübergreifende Weiterleitung des Datenverkehrs für multiregionale und Failover-Zwecke. Die benutzerdefinierten Domainnamen für Ihre Spiel-Backend-REST-APIs sind in Amazon Route 53 konfiguriert, um den Datenverkehr an Global Accelerator-Endpunkte weiterzuleiten. In der Abbildung nicht dargestellt,AWS Shield Advanced kann dies eine zusätzliche DDoS-Abwehr für Ihren Beschleuniger und Ihr Spiel-Backend bieten.
-
NAT Gateway und Application Load Balancer werden in öffentlichen Subnetzen in jeder der Availability Zones bereitgestellt, die vom Backend des Spiels 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-Web-Traffic zu filtern.
-
Das Spiel-Backend wird als Sammlung einzelner containerbasierter Microservices gehostet, die aus Gründen der Ausfallsicherheit in einem Amazon EKS-Cluster in privaten Subnetzen bereitgestellt werden, die über Availability Zones verteilt sind. Die automatische Skalierung passt die Kapazität der Dienste und Clusterknoten dynamisch an die Ressourcenauslastung 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 in Availability Zones mit Replikation zwischen Primär- und Replikatknoten bereitgestellt werden. Amazon Aurora ist eine beliebte Wahl für Anwendungsfälle wie Spielerprofile, Berechtigungen und Käufe im Spiel, 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 Daten, auf die häufig zugegriffen wird, 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 Aufwand benötigen, auf einen praktisch unbegrenzten Durchsatz skalieren kann.
-
Asynchrone Verarbeitungsworkflows sollten verwendet werden, um Aufgaben auszuführen, die im Hintergrund erledigt werden können, wie z. B. das Aktualisieren von Bestenlisten oder das Senden von Freundschaftsanfragen. Konfigurieren Sie Ihr Spiel-Backend so, dass diese Art von Arbeit in die Amazon SQS-Warteschlangen verschoben wird, um sie mit dem Wachstum Ihres Spiels zu skalieren, oder ziehen Sie in Betracht, Amazon SNS-Themen zu verwenden, um die Arbeit auf viele Warteschlangen für Verbraucheranwendungen zur parallelen Verarbeitung zu verteilen. Verwenden Sie AWS Lambda-Funktionen , um die Verarbeitung ereignisgesteuert durchzuführen und so die Kosten für Ihre Recheninfrastruktur und den Verwaltungsaufwand zu reduzieren. Bei Workflows, die langlebig sind oder eine Aufgabenkoordination mit mehreren Schritten erfordern, sollten Sie in Betracht ziehen, 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.