View a markdown version of this page

GAMEREL01-BP01 Verteilen Sie die Spieleinfrastruktur auf mehrere Availability Zones und Regionen, um die Ausfallsicherheit zu verbessern - 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.

GAMEREL01-BP01 Verteilen Sie die Spieleinfrastruktur auf mehrere Availability Zones und Regionen, um die Ausfallsicherheit zu verbessern

Um die Auswirkungen lokaler Infrastrukturbeeinträchtigungen auf Ihre Spieler so gering wie möglich zu halten, sollten Sie Ihre Infrastruktur gleichmäßig auf genügend unabhängige Standorte verteilen, um unerwartete Beeinträchtigungen aushalten zu können und gleichzeitig über genügend Kapazität zu verfügen, um den Bedürfnissen Ihrer Spieler gerecht zu werden.

Risikostufe, wenn diese bewährte Methode nicht eingeführt wird: Hoch

Implementierungsleitfaden

Bei der Bereitstellung Ihrer Spieleinfrastruktur wird empfohlen, Ihre Kapazität gleichmäßig auf mehrere Availability Zones in einer Region zu verteilen, damit Sie Störungen in einer oder mehreren Availability Zones überstehen können, ohne das Spielerlebnis zu beeinträchtigen. Backend-Dienste für Spiele wie Webanwendungen sollten über mehrere Availability Zones verteilt werden oder mithilfe von verwalteten Diensten wie AWS Lambda Amazon API Gateway erstellt werden, die von Haus aus regionale Hochverfügbarkeit bieten. In ähnlicher Weise sollten Komponenten, die den Status beibehalten, wie Caches, Datenbanken, Nachrichtenwarteschlangen und Speicherlösungen, so konzipiert sein, dass sie eine dauerhafte Persistenz von Daten über mehrere Availability Zones hinweg gewährleisten, was in Services wie Amazon S3, DynamoDB und Amazon SQS standardmäßig vorgesehen ist und in anderen Diensten konfiguriert werden kann.

Wenn Sie Ihre Gameserver-Hosting-Architektur auf Ausfallsicherheit auslegen, sollten Sie Ihre Spieleserverflotten innerhalb der Availability Zones einheitlich bereitstellen, AWS-Region um Ihren Zugriff auf die verfügbare Rechenkapazität in der Region zu maximieren und das Ausmaß der Auswirkungen von Beeinträchtigungen der Availability Zone zu verringern. Sie können Amazon EC2 Auto Scaling beispielsweise so konfigurieren, dass es die Availability Zones verwendet. Wenn eine EC2 Instance fehlerhaft wird, kann EC2 Auto Scaling die Instance ersetzen und Instances in anderen Availability Zones starten, falls eine oder mehrere der Availability Zones nicht mehr verfügbar sind.

Stellen Sie für kritische Infrastrukturen wie Authentifizierung eine Mindestanzahl funktionsfähiger Instances bereit, die über mehrere Availability Zones laufen, und verwenden Sie Auto Scaling, um Lasterhöhungen oder Fehlertoleranz zu bewältigen, falls eine der Availability Zones beeinträchtigt wird.

Stellen Sie Ihre Spiele-Infrastruktur in mehreren Regionen bereit, um die Verfügbarkeit zu maximieren. Regionalübergreifende Disaster-Recovery-Funktionen wie globale Aurora-Datenbanken und eine redundante Infrastruktur, die mit einer einfachen DNS-Änderung in einer sekundären Region aktiv werden kann, können die Servicekontinuität gewährleisten, falls die primäre Region beeinträchtigt wird. Wir empfehlen dies zwar, damit eure Backend-Dienste für Spiele eine hohe Verfügbarkeit erreichen, aber diese Empfehlung ist besonders wichtig für eure Spieleserver.

In einem Multiplayer-Spiel beispielsweise wird Ihre Infrastrukturkapazität für Spieleserver wahrscheinlich die Kapazitätsanforderungen für Ihre anderen Dienste übersteigen, da Spieleserver dazu verwendet werden, Spielsitzungen für Spieler zu hosten. Viele Spiele entscheiden sich dafür, Spieler in logische Spielregionen (wie den Westen und Osten der USA) aufzuteilen. Um das Spielererlebnis zu vereinfachen und die Nutzung der globalen Infrastruktur für das Hosten von Spielen zu vereinfachen, sollten Sie erwägen, den Namen Ihrer spielerseitigen Spielregionen von der zugrunde liegenden Cloud-Anbieter-Region oder dem Rechenzentrumsstandort zu trennen, der die Spieleserver physisch hostet, zusammen mit anderer Infrastruktur wie Local Zones oder Ihren eigenen Rechenzentren, die Spielserver-Instanzen hosten, die diese Spielerspielregion unterstützen.

Setzen Sie bei der Gestaltung Ihres Spielerzuweisungsdienstes auf eine Architektur mit mehreren Regionen und separater Softwarebereitstellung in allen Regionen. Entkoppeln Sie den Einsatz Ihres Matchmaking-Dienstes von den Flotten, die Ihre Spielserver-Instanzen hosten, sodass Sie Spieler zu einem Spieleserver in Regionen weiterleiten können, unabhängig davon, welche regionale Einrichtung Ihres Matchmaking-Dienstes die Spielerzuweisungsanfrage bearbeitet hat.

Entwerfe die Logik in deiner Matchmaking-Implementierung so, dass du die Spielserver-Regionen bevorzugst, die deine Latenz und andere Regeln einhalten, mit der Möglichkeit, Spieler in andere Regionen weiterzuleiten, wenn deine Flotten wenig Kapazität haben oder es zu anderen regionalen Infrastrukturunterbrechungen kommt.

Implementierungsschritte

  • Verteilen Sie die Spielinfrastruktur einheitlich auf mehrere Availability Zones, um eine hohe Verfügbarkeit und Ausfallsicherheit zu gewährleisten.

  • Stellen Sie Backend-Services und Stateful-Komponenten für Spiele mithilfe von Managed Services wie AWS Lambda Amazon S3, DynamoDB und SQS bereit oder konfigurieren Sie Load Balancing und Haltbarkeit für benutzerdefinierte Lösungen.

  • Implementieren Sie regionsübergreifende Bereitstellungen für wichtige Spieledienste und Server mithilfe von Disaster-Recovery-Lösungen wie globalen Aurora-Datenbanken und logischen Regionen mit Spielerkontakt, die von den zugrunde liegenden physischen Standorten entkoppelt sind.

Ressourcen