Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Architecture de backend de jeu basée sur des conteneurs
Cette section décrit une architecture de backend de jeu basée sur des conteneurs.
Hébergement d'un backend de jeu à l'aide de conteneurs
-
Les joueurs accèdent au jeu à l'aide d'un logiciel client de jeu, qui peut leur être distribué via un système de jeu, une vitrine numérique ou un téléchargement direct depuis un réseau de diffusion de contenu (CDN), tel qu'Amazon. CloudFront CDNsfournir une mise en cache à des emplacements périphériques afin d'améliorer les performances des utilisateurs qui téléchargent du contenu. Par exemple, CloudFront peut être utilisé pour distribuer le logiciel client du jeu à vos joueurs ainsi que les actifs du jeu et d'autres contenus.
-
AWS Global Accelerator fournit une accélération du trafic et des commandes personnalisables pour acheminer le trafic des clients des jeux de joueurs vers vos équilibreurs de charge, ainsi que pour acheminer le trafic entre les régions à des fins multirégionales et de basculement. Les noms de domaine personnalisés pour votre backend de jeu REST APIs sont configurés dans Amazon Route 53 pour acheminer le trafic vers les points de terminaison Global Accelerator. Non illustré dans le schéma, cela AWS Shield Advanced peut fournir une atténuation DDo S supplémentaire pour votre accélérateur et votre backend de jeu.
-
La passerelle NAT et l'Application Load Balancer sont déployés sur des sous-réseaux publics dans chacune des zones de disponibilité utilisées par le backend du jeu pour assurer une haute disponibilité dans la région.AWS WAF est déployé sur l'Application Load Balancer pour fournir un filtrage du trafic Web de couche 7.
-
Le backend du jeu est hébergé sous la forme d'un ensemble de microservices individuels basés sur des conteneurs déployés dans un cluster Amazon EKS dans des sous-réseaux privés répartis dans des zones de disponibilité à des fins de résilience. Le dimensionnement automatique ajuste dynamiquement la capacité des services et des nœuds du cluster en fonction de l'utilisation des ressources, qui est généralement corrélée à la demande des joueurs. Alors que Cluster Autoscaler ajuste automatiquement le nombre de nœuds du cluster, le Horizontal Pod Autoscaler redimensionne automatiquement les pods déployés dans le cluster.
-
Les données relatives aux jeux et aux joueurs sont stockées dans des bases de données et des caches principaux déployés dans des sous-réseaux privés répartis dans des zones de disponibilité, avec réplication entre les nœuds principaux et les nœuds de réplication. Amazon Aurora est un choix populaire pour les cas d'utilisation tels que les profils de joueurs, les droits et les achats intégrés au jeu, qui peuvent nécessiter des requêtes plus complexes et bénéficier des fonctionnalités de modélisation des données relationnelles de MySQL et PostgreSQL. Amazon ElastiCache est utile pour créer des classements et des pub/sub messages performants et pour mettre en cache les données fréquemment consultées afin de réduire la latence et la charge sur les bases de données. Amazon DynamoDB est un magasin de données NoSQL entièrement géré, idéal pour les modèles d'accès imprévisibles et capable d'évoluer jusqu'à un débit pratiquement illimité pour des cas d'utilisation tels que les données d'état des joueurs et des parties, les données de session, les stocks et les magasins d'articles, ou les cas d'utilisation où vous souhaitez disposer d'une base de données globale avec un minimum de surcharge.
-
Les flux de traitement asynchrones doivent être utilisés pour effectuer des tâches pouvant être effectuées en arrière-plan, telles que la mise à jour des classements ou l'envoi de demandes d'amis. Configurez le backend de votre jeu pour transférer ce type de travail dans les files d'attente Amazon SQS afin de l'adapter à la croissance de votre jeu, ou envisagez d'utiliser des rubriques Amazon SNS pour répartir le travail entre de nombreuses files d'attente d'applications grand public à des fins de traitement parallèle. Utilisez les fonctions AWS Lambda pour effectuer le traitement en fonction des événements afin de réduire les coûts de votre infrastructure informatique et les frais de gestion. Pour les flux de travail de longue durée ou nécessitant une coordination des tâches en plusieurs étapes, envisagez d'orchestrer l'ensemble du flux de travail à l'aide de.AWS Step Functions Amazon EventBridge peut être utilisé pour lancer des fonctions afin de répondre à des événements liés aux AWS services et aux applications personnalisées.