View a markdown version of this page

GAMEREL01-BP01 Distribuisci l'infrastruttura di gioco in più zone di disponibilità e regioni per migliorare la resilienza - Obiettivo per l'industria dei giochi

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 in più zone di disponibilità e regioni per migliorare la resilienza

Per ridurre al minimo l'impatto dei problemi dell'infrastruttura localizzata sui giocatori, dovresti distribuire l'implementazione dell'infrastruttura in modo uniforme in un numero sufficiente di sedi indipendenti da essere in grado di 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à su più zone di disponibilità in una regione in modo da poter resistere alle interruzioni di una o più zone di disponibilità senza interrompere l'esperienza dei giocatori. I servizi di backend di gioco, come le applicazioni web, dovrebbero avere un bilanciamento del carico su più zone di disponibilità o dovrebbero essere creati utilizzando servizi gestiti come AWS Lambda Amazon API Gateway, che forniscono un'elevata disponibilità regionale sin dalla progettazione. Allo stesso modo, i componenti che mantengono lo stato come cache, database, code di messaggi e soluzioni di archiviazione dovrebbero essere progettati per fornire una persistenza duratura dei dati in più zone di disponibilità, 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 la resilienza, distribuisci le tue flotte di server di gioco in modo uniforme nelle zone di disponibilità all'interno di un Regione AWS modo per massimizzare l'accesso alla capacità di calcolo disponibile nella regione e ridurre l'impatto delle limitazioni delle zone di disponibilità. Ad esempio, puoi configurare Amazon EC2 Auto Scaling per utilizzare le zone di disponibilità. Se un'istanza EC2 non è integra, EC2 Auto Scaling può sostituirla e avviare istanze in altre zone di disponibilità se una o più zone di disponibilità non sono disponibili.

Per le 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 ai guasti in caso di problemi in una delle zone di disponibilità.

Distribuisci la tua infrastruttura di gioco in più regioni per massimizzare la disponibilità. Cross-Regional Le funzionalità di disaster recovery come i database globali di Aurora e l'infrastruttura ridondante che può diventare attiva con una semplice modifica DNS implementata in una regione secondaria possono fornire la continuità del servizio nel caso in cui la regione principale venisse compromessa. Sebbene consigliamo di utilizzare questa soluzione per garantire un'elevata disponibilità dei servizi di backend di gioco, questa raccomandazione è particolarmente importante per i server di gioco.

Ad esempio, in una partita multigiocatore, è probabile che la capacità dell'infrastruttura per i server di gioco superi la capacità richiesta 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 Stati Uniti occidentali ed orientali). Per semplificare l'esperienza dei giocatori e semplificare l'utilizzo dell'infrastruttura globale per ospitare i giochi, valuta la possibilità di separare il nome delle aree di gioco rivolte ai giocatori dalla regione del provider di cloud sottostante o dalla sede del data center che ospita fisicamente i server di gioco, insieme ad altre infrastrutture come le zone locali o i tuoi data center che ospitano istanze del 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 la distribuzione del tuo servizio di matchmaking dalle flotte che ospitano le istanze del tuo server di gioco in modo da poter indirizzare i giocatori verso 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 del server di gioco che soddisfano la tua latenza e altre regole, con la possibilità di instradare i giocatori verso altre regioni se la capacità delle tue flotte è ridotta o se ci sono altre interruzioni dell'infrastruttura regionale.

Passaggi dell’implementazione

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

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

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

Resources