Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Arquitectura de backend de juegos basada en contenedores
En esta sección se describe una arquitectura de backend de juegos basada en contenedores.
Hospedar un backend de juego mediante contenedores
-
Los jugadores acceden al juego mediante un software cliente del juego, que se les puede distribuir a través de un sistema de juego, una tienda digital o una descarga directa desde una red de entrega de contenido (CDN), como Amazon. CloudFront CDNsproporcionan almacenamiento en caché en ubicaciones periféricas para acelerar el rendimiento de los usuarios que descargan contenido. Por ejemplo, se CloudFront puede usar para distribuir el software del cliente del juego a sus jugadores, así como los activos del juego y otro contenido.
-
AWS Global Accelerator proporciona una aceleración del tráfico y controles personalizables para enrutar el tráfico de los clientes de los juegos a los balanceadores de carga, así como para enrutar el tráfico entre regiones con fines multirregionales y de conmutación por error. Los nombres de dominio personalizados para el REST del backend del juego APIs están configurados en Amazon Route 53 para dirigir el tráfico a los puntos de enlace de Global Accelerator. Si no se muestra en el diagrama,AWS Shield Advanced puede proporcionar una mitigación de DDo S adicional para el acelerador y el backend del juego.
-
NAT Gateway y Application Load Balancer se implementan en las subredes públicas de cada una de las zonas de disponibilidad utilizadas por el backend del juego para ofrecer una alta disponibilidad en la región.AWS WAF se implementa en el Application Load Balancer para proporcionar un filtrado de tráfico web de capa 7.
-
El backend del juego se aloja como un conjunto de microservicios individuales basados en contenedores implementados en un clúster de Amazon EKS en subredes privadas repartidas por zonas de disponibilidad para mayor resiliencia. El escalado automático ajusta de forma dinámica la capacidad de los servicios y los nodos del clúster en función del uso de los recursos, lo que normalmente se correlaciona con la demanda de los jugadores. Mientras que el escalador automático de clústeres ajusta automáticamente la cantidad de nodos del clúster, el escalador automático de módulos horizontales escala automáticamente los módulos desplegados en el clúster.
-
Los datos del juego y de los jugadores se almacenan en bases de datos y cachés de fondo que se despliegan en subredes privadas de todas las zonas de disponibilidad y se replican entre los nodos principales y de réplica. Amazon Aurora es una opción popular para casos de uso como perfiles de jugadores, derechos y compras dentro del juego, que pueden tener requisitos de consulta más complejos y pueden beneficiarse de las capacidades de modelado de datos relacionales de MySQL y PostgreSQL. Amazon ElastiCache es útil para crear tablas de clasificación y pub/sub mensajería de alto rendimiento y para almacenar en caché los datos a los que se accede con frecuencia a fin de reducir la latencia y la carga en las bases de datos. Amazon DynamoDB es un almacén de datos NoSQL totalmente gestionado que resulta ideal para patrones de acceso impredecibles y la capacidad de escalarse hasta alcanzar un rendimiento prácticamente ilimitado para casos de uso como datos de estado de jugadores y juegos, datos de sesión, almacenes de inventario y artículos, o casos de uso en los que desee una base de datos global con una sobrecarga mínima.
-
Los flujos de trabajo de procesamiento asíncrono se deben utilizar para realizar trabajos que puedan realizarse en segundo plano, como actualizar tablas de clasificación o enviar solicitudes de amistad. Configure el backend de su juego para incluir este tipo de trabajo en las colas de Amazon SQS para escalarlo a medida que su juego crezca o considere la posibilidad de utilizar temas de Amazon SNS para distribuir el trabajo entre muchas colas de aplicaciones de consumo para su procesamiento en paralelo. Utilice las funciones AWS Lambda para realizar el procesamiento de una manera basada en eventos para reducir los costos de infraestructura informática y los gastos generales de administración. En el caso de los flujos de trabajo de larga duración o que requieran la coordinación de tareas en varios pasos, considere la posibilidad de organizar todo el flujo de trabajo utilizando.AWS Step Functions Amazon se EventBridge puede utilizar para iniciar funciones que respondan a eventos de AWS servicio y aplicaciones personalizadas.