Création de définitions de groupes de conteneurs pour une flotte de GameLift conteneurs Amazon - 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.

Création de définitions de groupes de conteneurs pour une flotte de GameLift conteneurs Amazon

Cette documentation concerne une fonctionnalité en version préliminaire publique. Elle est susceptible d’être modifiée.

Une définition de groupe de conteneurs décrit comment déployer vos applications de serveur de jeu conteneurisé sur une flotte de conteneurs. Il s'agit d'un plan qui identifie l'ensemble de conteneurs à utiliser dans la flotte et la manière de les gérer. Lorsque vous créez une flotte de conteneurs, vous spécifiez les définitions de groupes de conteneurs à déployer dans la flotte. Pour plus d'informations sur les groupes de conteneurs, consultezComposants du parc de conteneurs.

Avant de commencer

Réalisez les tâches suivantes :

  • Concevez une architecture de conteneur pour héberger vos serveurs de jeux. veuillez consulter Concevez une flotte de GameLift conteneurs Amazon.

  • Planifiez les définitions de conteneurs à inclure dans le groupe de conteneurs. Si vous utilisez la AWS CLI, créez votre définition de conteneur dans un fichier JSON.

  • Transférez les images finales du conteneur vers un registre Amazon Elastic Container Registry (Amazon ECR) dans le Région AWS même registre que celui dans lequel vous prévoyez de créer le groupe de conteneurs. Amazon GameLift stocke un instantané de chaque image au moment où vous créez la définition du groupe de conteneurs, et utilise la copie lors du déploiement sur un parc de conteneurs. veuillez consulter Préparez une image de conteneur avec le logiciel de votre serveur de jeu.

  • Vérifiez que votre AWS utilisateur dispose des autorisations IAM pour accéder au référentiel Amazon ECR. veuillez consulter Gérer les autorisations des utilisateurs pour Amazon GameLift. Au minimum, vous devez disposer d'autorisations pour effectuer les actions suivantes :

    • ecr:DescribeImages

    • ecr:BatchGetImage

    • ecr:GetDownloadUrlForLayer

Cloner une définition de groupe de conteneurs

Vous pouvez utiliser la GameLift console Amazon pour cloner une définition de groupe de conteneurs existante.

Pour cloner un groupe de conteneurs
  1. Dans la GameLift console Amazon, accédez au volet de navigation de gauche et choisissez Container groups.

  2. Sur la page de liste des groupes de conteneurs, sélectionnez le groupe de conteneurs existant que vous souhaitez cloner. Une fois que vous avez sélectionné un groupe de conteneurs, le bouton Cloner est actif.

  3. Choisissez Clone (Cloner). Cette action ouvre l'assistant de création de groupes de conteneurs avec des paramètres préremplis.

  4. Entrez un nouveau nom pour le groupe de conteneurs cloné. Les groupes de conteneurs d'une même région doivent avoir des noms uniques.

  5. Parcourez les pages du groupe de conteneurs et de définition du conteneur, passez en revue et créez le nouveau groupe de conteneurs.

Création d'une définition de groupe de conteneurs de répliques

Un groupe de conteneurs répliques gère le logiciel de votre serveur de jeu. Un groupe de répliques de conteneurs possède au moins un conteneur qui exécute les processus Amazon GameLift Agent et de votre serveur de jeu. Le groupe peut disposer de conteneurs « annexes » supplémentaires pour exécuter les logiciels de support.

Cette rubrique explique comment créer une définition de groupe de conteneurs à l'aide de la GameLift console Amazon ou des outils AWS CLI. Pour des informations plus détaillées sur la définition des configurations de groupes de conteneurs, reportez-vous àConcevez une flotte de GameLift conteneurs Amazon.

Console

Dans la GameLift console Amazon, sélectionnez l' Région AWS endroit où vous souhaitez créer le groupe de conteneurs.

Ouvrez la barre de navigation gauche de la console et choisissez Groupes de conteneurs. Sur la page Groupes de conteneurs, choisissez Créer un groupe de conteneurs.

Étape 1 : Définissez les détails du groupe.
  1. Entrez un nom de définition de groupe de conteneurs. Ce nom doit être propre à la région Compte AWS et. Dans la console, les définitions de groupes sont répertoriées par nom. Il peut donc être utile d'attribuer des libellés significatifs.

  2. Sélectionnez la stratégie de planification des répliques.

  3. Pour Limite de mémoire totale, entrez la mémoire maximale disponible pour le groupe de conteneurs. Pour obtenir de l'aide sur le calcul de cette valeur, consultezDéfinissez des limites de ressources.

  4. Pour Limite totale du processeur, entrez la puissance de calcul maximale disponible pour le groupe de conteneurs. Pour obtenir de l'aide sur le calcul de cette valeur, consultezDéfinissez des limites de ressources.

Étape 2 : Ajoutez des définitions de conteneurs.

Définissez le conteneur avec votre application de serveur de jeu et l' GameLift agent Amazon. Il s'agit de votre réplique de conteneur essentielle.

  1. Fournissez un nom de définition du conteneur. Chaque conteneur défini pour le groupe doit avoir une valeur de nom unique.

  2. Identifiez l'URI de l'image Amazon ECR de l'image du conteneur. Entrez l'un des formats suivants :

    • URI de l'image uniquement : [Compte AWS].dkr.ecr.[Région AWS].amazonaws.com/[repository ID]

    • URI de l'image et résumé : [Compte AWS].dkr.ecr.[Région AWS].amazonaws.com/[repository ID]@[digest]

    • URI de l'image et balise : [Compte AWS].dkr.ecr.[Région AWS].amazonaws.com/[repository ID]:[tag]

  3. Pour le conteneur essentiel, Oui est automatiquement sélectionné pour la première définition de conteneur. Si vous ajoutez une autre définition de conteneur, vous pouvez activer ou désactiver ce paramètre pour chaque définition. Pour en savoir plus, consultez Désignez les contenants essentiels.

  4. Définissez une ou plusieurs plages de ports de conteneurs internes. Ce conteneur héberge vos serveurs de jeu. Définissez donc une plage avec suffisamment de ports pour que chaque processus serveur s'exécute dans le groupe de conteneurs. Pour en savoir plus, consultez Configuration des connexions réseau.

  5. Les paramètres facultatifs Overrides et Environment variables vous permettent de spécifier les valeurs à transmettre au conteneur lors du lancement. Les valeurs que vous définissez ici remplacent les paramètres déjà présents dans l'image du conteneur.

  6. Définissez des limites de conteneur facultatives pour gérer l'allocation des ressources pour ce conteneur. Pour en savoir plus, consultez Définissez des limites de ressources.

  7. Définissez des contenants non essentiels supplémentaires selon les besoins :

    • Fournissez le nom de définition du conteneur et l'URI de l'image ECR. Les conteneurs non essentiels ne doivent pas exécuter l' GameLift agent Amazon.

    • Définissez une plage de ports de conteneurs internes uniquement si les conteneurs ont des processus nécessitant un accès au réseau.

    • Configurez éventuellement un bilan de santé pour le conteneur. Lorsqu'un conteneur non essentiel échoue à un contrôle de santé, seul le conteneur défaillant est redémarré.

    • Définissez éventuellement les remplacements, les variables d'environnement et les limites d'allocation de ressources selon les besoins.

Étape 3 : configurer les dépendances

Si vous avez plusieurs conteneurs dans votre définition de groupe de conteneurs, vous pouvez définir des dépendances entre eux. Utilisez les dépendances pour configurer les séquences de démarrage et d'arrêt en fonction de l'état du conteneur. Pour en savoir plus, consultez Définir les dépendances des conteneurs.

  1. Identifiez le nom du conteneur pour lequel vous souhaitez ajouter une dépendance. Ce conteneur ne démarre pas tant que la condition de dépendance n'est pas satisfaite.

  2. Identifiez le nom et la condition du conteneur de dépendance. Ce conteneur doit satisfaire à cette condition pour que le conteneur dépendant puisse démarrer.

  3. Définissez des dépendances supplémentaires selon vos besoins. Vous pouvez créer plusieurs dépendances pour n'importe quel conteneur. Évitez de créer des dépendances circulaires.

Étape 4 : Révisez et créez.
  1. Passez en revue tous les paramètres de définition de votre groupe de conteneurs. Vous ne pouvez pas modifier la configuration d'une définition de groupe de conteneurs une fois celle-ci créée. Utilisez Modifier pour apporter des modifications à n'importe quelle section, y compris à chacune de vos définitions de conteneur pour le groupe.

  2. Lorsque vous avez terminé de réviser, choisissez Créer.

    Si votre demande aboutit, la console affiche la page détaillée de la nouvelle ressource de définition de groupe de conteneurs. Au départCOPYING, le statut est le suivant : Amazon GameLift commence à prendre des instantanés de toutes les images du conteneur pour le groupe. Lorsque cette phase est terminée, le statut de définition du groupe de conteneurs passe àREADY. Une définition de groupe de conteneurs doit avoir le READY statut requis pour que vous puissiez créer une flotte de conteneurs à l'aide de cette définition.

AWS CLI

Lorsque vous utilisez la AWS CLI pour créer une définition de groupe de conteneurs, conservez vos configurations de définition de conteneur dans un JSON fichier séparé. Vous pouvez référencer le fichier dans votre commande CLI. Voir Création d'un JSON fichier de définition de conteneur pour des exemples de schéma.

Création d'une définition de groupe de conteneurs

Pour créer une nouvelle définition de groupe de conteneurs, utilisez la commande create-container-group-definition CLI. Pour plus d'informations sur cette commande, consultez le manuel create-container-group-definitionde référence des commandes de la AWS CLI.

Exemple : groupe de conteneurs de répliques

Cet exemple illustre une demande de définition de groupe de conteneurs de répliques. La structure de commande pour créer des définitions de répliques et de groupes de démons est essentiellement identique. Les détails spécifiques à chaque type de groupe sont décrits dans les définitions des conteneurs individuels.

Cet exemple suppose que vous avez créé un fichier JSON contenant les définitions de conteneur pour ce groupe.

aws gamelift create-container-group-definition \ --name MyAdventureGameContainerGroup \ --operating-system AMAZON_LINUX_2023 \ --scheduling-strategy REPLICA \ --total-memory-limit 4096 \ --total-cpu-limit 1024 \ --container-definitions file://SimpleServer.json

Création d'un JSON fichier de définition de conteneur

Lorsque vous créez une définition de groupe de conteneurs, vous définissez également les conteneurs du groupe. Une définition de conteneur spécifie le référentiel Amazon ECR dans lequel l'image du conteneur est stockée, ainsi que les configurations facultatives pour les ports réseau, les limites d'utilisation du processeur et de la mémoire, ainsi que d'autres paramètres. Nous vous recommandons de créer un JSON fichier unique contenant les configurations de tous les conteneurs d'un groupe de conteneurs. La gestion d'un fichier est utile pour le stockage, le partage et le suivi des versions de ces configurations critiques. Si vous utilisez la AWS CLI pour créer vos définitions de groupes de conteneurs, vous pouvez référencer le fichier dans la commande.

Pour créer une définition de conteneur
  1. Créez et ouvrez un nouveau .JSON fichier. Par exemple :

    [~/work/glc]$ vim SimpleServer.json
  2. Créez une définition de conteneur distincte pour chacun des conteneurs du groupe. Copiez l'exemple de contenu suivant et modifiez-le selon les besoins de vos conteneurs. Pour plus de détails sur la syntaxe d'une définition de conteneur, consultez ContainerDefinitionInputle Amazon GameLift API Reference.

  3. Enregistrez le fichier localement afin de pouvoir y faire référence dans une commande AWS CLI.

Cet exemple décrit le conteneur essentiel pour votre groupe de répliques de conteneurs. Le conteneur de répliques essentiel inclut votre application de serveur de jeu, l'Amazon GameLift Agent, et peut inclure d'autres logiciels de support pour l'hébergement de votre jeu. La définition doit inclure un nom, une URI d'image et une configuration de port. Cet exemple définit également certaines limites de ressources spécifiques au conteneur.

[ { "ContainerName": "SimpleServer", "ImageUri": "111122223333.dkr.ecr.us-east-1.amazonaws.com/gl-containers:complex-server", "Essential": true, "Cpu": 256, "MemoryLimits": { "HardLimit": 128 }, "PortConfiguration": { "ContainerPortRanges": [ { "FromPort": 2000, "Protocol": "TCP", "ToPort": 2100 } ] } } ]