View a markdown version of this page

GAMEREL01-BP01 Distribuisci l'infrastruttura di gioco su più zone e regioni di disponibilità per migliorare la resilienza - Games Industry Lens

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à.

GAMEREL01-BP01 Distribuisci l'infrastruttura di gioco su più zone e regioni di disponibilità per migliorare la resilienza

Per ridurre al minimo l'impatto dei problemi dell'infrastruttura localizzata sui giocatori, è necessario distribuire la distribuzione dell'infrastruttura in modo uniforme su un numero sufficiente di postazioni indipendenti da poter resistere a problemi imprevisti pur avendo una capacità sufficiente per soddisfare le esigenze della domanda dei giocatori.

Livello di rischio associato se questa best practice non fosse adottata: elevato

Guida all’implementazione

Quando si implementa l'infrastruttura di gioco, si consiglia di distribuire uniformemente la capacità tra più zone di disponibilità di una regione in modo da poter resistere alle interruzioni di una o più zone di disponibilità senza interrompere l'esperienza del giocatore. I servizi di backend di gioco, come le applicazioni Web, devono essere bilanciati in base al carico su più zone di disponibilità o devono essere creati utilizzando servizi gestiti come AWS Lambda Amazon API Gateway, che forniscono un'alta disponibilità regionale fin dalla progettazione. Allo stesso modo, i componenti che mantengono lo stato come cache, database, code di messaggi e soluzioni di storage devono essere progettati per fornire una persistenza duratura dei dati su più zone di disponibilità, che è fornita dalla progettazione in servizi come Amazon S3, DynamoDB e Amazon SQS e può essere configurata in altri servizi.

Quando progetti l'architettura di hosting dei server di gioco per garantire la resilienza, distribuisci le tue flotte di server di gioco in modo uniforme tra le zone di disponibilità all'interno di e per massimizzare l'accesso alla capacità di elaborazione disponibile nella regione e ridurre l'ambito di impatto delle limitazioni della zona di disponibilità. Regione AWS Ad esempio, puoi configurare Amazon EC2 Auto Scaling per utilizzare le zone di disponibilità. Se un' EC2istanza non funziona correttamente, EC2 Auto Scaling può sostituirla e avviare le istanze in altre zone di disponibilità se una o più zone di disponibilità non sono disponibili.

Per infrastrutture critiche, come l'autenticazione, fornisci un numero minimo di istanze valide in esecuzione su più zone di disponibilità e utilizza la scalabilità automatica per gestire gli aumenti di carico o la tolleranza agli errori in caso di problemi con una delle zone di disponibilità.

Implementa la tua infrastruttura di gioco in più regioni per massimizzare la disponibilità. Le funzionalità di disaster recovery interregionali come i database globali Aurora e l'infrastruttura ridondante che può diventare attiva con una semplice modifica del DNS implementata in una regione secondaria possono garantire la continuità del servizio in caso di compromissione della regione primaria. Sebbene incoraggiamo questa opzione per consentire ai servizi di backend di gioco di raggiungere un'elevata disponibilità, questa raccomandazione è particolarmente importante per i server di gioco.

Ad esempio, in una partita multiplayer, è probabile che la capacità dell'infrastruttura per i server di gioco superi quella necessaria per gli altri servizi, poiché i server di gioco vengono utilizzati per ospitare sessioni di gioco per i giocatori. Molti giochi scelgono di suddividere i giocatori in regioni di gioco logiche (come gli Stati Uniti occidentali e orientali). Per semplificare l'esperienza del giocatore e semplificare l'utilizzo dell'infrastruttura globale per ospitare i giochi, prendi in considerazione la possibilità di disaccoppiare il nome delle aree di gioco rivolte ai giocatori dalla regione del provider cloud sottostante o dalla sede del data center che ospita fisicamente i server di gioco, insieme ad altre infrastrutture come Local Zones o i tuoi data center che ospitano istanze di server di gioco che supportano quella regione di gioco.

Quando progetti il tuo servizio di matchmaking, implementa un'architettura multiregionale con distribuzioni software separate tra le regioni. Separa l'implementazione del tuo servizio di matchmaking dalle flotte che ospitano le istanze dei tuoi server di gioco in modo da poter indirizzare i giocatori a un server di gioco nelle Regioni indipendentemente dalla distribuzione regionale del tuo servizio di matchmaking che ha gestito la richiesta di matchmaking.

Progetta una logica nell'implementazione del matchmaking per favorire le regioni dei server di gioco che soddisfano la tua latenza e altre regole, con la possibilità di reindirizzare i giocatori verso altre regioni se la capacità delle tue flotte è scarsa o ci sono altre interruzioni dell'infrastruttura regionale.

Passaggi dell’implementazione

  • Distribuisci l'infrastruttura di gioco in modo uniforme su più zone di disponibilità per garantire disponibilità e resilienza elevate.

  • Implementa servizi di backend di gioco e componenti stateful utilizzando sistemi gestiti come AWS Lambda Amazon S3, DynamoDB e SQS, oppure configura il bilanciamento del carico e la durabilità per soluzioni personalizzate.

  • Implementa implementazioni multiregionali per server e servizi di gioco critici, utilizzando soluzioni di disaster recovery come i database globali Aurora e le regioni logiche rivolte ai giocatori disaccoppiate dalle posizioni fisiche sottostanti.

Resources