Gérez les ressources à l'aide AWS CloudFormation - Amazon GameLift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Gérez les ressources à l'aide AWS CloudFormation

Vous pouvez l'utiliser AWS CloudFormation pour gérer vos GameLift ressources Amazon. Dans AWS CloudFormation, vous créez un modèle qui modélise chaque ressource, puis vous utilisez le modèle pour créer vos ressources. Pour mettre à jour des ressources, vous apportez des modifications à votre modèle et utilisez AWS CloudFormation pour mettre en œuvre les mises à jour. Vous pouvez organiser vos ressources en groupes logiques, appelés piles et ensembles de piles.

L'utilisation AWS CloudFormation pour gérer vos ressources GameLift d'hébergement Amazon constitue un moyen plus efficace de gérer des ensembles de AWS ressources. Vous pouvez utiliser le contrôle de version pour suivre les modifications apportées au modèle au fil du temps et coordonner les mises à jour effectuées par plusieurs membres de l'équipe. Vous pouvez également réutiliser des modèles. Par exemple, lors du déploiement d'un jeu dans plusieurs régions, vous pouvez utiliser le même modèle pour créer des ressources identiques dans chaque région. Vous pouvez également utiliser ces modèles pour déployer les mêmes ensembles de ressources dans une autre partition.

Pour plus d'informations sur AWS CloudFormation, consultez le AWS CloudFormationGuide de l'utilisateur . Pour consulter les informations relatives aux modèles de GameLift ressources Amazon, consultez la référence GameLift des types de ressources Amazon.

Bonnes pratiques

Pour obtenir des instructions détaillées sur l'utilisationAWS CloudFormation, consultez les AWS CloudFormationmeilleures pratiques dans le Guide de AWS CloudFormation l'utilisateur. En outre, ces bonnes pratiques sont particulièrement pertinentes pour AmazonGameLift.

  • Gérez vos ressources de manière cohérente viaAWS CloudFormation. Si vous modifiez vos ressources, celles-ci AWS CloudFormation ne seront pas synchronisées avec vos modèles de ressources.

  • Utilisez des piles et des ensembles de piles AWS CloudFormation pour gérer efficacement plusieurs ressources.

    • Utilisez des piles pour gérer des groupes de ressources connectées. Par exemple, une pile qui contient une version, une flotte qui fait référence à la version et un alias qui fait référence à la flotte. Si vous mettez à jour votre modèle pour remplacer une version, AWS CloudFormation remplace les flottes connectées à la version. AWS CloudFormationmet ensuite à jour les alias existants pour pointer vers les nouvelles flottes. Pour plus d'informations, consultez la section Utilisation des piles dans le Guide de l'AWS CloudFormationutilisateur.

    • Utilisez des ensembles de AWS CloudFormation piles si vous déployez des piles identiques sur plusieurs régions ou AWS comptes. Pour plus d'informations, consultez la section Utilisation des ensembles de piles dans le Guide de AWS CloudFormation l'utilisateur.

  • Si vous utilisez des instances Spot, incluez une flotte à la demande comme sauvegarde. Nous vous recommandons de configurer vos modèles avec deux flottes dans chaque région, une flotte avec des instances Spot et une flotte avec des instances à la demande.

  • Regroupez vos ressources spécifiques à un site et vos ressources globales dans des piles distinctes lorsque vous gérez des ressources sur plusieurs sites.

  • Placez vos ressources globales à proximité des services qui les utilisent. Les ressources telles que les files d'attente et les configurations de matchmaking ont tendance à recevoir un volume élevé de demandes provenant de sources spécifiques. En plaçant vos ressources à proximité de la source de ces demandes, vous réduisez le temps de trajet des demandes et pouvez améliorer les performances globales.

  • Placez votre configuration de mise en relation dans la même région que la file d'attente de session de jeu qu'elle utilise.

  • Créez un alias distinct pour chaque flotte de la pile.

Utiliser des AWS CloudFormation piles

Nous vous recommandons d'utiliser les structures suivantes lors de la configuration de AWS CloudFormation piles pour les GameLift ressources Amazon. La structure optimale de votre stack varie selon que vous déployez votre jeu à un seul endroit ou à plusieurs endroits.

Des piles pour un seul emplacement

Pour gérer les GameLift ressources Amazon en un seul endroit, nous recommandons une structure à deux niveaux :

  • Pile de support : cette pile contient des ressources dont dépendent vos GameLift ressources Amazon. Au minimum, cette pile doit inclure le compartiment S3 dans lequel vous stockez votre serveur de jeu personnalisé ou vos fichiers de script Realtime. La pile doit également inclure un rôle IAM qui GameLift autorise Amazon à récupérer vos fichiers depuis le compartiment S3 lors de la création d'une ressource de GameLift build ou de script Amazon. Cette pile peut également contenir d'autres AWS ressources utilisées avec votre jeu, telles que des tables DynamoDB, des clusters Amazon Redshift et des fonctions Lambda.

  • GameLiftSuite Amazon : cette pile contient toutes vos GameLift ressources Amazon, y compris le build ou le script, un ensemble de flottes, des alias et la file d'attente des sessions de jeu. AWS CloudFormationcrée une ressource de build ou de script avec des fichiers stockés dans l'emplacement du bucket S3 et déploie le build ou le script sur une ou plusieurs ressources du parc. Chaque flotte doit avoir un alias correspondant. La file d'attente de session de jeu fait référence à tout ou partie des alias de flotte. Si vous l'utilisez FlexMatch pour le matchmaking, cette pile contient également une configuration de matchmaking et un ensemble de règles.

Le diagramme ci-dessous illustre une structure à deux piles pour le déploiement de ressources dans une seule région AWS.

Le diagramme montre deux piles AWS CloudFormation. L'un contient GameLift des ressources Amazon et l'autre contient des ressources d'assistanceGameLift. Cette dernière pile inclut le compartiment S3 utilisé pour stocker les fichiers de compilation ou de script et le rôle IAM qui permet GameLift à Amazon de récupérer des fichiers depuis le compartiment S3.

Des piles pour plusieurs régions

Lorsque vous déployez votre jeu dans plusieurs régions, gardez présent à l'esprit la manière dont les ressources peuvent interagir entre les régions. Certaines ressources, telles que les GameLift flottes Amazon, peuvent uniquement référencer d'autres ressources de la même région. Les autres ressources, telles qu'une GameLift file d'attente Amazon, sont indépendantes de la région. Pour gérer les GameLift ressources Amazon dans plusieurs régions, nous recommandons la structure suivante.

  • Packs de support régionaux : ces piles contiennent des ressources dont dépendent vos GameLift ressources Amazon. Cette pile doit inclure le compartiment S3 dans lequel vous stockez votre serveur de jeu personnalisé ou vos fichiers de script Realtime. Il peut également contenir d'autres AWS ressources pour votre jeu, telles que des tables DynamoDB, des clusters Amazon Redshift et des fonctions Lambda. La plupart de ces ressources sont spécifiques à une région, vous devez donc les créer dans chaque région. Amazon a GameLift également besoin d'un rôle IAM permettant d'accéder à ces ressources de support. Comme un rôle IAM est indépendant de la région, vous n'avez besoin que d'une seule ressource de rôle, placée dans n'importe quelle région et référencée dans toutes les autres piles de support.

  • Piles Amazon GameLift régionales : cette pile contient les GameLift ressources Amazon qui doivent exister dans chaque région où votre jeu est déployé, y compris la version ou le script, un ensemble de flottes et des alias. AWS CloudFormationcrée une ressource de compilation ou de script avec des fichiers se trouvant dans un emplacement de compartiment S3 et déploie le build ou le script sur une ou plusieurs ressources du parc. Chaque flotte doit avoir un alias correspondant. La file d'attente de session de jeu fait référence à tout ou partie des alias de flotte. Vous pouvez gérer un modèle pour décrire ce type de pile et l'utiliser pour créer des ensembles de ressources identiques dans chaque région.

  • GameLiftPile Amazon globale — Cette pile contient votre file d'attente de sessions de jeu et vos ressources de matchmaking. Ces ressources peuvent être situées dans n'importe quelle région et sont généralement placées dans la même région. La file d'attente peut faire référence à des flottes ou à des alias situés dans n'importe quelle région. Pour placer des files d'attente supplémentaires dans différentes régions, créez des piles globales supplémentaires.

Les diagrammes ci-dessous illustrent une structure à plusieurs piles pour le déploiement de ressources dans plusieurs régions AWS. Le premier diagramme montre une structure pour une file d'attente de session de jeu unique. Le deuxième diagramme montre une structure avec plusieurs files d'attente.

Ce diagramme montre plusieurs piles AWS CloudFormation pour trois régions. Les piles de support dans chaque région contiennent des ressources de support telles qu'un compartiment S3. L'une de ces piles contient également un rôle IAM, qui peut être utilisé par Amazon pour accéder GameLift à n'importe quelle ressource de support, quelle que soit la région. Les GameLift piles Amazon régionales contiennent des GameLift versions ou des scripts, des flottes et des alias Amazon. Une GameLift pile Amazon globale contient des ressources de matchmaking et une file d'attente, qui peuvent référencer des flottes ou des alias dans plusieurs régions.
Ce diagramme montre plusieurs AWS CloudFormation piles pour trois régions, y compris les GameLift piles Amazon mondiales avec des files d'attente de sessions de jeu dans deux régions. Chaque file d'attente fait référence à des alias provenant des GameLift piles Amazon régionales.

Mettre à jour les versions

Les GameLift versions d'Amazon sont immuables, tout comme la relation entre une version et une flotte. Par conséquent, lorsque vous mettez à jour vos ressources d'hébergement pour utiliser un nouvel ensemble de fichiers de build de jeu, les étapes suivantes doivent être exécutées :

  • Créez une nouvelle build en utilisant le nouvel ensemble de fichiers (remplacement).

  • Créez un nouvel ensemble de flottes pour déployer la nouvelle build de jeu (remplacement).

  • Redirigez les alias pour pointer vers les nouvelles flottes (mise à jour sans interruption).

Pour plus d'informations, consultez la section Mettre à jour les comportements des ressources de la pile dans le Guide de AWS CloudFormation l'utilisateur.

Déploiement automatique des mises à jour

Lors de la mise à jour d'une pile contenant des ressources de build, de flotte et d'alias associées, le comportement AWS CloudFormation par défaut consiste à effectuer automatiquement ces étapes dans l'ordre. Vous déclenchez cette mise à jour en téléchargeant d'abord les nouveaux fichiers de build vers un nouvel emplacement S3. Ensuite, vous modifiez votre modèle de build AWS CloudFormation pour pointer vers le nouvel emplacement S3. Lorsque vous mettez à jour votre pile avec le nouvel emplacement S3, la séquence AWS CloudFormation suivante se déclenche :

  1. Récupère les nouveaux fichiers depuis S3, valide les fichiers et crée une nouvelle version AmazonGameLift.

  2. Mise à jour de la référence de build dans le modèle de flotte, ce qui déclenche la création d'une nouvelle flotte.

  3. Lorsque les nouvelles flottes sont actives, mise à jour de la référence de flotte dans l'alias, ce qui déclenche la mise à jour de l'alias pour cibler les nouvelles flottes.

  4. Suppression de l'ancienne flotte.

  5. Suppression de l'ancienne build.

Si votre file d'attente de session de jeu utilise des alias de flotte, le trafic des joueurs est automatiquement basculé vers les nouvelles flottes dès que les alias sont mis à jour. Les anciennes flottes sont progressivement vidées de leurs joueurs à mesure que les sessions de jeu se terminent. La mise à l'échelle automatique gère la tâche d'ajout et de suppression des instances à partir de chaque ensemble de flottes lorsque le trafic des joueurs fluctue. Vous pouvez également spécifier un nombre d'instances initial souhaité pour accélérer rapidement la montée en charge du commutateur et activer la mise à l'échelle automatique ultérieurement.

Vous pouvez également demander que AWS CloudFormation conserve les ressources au lieu de les supprimer. Pour plus d'informations, consultez RetainResources dans la Référence d'API AWS CloudFormation.

Déploiement manuel des mises à jour

Si vous souhaitez contrôler davantage le moment où les nouvelles flottes sont en ligne pour les joueurs, vous disposez de plusieurs options. Vous pouvez choisir de gérer les alias manuellement à l'aide de la GameLift console Amazon ou de l'interface de ligne de commande. Au lieu de mettre à jour votre modèle de build pour remplacer la build et les flottes, vous pouvez ajouter un deuxième ensemble de définitions de build et de flotte à votre modèle. Lorsque vous mettez à jour le modèle, AWS CloudFormation crée une deuxième ressource de build et les flottes correspondantes. Les ressources existantes n’étant pas remplacées, elles ne sont pas supprimées et les alias continuent de pointer vers les flottes d'origine.

Le principal avantage de cette approche est qu'elle vous donne de la flexibilité. Vous pouvez créer des ressources distinctes pour la nouvelle version de votre build, tester les nouvelles ressources et contrôler le moment où les nouvelles flottes sont mises en ligne pour les joueurs. Un inconvénient potentiel est que cela nécessite deux fois plus de ressources dans chaque région pendant une brève période.

Le schéma suivant illustre ce processus.

Le diagramme montre plusieurs AWS CloudFormation piles pour trois régions, y compris les piles GameLift globales d'Amazon avec des files d'attente de sessions de jeu dans deux régions. Chaque file d'attente fait référence à des alias provenant des piles GameLift régionales d'Amazon.

Comment fonctionnent les annulations

Lors de l'exécution d'une mise à jour des ressources, si une étape ne se termine pas correctement, AWS CloudFormation lance automatiquement une restauration. Ce processus inverse chaque étape dans l'ordre, en supprimant les ressources nouvellement créées.

Si vous devez déclencher manuellement une restauration, restaurez l’emplacement d’origine de la clé d'emplacement S3 du modèle de build, puis mettez à jour votre pile. Une nouvelle GameLift version et une nouvelle flotte Amazon sont créées, et l'alias passe à la nouvelle flotte une fois que celle-ci est active. Si vous gérez des alias séparément, vous devez les modifier de sorte qu’ils pointent vers les nouvelles flottes.

Pour plus d'informations sur la façon de gérer une restauration qui échoue ou reste bloquée, voir Continuer à annuler une mise à jour dans le Guide de l'AWS CloudFormationutilisateur.