Gestisci le risorse utilizzando 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à.

Gestisci le risorse utilizzando AWS CloudFormation

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

L'utilizzo AWS CloudFormation per la manutenzione delle 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 su AWS CloudFormation, consulta la Guida per l'utente di AWS CloudFormation. Per visualizzare le informazioni sui modelli per GameLift le risorse Amazon, consulta il riferimento al tipo di GameLift risorsa Amazon.

Best practice

Per una guida dettagliata sull'utilizzoAWS CloudFormation, consulta le AWS CloudFormationbest practice nella Guida per l'AWS CloudFormationutente. Inoltre, queste best practice hanno una rilevanza speciale per AmazonGameLift.

  • Gestisci costantemente le tue risorse tramiteAWS CloudFormation. Se modifichi le tue risorse all'esterno, le AWS CloudFormation tue risorse non saranno sincronizzate con i tuoi modelli di risorse.

  • Utilizza gli stack e i set di stack AWS CloudFormation 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 CloudFormationquindi aggiorna gli alias esistenti in modo che rimandino alle nuove flotte. Per ulteriori informazioni, consulta Lavorare con gli stack nella Guida per l'AWS CloudFormationutente.

    • Usa i set di AWS CloudFormation stack se stai distribuendo stack identici in più regioni o account. AWS Per ulteriori informazioni, vedere Utilizzo dei set di stack nella Guida per l'AWS CloudFormationutente.

  • 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, una flotta con istanze Spot e una flotta con istanze su richiesta.

  • 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 code e configurazioni di matchmaking tendono a ricevere un volume elevato di richieste da fonti specifiche. Posizionando le risorse vicino alla fonte di tali richieste, è possibile ridurre al minimo i tempi di percorrenza delle richieste e 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.

Usare gli AWS CloudFormation stack

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

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 ruolo IAM che GameLift consenta ad Amazon di recuperare i tuoi file dal bucket S3 durante la creazione di una GameLift build o di una risorsa di script Amazon. Questo stack potrebbe contenere anche altre AWS risorse utilizzate nel 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 CloudFormationcrea una risorsa di build o script con file archiviati nella posizione del bucket S3 e distribuisce la build o lo script su una o più risorse del parco veicoli. 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 usi 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 stack per la distribuzione delle risorse in una singola regione AWS.

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

Pile 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 anche contenere altre AWS risorse per il tuo gioco, come tabelle DynamoDB, cluster Amazon Redshift e funzioni Lambda. Molte di queste risorse sono specifiche della regione, quindi è necessario crearle in ogni regione. Amazon necessita GameLift anche di un ruolo IAM che consenta l'accesso a queste risorse di supporto. Poiché un ruolo IAM è indipendente dalla regione, è necessaria solo una risorsa di ruolo, collocata in qualsiasi regione e referenziata in tutti gli altri stack di supporto.

  • GameLiftStack 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 CloudFormationcrea una risorsa di build o script con file in una posizione del bucket S3 e distribuisce la build o lo script su una o più risorse del parco veicoli. 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.

Nei diagrammi riportati di seguito viene illustrata una struttura a più stack 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 AWS CloudFormation per tre regioni. Gli stack di supporto in ogni regione contengono le risorse di supporto, ad esempio un bucket S3. Uno di questi stack contiene anche un ruolo IAM, che può essere utilizzato da Amazon GameLift per accedere a qualsiasi risorsa di supporto indipendentemente dalla regione. GameLiftGli 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 gli GameLift stack Amazon globali con code di sessioni di gioco in due regioni. Ogni coda fa riferimento agli alias degli stack Amazon regionali. GameLift

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'AWS CloudFormationutente.

Distribuisci automaticamente gli aggiornamenti delle build

Quando aggiorni uno stack contenente risorse build, parco istanze e alias correlate, il comportamento predefinito di AWS CloudFormation consiste nell'eseguire automaticamente questi passaggi in sequenza. Attivi questo aggiornamento caricando prima i nuovi file della build in un nuovo percorso S3. Quindi modifichi il modello di build AWS CloudFormation per puntare al nuovo percorso 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.

È anche possibile mantenere le risorse AWS CloudFormation invece di eliminarle. Per ulteriori informazioni, consulta RetainResources nella documentazione di riferimento dell'API AWS CloudFormation.

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 l'interfaccia a riga di comando. 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 si aggiorna il modello, AWS CloudFormation crea una seconda risorsa di build e i parchi istanze 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 regionali di AmazonGameLift.

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 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 non riesce o si blocca, consulta Continuare a ripristinare un aggiornamento nella Guida per l'AWS CloudFormationutente.