Gestione delle risorse GameLift di hosting Amazon tramite AWS CloudFormation - Amazon GameLift

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

Gestione delle risorse GameLift di hosting Amazon tramite AWS CloudFormation

Puoi utilizzarlo AWS CloudFormation per gestire le tue GameLift risorse Amazon. In AWS CloudFormation, crei un modello che modella ogni risorsa e poi utilizzi il modello per creare le tue risorse. Per aggiornare le risorse, apporti le modifiche al modello e le utilizzi AWS CloudFormation per implementare gli aggiornamenti. È possibile organizzare le risorse in gruppi logici, chiamati stack e set di stack.

L'utilizzo AWS CloudFormation per mantenere le tue risorse di GameLift hosting Amazon offre un modo più efficiente per gestire set di AWS risorse. Puoi utilizzare il controllo della versione per tenere traccia delle modifiche dei modelli nel corso tempo e coordinare gli aggiornamenti effettuati da più membri del team. È inoltre possibile riutilizzare i modelli. Ad esempio, quando distribuisci un gioco in più regioni, puoi utilizzare lo stesso modello per creare risorse identiche in ogni regione. È inoltre possibile utilizzare questi modelli per distribuire gli stessi set di risorse in un'altra partizione.

Per ulteriori informazioni in merito AWS CloudFormation, consulta la Guida AWS CloudFormation per l'utente. Per visualizzare le informazioni sui modelli per GameLift le risorse Amazon, consulta il riferimento sui tipi di GameLift risorse Amazon.

Best practice

Per una guida dettagliata sull'utilizzo AWS CloudFormation, consulta le AWS CloudFormation best practice nella Guida AWS CloudFormation per l'utente. Inoltre, queste best practice hanno particolare rilevanza per Amazon GameLift.

  • Gestisci in modo coerente le tue risorse tramite AWS CloudFormation. Se modifichi le tue risorse al di fuori delle AWS CloudFormation tue risorse, le tue risorse non saranno sincronizzate con i tuoi modelli di risorse.

  • Usa AWS CloudFormation pile e set di stack per gestire in modo efficiente più risorse.

    • Usa gli stack per gestire gruppi di risorse connesse. Ad esempio, uno stack che contiene una build, una flotta che fa riferimento alla build e un alias che fa riferimento alla flotta. Se aggiorni il modello per sostituire una build, AWS CloudFormation sostituisce le flotte collegate alla build. AWS CloudFormation quindi aggiorna gli alias esistenti in modo che puntino alle nuove flotte. Per ulteriori informazioni, consulta Working with stacks nella Guida per l'AWS CloudFormation utente.

    • Usa i set di AWS CloudFormation stack se stai distribuendo stack identici in più regioni o account. AWS Per ulteriori informazioni, consulta Lavorare con i set di stack nella Guida per l'utente.AWS CloudFormation

  • Se utilizzi istanze Spot, includi un parco istanze on demand come backup. Ti consigliamo di configurare i tuoi modelli con due flotte in ogni regione, un parco con istanze Spot e un parco con istanze On-Demand.

  • Raggruppa le risorse specifiche della località e le risorse globali in pile separate quando gestisci risorse in più sedi.

  • Posiziona le tue risorse globali vicino ai servizi che le utilizzano. Risorse come le code e le configurazioni di matchmaking tendono a ricevere un volume elevato di richieste da fonti specifiche. Posizionando le risorse vicino alla fonte di tali richieste, riduci al minimo i tempi di viaggio delle richieste e puoi migliorare le prestazioni complessive.

  • Posiziona la configurazione dell'abbinamento nella stessa regione della coda delle sessioni di gioco utilizzata.

  • Crea un alias separato per ogni parco istanze nello stack.

Utilizzo delle AWS CloudFormation pile

Consigliamo le seguenti strutture da utilizzare per configurare gli AWS CloudFormation stack per GameLift le risorse Amazon. La struttura ottimale dello stack varia a seconda che tu stia distribuendo il gioco in una o più postazioni.

Pile per una singola posizione

Per gestire GameLift le risorse Amazon in un'unica posizione, consigliamo una struttura a due stack:

  • Stack di supporto: questo stack contiene risorse da cui dipendono le tue GameLift risorse Amazon. Come minimo, questo stack deve includere il bucket S3 in cui si memorizzano i file di script Realtime o il server di gioco personalizzato. Lo stack dovrebbe includere anche un IAM ruolo che GameLift autorizzi Amazon a recuperare i file dal bucket S3 durante la creazione di una risorsa di GameLift build o script Amazon. Questo stack potrebbe contenere anche altre AWS risorse utilizzate con il gioco, come tabelle DynamoDB, cluster Amazon Redshift e funzioni Lambda.

  • Amazon GameLift stack: questo stack contiene tutte le tue GameLift risorse Amazon, tra cui la build o lo script, un set di flotte, alias e la coda delle sessioni di gioco. AWS CloudFormation crea una risorsa di compilazione o script con file archiviati nella posizione del bucket S3 e distribuisce la build o lo script su una o più risorse del parco. Ogni parco istanze deve avere un alias corrispondente. La coda delle sessioni di gioco fa riferimento ad alcuni o tutti gli alias del parco istanze. Se lo utilizzi FlexMatch per il matchmaking, questo stack contiene anche una configurazione di matchmaking e un set di regole.

Il diagramma seguente illustra una struttura a due livelli per la distribuzione delle risorse in una singola regione. AWS

Il diagramma mostra due pile. AWS CloudFormation Uno contiene GameLift risorse Amazon e l'altro contiene risorse che supportano GameLift. Quest'ultimo stack include il bucket S3 utilizzato per archiviare file di build o script e il IAM ruolo che consente GameLift ad Amazon di recuperare i file dal bucket S3.

Stack per più regioni

Quando distribuisci il tuo gioco in più di una regione, tieni presente come le risorse possono interagire tra le regioni. Alcune risorse, come le GameLift flotte Amazon, possono fare riferimento solo ad altre risorse nella stessa regione. Altre risorse, come una GameLift coda Amazon, sono indipendenti dalla regione. Per gestire GameLift le risorse Amazon in più regioni, consigliamo la seguente struttura.

  • Stack di supporto regionali: questi stack contengono risorse da cui dipendono le tue GameLift risorse Amazon. Questo stack deve includere il bucket S3 in cui si memorizzano il server di gioco personalizzato o i file di script Realtime. Potrebbe contenere anche altre AWS risorse per il tuo gioco, come tabelle DynamoDB, cluster Amazon Redshift e funzioni Lambda. Molte di queste risorse sono specifiche per regione, quindi è necessario crearle in ogni regione. Amazon ha GameLift anche bisogno di un IAM ruolo che consenta l'accesso a queste risorse di supporto. Poiché un IAM ruolo è indipendente dalla regione, è necessaria una sola risorsa di ruolo, collocata in ogni regione e referenziata in tutti gli altri stack di supporto.

  • GameLift Stack Amazon regionali: questo stack contiene le GameLift risorse Amazon che devono esistere in ogni regione in cui viene distribuito il gioco, tra cui la build o lo script, un set di flotte e alias. AWS CloudFormation crea una risorsa di compilazione o script con file in una posizione del bucket S3 e distribuisce la build o lo script su una o più risorse del parco. Ogni parco istanze deve avere un alias corrispondente. La coda delle sessioni di gioco fa riferimento ad alcuni o tutti gli alias del parco istanze. Puoi mantenere un modello per descrivere questo tipo di stack e utilizzarlo per creare set di risorse identici in ogni regione.

  • Stack Amazon globale: questo GameLift stack contiene la coda della sessione di gioco e le risorse di matchmaking. Queste risorse possono essere localizzate in qualsiasi regione e di solito sono posizionate nella stessa regione. La coda può fare riferimento ai parchi istanze o agli alias che si trovano in qualsiasi regione. Per posizionare code aggiuntive in regioni diverse, crea altri stack globali.

I diagrammi seguenti illustrano una struttura multistack per la distribuzione di risorse in diverse regioni. AWS Il primo diagramma mostra una struttura per una singola coda di sessioni di gioco. Il secondo diagramma mostra una struttura con più code.

Questo diagramma mostra più stack per tre regioni. AWS CloudFormation Gli stack di supporto in ogni regione contengono le risorse di supporto, ad esempio un bucket S3. Uno di questi stack contiene anche un IAM ruolo, che può essere utilizzato da Amazon GameLift per accedere a qualsiasi risorsa di supporto indipendentemente dalla regione. GameLift Gli stack Amazon regionali contengono GameLift build o script Amazon, flotte e alias. Uno GameLift stack Amazon globale contiene risorse di matchmaking e una coda, che può fare riferimento a flotte o alias in più regioni.
Questo diagramma mostra più AWS CloudFormation stack per tre regioni, inclusi GameLift stack Amazon globali con code di sessioni di gioco in due regioni. Ogni coda fa riferimento agli alias degli stack Amazon GameLift regionali.

Aggiornamento delle build

Le GameLift build di Amazon sono immutabili, così come la relazione tra una build e una flotta. Di conseguenza, quando aggiorni le risorse di hosting per utilizzare un nuovo set di file della build di gioco, è necessario effettuare quanto segue:

  • Creare una nuova build utilizzando il nuovo set di file (sostituzione).

  • Creare un nuovo set di parchi istanze per distribuire la nuova build del gioco (sostituzione).

  • Reindirizzare gli alias per puntare ai nuovi parchi istanze (aggiornamento senza interruzioni).

Per ulteriori informazioni, consulta Aggiornare i comportamenti delle risorse dello stack nella Guida per l'utente.AWS CloudFormation

Distribuisci automaticamente gli aggiornamenti delle build

Quando si aggiorna uno stack contenente le relative risorse di build, fleet e alias, il AWS CloudFormation comportamento predefinito prevede l'esecuzione automatica di questi passaggi in sequenza. Attivi questo aggiornamento caricando prima i nuovi file della build in un nuovo percorso S3. Quindi modifichi il modello di AWS CloudFormation build in modo che punti alla nuova posizione S3. Quando aggiorni lo stack con il nuovo percorso S3, viene attivata la seguente sequenza AWS CloudFormation :

  1. Recupera i nuovi file da S3, li convalida e crea una nuova build Amazon. GameLift

  2. Aggiorna il riferimento della build nel modello del parco istanze che attiva la creazione di nuovi parchi istanze.

  3. Una volta che i nuovi parchi istanze sono attivi, aggiorna il riferimento del parco istanze nell'alias che attiva l'aggiornamento dell'alias per indirizzare i nuovi parchi istanze.

  4. Elimina il vecchio parco istanze.

  5. Elimina la vecchia build.

Se la coda delle sessioni di gioco utilizza gli alias del parco istanze, il traffico dei giocatori viene automaticamente trasferito ai nuovi parchi istanze non appena gli alias vengono aggiornati. I vecchi parchi istanze vengono gradualmente svuotati dei giocatori alla fine delle sessioni di gioco. Il dimensionamento automatico gestisce il compito di aggiungere e rimuovere le istanze da ogni gruppo di parchi istanze quando varia il traffico dei giocatori. In alternativa, puoi specificare il numero iniziale di istanze desiderato per aumentare rapidamente lo switch e abilitare il dimensionamento automatico in un secondo momento.

Puoi anche impostare AWS CloudFormation Retain Resources invece di eliminarle. Per ulteriori informazioni, vedere RetainResourcesnella Guida di AWS CloudFormation APIriferimento.

Distribuisci gli aggiornamenti delle build manualmente

Se vuoi avere maggiore controllo su quando i nuovi parchi istanze sono disponibili per i giocatori, hai diverse opzioni. Puoi scegliere di gestire gli alias manualmente utilizzando la GameLift console Amazon o ilCLI. In alternativa, invece di aggiornare il modello di build per sostituire la build e i parchi istanze, è possibile aggiungere al modello un secondo set di definizioni di build e parco istanze. Quando aggiorni il modello, AWS CloudFormation crea una seconda risorsa di build e le flotte corrispondenti. Poiché le risorse esistenti non vengono sostituite, non vengono cancellate e gli alias continuano a puntare i parchi instanze originali.

Il vantaggio principale di questo approccio è che ti offre la flessibilità. Puoi creare risorse separate per la nuova versione della tua build, testare le nuove risorse e controllare quando i nuovi parchi istanze diventano disponibili per i giocatori. Un potenziale svantaggio è che richiede il doppio delle risorse in ciascuna regione per un breve periodo di tempo.

Il diagramma seguente illustra tale processo.

Il diagramma mostra più AWS CloudFormation stack per tre regioni, inclusi gli stack GameLift globali di Amazon con code di sessioni di gioco in due regioni. Ogni coda fa riferimento agli alias degli stack GameLift regionali di Amazon.

Come funzionano i rollback

Quando si esegue un aggiornamento delle risorse, se un passaggio non viene completato, AWS CloudFormation avvia automaticamente un rollback. Questo processo ripristina ogni passaggio della sequenza, eliminando le risorse appena create.

Se è necessario attivare manualmente un rollback, modifica la chiave di percorso S3 del modello di build sul percorso originale e aggiorna lo stack. Vengono create una nuova GameLift build e una nuova flotta di Amazon e l'alias passa alla nuova flotta dopo che la flotta è attiva. Se gestisci gli alias separatamente, devi modificarli per puntare ai nuovi parchi istanze.

Per ulteriori informazioni su come gestire un rollback che fallisce o si blocca, consulta Continuare a ripristinare un aggiornamento nella Guida per l'AWS CloudFormation utente.