Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Container-based architettura del backend di gioco
Questa sezione delinea un'architettura di backend di gioco basata su contenitori.
Ospitare un backend di gioco utilizzando contenitori
-
I giocatori accedono al gioco utilizzando un software client di gioco, che può essere distribuito loro tramite un sistema di gioco, una vetrina digitale o un download diretto da una rete di distribuzione di contenuti (CDN), come Amazon. CloudFront I CDN forniscono la memorizzazione nella cache in posizioni periferiche per accelerare le prestazioni degli utenti che scaricano contenuti. Ad esempio, CloudFront può essere utilizzato per distribuire il software client di gioco ai giocatori, nonché le risorse di gioco e altri contenuti.
-
AWS Global Accelerator fornisce l'accelerazione del traffico e controlli personalizzabili per indirizzare il traffico dai client di gioco dei giocatori ai sistemi di bilanciamento del carico, nonché il routing del traffico tra le regioni per scopi multiregionali e di failover. I nomi di dominio personalizzati per le API REST del backend di gioco sono configurati in Amazon Route 53 per indirizzare il traffico verso gli endpoint Global Accelerator. Non mostrati nel diagramma,AWS Shield Advanced possono fornire un'ulteriore mitigazione degli attacchi DDoS per l'acceleratore e il backend di gioco.
-
NAT Gateway e Application Load Balancer vengono distribuiti su sottoreti pubbliche in ciascuna delle zone di disponibilità utilizzate dal backend del gioco per fornire un'elevata disponibilità nella regione.AWS WAF è implementato su Application Load Balancer per fornire un filtro del traffico web di livello 7.
-
Il backend del gioco è ospitato come una raccolta di singoli microservizi basati su container distribuiti in un cluster Amazon EKS in sottoreti private distribuite nelle zone di disponibilità per la resilienza. Il ridimensionamento automatico regola dinamicamente la capacità dei servizi e dei nodi del cluster in base all'utilizzo delle risorse, che in genere è correlato alla domanda dei giocatori. Mentre Cluster Autoscaler regola automaticamente il numero di nodi nel cluster, Horizontal Pod Autoscaler ridimensiona automaticamente i pod distribuiti nel cluster.
-
I dati di gioco e giocatori vengono archiviati in database e cache di backend distribuiti in sottoreti private nelle zone di disponibilità con replica tra nodi primari e di replica. Amazon Aurora è una scelta popolare per casi d'uso come i profili dei giocatori, i diritti e gli acquisti in-game, che possono avere requisiti di interrogazione più complessi e possono trarre vantaggio dalle funzionalità di modellazione dei dati relazionali di MySQL e PostgreSQL. Amazon ElastiCache è utile per creare classifiche e pub/sub messaggistica ad alte prestazioni e per memorizzare nella cache i dati a cui si accede di frequente per ridurre la latenza e il carico sui database. Amazon DynamoDB è un datastore NoSQL completamente gestito, ideale per modelli di accesso imprevedibili e la capacità di scalare fino a un throughput praticamente illimitato per casi d'uso come dati sullo stato di giocatori e partite, dati di sessione, inventario e negozi di articoli o casi in cui si desidera un database globale con un sovraccarico minimo.
-
I flussi di lavoro di elaborazione asincrona devono essere utilizzati per eseguire attività che possono essere eseguite in background, come l'aggiornamento delle classifiche o l'invio di richieste di amicizia. Configura il backend di gioco per inserire questo tipo di lavoro nelle code di Amazon SQS e scalare man mano che il gioco cresce, oppure valuta la possibilità di utilizzare gli argomenti di Amazon SNS per distribuire il lavoro tra molte code di applicazioni consumer per l'elaborazione parallela. Usa le funzioni AWS Lambda per eseguire l'elaborazione in base agli eventi per ridurre i costi dell'infrastruttura di calcolo e il sovraccarico di gestione. Per i flussi di lavoro che durano a lungo o richiedono il coordinamento delle attività con più passaggi, valuta la possibilità di orchestrare l'intero flusso di lavoro utilizzando.AWS Step Functions Amazon EventBridge può essere utilizzato per avviare funzioni per rispondere a eventi di AWS servizio e applicazioni personalizzate.