View a markdown version of this page

Comment fonctionnent les conteneurs GameLift Serveurs Amazon - GameLift Serveurs Amazon

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.

Comment fonctionnent les conteneurs GameLift Serveurs Amazon

Amazon GameLift Serversles flottes de conteneurs sont conçues pour vous offrir une flexibilité dans la manière dont vous déployez et faites évoluer vos applications conteneurisées. Il utilise Amazon Elastic Container Service (Amazon ECS) pour gérer le déploiement et l'exécution des tâches pour vos Amazon GameLift Servers flottes. Cette rubrique décrit les éléments structurels de base permettant de gérer des conteneurs sur une flotte Amazon GameLift Servers gérée, illustre les architectures courantes et décrit certains concepts fondamentaux.

Accélérez l'intégration à l'aide des outils suivants pour les conteneurs gérés :
  • Le kit de démarrage pour conteneurs rationalise l'intégration et la configuration de la flotte. Il ajoute des fonctionnalités essentielles de gestion des sessions de jeu à votre serveur de jeu et utilise des modèles préconfigurés pour créer une flotte de conteneurs et un pipeline de déploiement automatisé pour votre serveur de jeu. Après le déploiement, utilisez la Amazon GameLift Servers console et les outils d'API pour surveiller les performances de la flotte, gérer les sessions de jeu et analyser les statistiques.

  • Pour les développeurs Unreal Engine ou Unity, utilisez les Amazon GameLift Servers plugins pour intégrer votre serveur de jeu et constituer une flotte de conteneurs depuis l'environnement de développement de votre moteur de jeu. Les flux de travail guidés du plugin vous aident à créer une solution simple et rapide avec un hébergement basé sur le cloud à l'aide de conteneurs gérés. Tirez ensuite parti de cette base pour créer une solution d'hébergement personnalisée pour votre jeu.

Composants de la flotte de conteneurs

Flotte

Une flotte de conteneurs est un ensemble d'instances Amazon EC2 destinées à héberger vos serveurs de jeux conteneurisés. Ces instances sont gérées par Amazon GameLift Servers en votre nom. Lorsque vous créez une flotte, vous configurez la manière dont l'architecture de conteneurs avec le logiciel de votre serveur de jeu est déployée sur chaque instance de flotte. Vous pouvez créer une flotte de conteneurs avec des instances situées dans un ou plusieurs emplacements géographiques. Vous pouvez utiliser des outils de Amazon GameLift Servers dimensionnement pour adapter automatiquement la capacité d'une flotte de conteneurs afin d'accueillir des sessions de jeu et des joueurs.

Instance

Une instance Amazon EC2 est le serveur virtuel qui fournit une capacité de calcul pour l'hébergement de jeux. AvecAmazon GameLift Servers, vous pouvez choisir parmi une gamme de types d'instances. Chaque type d'instance offre une combinaison différente de capacité de processeur, de mémoire, de stockage et de réseau.

Lorsque vous créez une flotte de conteneurs, Amazon GameLift Servers déploie vos conteneurs en fonction du type d'instance que vous choisissez et de la configuration de votre flotte. Chaque instance de flotte déployée est identique et exécute le logiciel de votre serveur de jeu conteneurisé de la même manière. Le nombre d'instances d'une flotte détermine sa taille et sa capacité d'hébergement de jeux.

Groupe de conteneurs

Amazon GameLift Serversutilise le concept de groupe de conteneurs pour décrire et gérer un ensemble de conteneurs. Un groupe de conteneurs est similaire à une « tâche » ou à un « pod » de conteneurs. Au sein de chaque groupe de conteneurs, vous pouvez définir le comportement des conteneurs, configurer des dépendances et partager les ressources CPU et mémoire disponibles.

Chaque instance de flotte peut comporter les types de groupes de conteneurs suivants :

  • Un groupe de conteneurs de serveurs de jeu gère les conteneurs qui exécutent l'application de votre serveur de jeu et les logiciels associés. Une flotte de conteneurs doit disposer d'un groupe de conteneurs de ce type pour accueillir les sessions de jeu et les joueurs. Un groupe de conteneurs de serveurs de jeu peut être répliqué sur une instance de flotte. Le nombre de répliques de groupes de serveurs de jeu par instance de flotte dépend des besoins de calcul de votre logiciel et des ressources de calcul disponibles sur l'instance.

  • Un groupe de conteneurs par instance, facultatif, vous permet d'exécuter des logiciels supplémentaires sur chaque instance de flotte. Ils sont utiles pour exécuter des services d'arrière-plan ou des programmes utilitaires, tels que la surveillance. Le logiciel de votre serveur de jeu ne dépend pas directement des processus d'un groupe par instance. Une seule copie d'un groupe de conteneurs par instance est déployée sur chaque instance de flotte.

Chaque groupe de conteneurs d'une flotte de conteneurs possède un conteneur désigné « essentiel ». Un conteneur essentiel détermine le cycle de vie d'un groupe de conteneurs. Si le conteneur essentiel tombe en panne, l'ensemble du groupe de conteneurs redémarre.

Conteneur

Le conteneur est l'élément le plus fondamental d'une architecture basée sur des conteneurs. Il inclut une image de conteneur contenant des exécutables logiciels et des fichiers dépendants. Définissez un conteneur pour configurer la façon dont le logiciel s'exécute et interagit avec Amazon GameLift Servers celui-ci.

Amazon GameLift Serversdéfinit deux types de contenants :

  • Un conteneur de serveur de jeu comprend tout ce dont vous avez besoin pour exécuter les processus de votre serveur de jeu et héberger des sessions de jeu pour les joueurs. Il inclut la version de votre serveur de jeu et les logiciels qui en dépendent. Définissez un conteneur de serveur de jeu pour le groupe de conteneurs de serveurs de jeu d'une flotte. Le conteneur du serveur de jeu est automatiquement considéré comme essentiel pour le groupe de conteneurs.

  • Un conteneur de support exécute des logiciels supplémentaires pour prendre en charge votre serveur de jeu. Il est similaire au concept d'un conteneur « sidecar ». Il vous donne la possibilité d'exécuter et de faire évoluer les logiciels de support parallèlement à vos serveurs de jeu, mais de les gérer comme des conteneurs séparés. Dans un groupe de conteneurs de serveurs de jeu, vous pouvez définir zéro ou plusieurs conteneurs de support. Dans un groupe de conteneurs par instance, tous les conteneurs sont des conteneurs de support. Tout contenant de support peut être désigné comme essentiel.

Calcul

Un calcul représente une copie d'un groupe de conteneurs de serveurs de jeu sur une instance de flotte.

Architectures communes

Le schéma suivant illustre la structure de flotte de conteneurs la plus simple. Dans cette structure, chaque instance de la flotte conserve une copie du groupe de conteneurs du serveur de jeu. Le groupe de conteneurs possède un conteneur de serveur de jeu unique qui exécute un processus de serveur de jeu. Dans cet exemple, la flotte de conteneurs est configurée pour placer une copie du groupe de conteneurs du serveur de jeu par instance. Avec cette architecture, chaque instance exécute un processus de serveur de jeu.

Exemple d'architecture de conteneur simple, avec un seul conteneur de serveur de jeu dans le groupe de conteneurs de serveurs de jeu.

Ce second schéma illustre une architecture de flotte de conteneurs plus complexe. Dans cette structure, la flotte comprend à la fois un groupe de conteneurs de serveurs de jeu et un groupe de conteneurs par instance. Le groupe de conteneurs de serveurs de jeu comprend des conteneurs séparés pour le processus du serveur de jeu et un processus de support. La flotte est configurée pour placer trois copies du groupe de conteneurs du serveur de jeu sur chaque instance de flotte. Le groupe de conteneurs par instance n'est jamais répliqué. Dans cet exemple, la flotte de conteneurs est configurée pour placer trois copies du groupe de conteneurs du serveur de jeu par instance. Avec cette architecture, chaque instance exécute trois processus de serveur de jeu.

Exemple d'architecture de conteneurs avec plusieurs conteneurs dans le groupe de conteneurs du serveur de jeu et un conteneur dans le groupe de conteneurs par instance.

Fonctions de base

Cette section résume la Amazon GameLift Servers mise en œuvre de certains concepts de base relatifs aux conteneurs. Pour obtenir des instructions sur la façon de travailler avec des flottes de conteneurs, consultez les rubriques pertinentes de ce guide.

Mises à jour actives du parc

Les conteneurs gérés fournissent un support avancé pour vous aider à gérer le cycle de vie de votre logiciel hébergé et de votre architecture de conteneurs. Vous pouvez mettre à jour vos définitions de conteneurs, y compris les images de conteneurs, et apporter des modifications à vos flottes existantes. Cette fonctionnalité permet d'itérer plus rapidement et plus facilement les modifications apportées à vos conteneurs pendant le développement. Il fournit également des fonctionnalités qui vous aident à créer, déployer et suivre les mises à jour de la version de votre logiciel au fil du temps. Ces fonctionnalités incluent :

  • Gérez les mises à jour des définitions de groupes de conteneurs et la gestion des versions. Vous pouvez mettre à jour presque toutes les propriétés d'une définition de groupe de conteneurs, y compris les images des conteneurs et les paramètres de configuration. Chaque fois que vous mettez à jour un conteneur, attribue Amazon GameLift Servers automatiquement un numéro de version à la mise à jour et gère toutes les versions par défaut. Vous pouvez accéder à n'importe quelle version spécifique et supprimer des versions comme vous le souhaitez. Lorsque vous créez une flotte de conteneurs, vous pouvez spécifier la définition du groupe de conteneurs et la version à déployer.

  • Mettez à jour les flottes de conteneurs existantes avec de nouvelles définitions de groupes de conteneurs et de nouveaux paramètres de configuration. Vous pouvez déployer des mises à jour de conteneurs sur des flottes déjà déployées sur des instances de flotte. Vous pouvez suivre l'état des déploiements de mises à jour sur chaque emplacement de flotte à l'aide du Console de gestion AWS AWS SDK et de l'interface de ligne de commande.

  • Configurez la manière dont vous souhaitez que les mises à jour de flotte soient déployées sur une flotte active.

    • Protection des sessions de jeu. Choisissez de protéger les instances de la flotte avec des sessions de jeu actives jusqu'à la fin des sessions de jeu (déploiement sécurisé). Ou choisissez de remplacer les instances de la flotte quelle que soit l'activité de la session de jeu (déploiement non sécurisé). Utilisez des déploiements non sécurisés pendant les phases de développement et de test afin de réduire le temps de déploiement.

    • Pourcentage sain minimum. Spécifiez le pourcentage de tâches saines que vous souhaitez conserver pendant le déploiement. Cette fonctionnalité vous permet de décider du nombre d'instances de flotte touchées lors d'un déploiement. Une valeur faible donne la priorité à la vitesse de déploiement, tandis qu'une valeur élevée garantit que la disponibilité du serveur de jeu reste élevée tout au long du déploiement.

    • Stratégie en cas d'échec de déploiement. Décidez des mesures à prendre en cas d'échec d'un déploiement. Un échec de déploiement signifie que certains conteneurs mis à jour ont échoué aux contrôles d'état et sont considérés comme défectueux. Vous pouvez configurer les déploiements pour ramener automatiquement toutes les instances de flotte à l'état précédemment déployé. Vous pouvez également choisir de conserver certaines des instances de flotte altérées à des fins de débogage.

La possibilité de mettre à jour les flottes actives est très utile lorsque vous souhaitez déployer une mise à jour du logiciel de votre serveur de jeu. Une fois que vous avez créé une nouvelle image de conteneur pour votre serveur de jeu, son déploiement s'effectue en deux étapes : tout d'abord, mettez à jour la définition du groupe de conteneurs avec la nouvelle image, puis mettez à jour la flotte de conteneurs. Amazon GameLift Serversgère toutes les autres tâches selon les besoins.

Emballage de conteneurs

Lorsque vous développez votre structure de conteneurs en vue de son déploiement dans une flotte de conteneurs, l'objectif commun est d'optimiser votre utilisation de la puissance informatique disponible. Pour atteindre cet objectif, vous devez regrouper autant de groupes de conteneurs de serveurs de jeu que possible sur chaque instance de flotte.

Amazon GameLift Serversvous aide à le faire en calculant le nombre maximum de groupes de conteneurs de serveurs de jeu par instance, sur la base des informations suivantes :

  • Le type d'instance de la flotte, son processeur virtuel et ses ressources mémoire.

  • Les exigences en matière de processeur virtuel et de mémoire pour tous les conteneurs du groupe de conteneurs du serveur de jeu.

    Les exigences en matière de processeur virtuel et de mémoire pour tous les conteneurs d'un groupe de conteneurs par instance, le cas échéant.

Lorsque vous créez une flotte de conteneurs, vous pouvez utiliser le maximum calculé ou spécifier le nombre souhaité. Il est recommandé de tester le logiciel de votre serveur de jeu conteneurisé afin de déterminer les besoins en ressources pour optimiser les performances de votre serveur de jeu.

Mise à l'échelle de la capacité

La capacité de la flotte mesure le nombre de sessions de jeu qu'une flotte peut organiser simultanément. Vous pouvez également mesurer la capacité en fonction du nombre de joueurs simultanés qu'une flotte peut prendre en charge. Pour augmenter ou diminuer la capacité d'hébergement d'une flotte, vous pouvez ajouter ou supprimer des instances de flotte.

Une flotte de conteneurs est configurée pour exécuter un nombre spécifique de processus de serveur de jeu simultanés sur chaque instance de flotte. (Vous pouvez le calculer sur la base (1) des groupes de conteneurs de serveurs de jeu par instance et (2) du nombre de processus de serveur de jeu qui s'exécutent dans chaque groupe de conteneurs.) Le nombre de serveurs de jeu simultanés par instance vous indique l'impact de l'ajout ou de la suppression de chaque instance de flotte. Par exemple, si votre parc de conteneurs exécute un processus de serveur de jeu dans chaque groupe de conteneurs de serveurs de jeu et que chaque instance de flotte contient 100 groupes de conteneurs de serveurs de jeu, vous augmentez ou diminuez la capacité de votre flotte à héberger des sessions de jeu simultanées par incréments de 100. Si chaque session de jeu comporte 10 emplacements de joueur, vous augmentez ou diminuez la capacité de votre flotte à accueillir des joueurs par tranches de 1 000.

Avec les flottes de conteneurs, vous pouvez utiliser n'importe laquelle des méthodes de dimensionnement des capacités proposées parAmazon GameLift Servers. Il s’agit des licences suivantes :

  • Définissez la capacité de la flotte manuellement en définissant le nombre d'instances de flotte souhaité.

  • Configurez la mise à l'échelle automatique en ciblant une zone tampon souhaitée d'instances disponibles (suivi des cibles). Cette méthode maintient automatiquement une certaine quantité de ressources d'hébergement inactives afin que les nouveaux joueurs puissent accéder rapidement aux jeux. Au fur et à mesure que la demande des joueurs augmente ou diminue, la taille de cette mémoire tampon est continuellement ajustée.

  • Configurez la mise à l'échelle automatique avec des règles de dimensionnement personnalisées (fonctionnalité avancée). Cette méthode vous permet d'évoluer en fonction des indicateurs de flotte que vous choisissez.

client/server Connexions au jeu

Grâce aux flottes Amazon GameLift Servers gérées, les clients de jeux se connectent directement à vos serveurs de jeu hébergés dans le cloud. Lorsqu'un client de jeu demande à rejoindre une partie, Amazon GameLift Servers trouve une session de jeu et fournit des informations de connexion (IP et port) au client de jeu. Vous pouvez contrôler l'accès externe aux instances de flotte en ouvrant certaines plages de ports (autorisations entrantes) pour la flotte. Les autorisations entrantes déterminent quels ports sont ouverts au trafic entrant. Vous pouvez fermer rapidement tous les ports, en limiter à quelques-uns ou ouvrir tous les ports.

Les flottes de conteneurs gérées nécessitent un paramètre supplémentaire qui permet d'accéder aux processus qui s'exécutent dans un conteneur. Lorsque vous créez une définition de conteneur, vous spécifiez un ensemble de ports, un pour chaque processus qui utilise une connexion. Cela inclut notamment les éléments suivants :

  • Tous les processus du serveur de jeu qui seront exécutés simultanément dans le conteneur du serveur de jeu. Tous les processus du serveur de jeu doivent permettre aux clients du jeu de se connecter afin de rejoindre une session de jeu.

  • Tout processus d'un conteneur de support auquel une source externe doit se connecter. Par exemple, vous pouvez vous connecter à distance à une application de test.

Lorsque vous définissez les paramètres du port de conteneur orienté vers l'intérieur, vous les utilisez pour calculer les autorisations d'entrée orientées vers l'extérieur auxquelles les clients de jeu et les autres Amazon GameLift Servers applications peuvent se connecter. Amazon GameLift Serversgère également le mappage entre les autorisations entrantes et les ports de conteneurs individuels, ce qui permet aux joueurs d'accéder à une session de jeu dans un conteneur. Ce mappage interne fournit une couche de sécurité en protégeant vos serveurs de jeu contre tout accès direct aux ports de conteneurs. Vous avez la possibilité de personnaliser les paramètres des ports orientés vers l'extérieur d'une flotte selon vos besoins. Pour plus d'informations sur la configuration manuelle des ports des flottes de conteneurs, consultezConfiguration des connexions réseau.

Vous pouvez modifier les paramètres portuaires d'une flotte de conteneurs à tout moment. Cette modification nécessite le déploiement d'une mise à jour de la flotte.

Le schéma suivant illustre le rôle des connexions portuaires au sein d'une flotte de conteneurs. Comme indiqué, vous définissez des ports sur des conteneurs individuels et vous utilisez Amazon GameLift Servers ces informations pour configurer suffisamment de ports sur l'instance de flotte afin de les mapper à chaque port de conteneur. Les autorisations entrantes des instances orientées vers l'extérieur et les ports de connexion orientés vers l'intérieur sont calculés Amazon GameLift Servers pour votre flotte, sauf si vous choisissez de les définir manuellement.

Illustration des paramètres portuaires d'une flotte de conteneurs. Les mappages de ports permettent au trafic externe de se connecter à une instance de flotte et d'accéder à un conteneur individuel sur l'instance.

Enregistrement des conteneurs

Dans les parcs de conteneurs gérés, les flux de sortie standard (et d'erreur standard) sont capturés pour tous les conteneurs. Cela inclut les journaux de session de jeu de votre serveur de jeu. Vous pouvez configurer une flotte de conteneurs de manière à utiliser l'une des options suivantes pour gérer les flux de sortie :

  • Enregistrez la sortie du conteneur en tant que flux de CloudWatch journal Amazon. Chaque flux de journaux fait référence à l'identifiant de la flotte et au conteneur. Si vous choisissez cette option de journalisation pour la flotte, vous spécifiez un groupe de CloudWatch journaux qui organise tous les flux de journaux de la flotte. Vous pouvez ensuite utiliser les CloudWatch fonctionnalités pour rechercher et analyser les données des journaux selon vos besoins.

  • Enregistrez la sortie du conteneur dans un compartiment de stockage Amazon Simple Storage Service (Amazon S3). Vous pouvez consulter, partager ou télécharger le contenu selon vos besoins.

  • Désactivez la journalisation. Dans ce scénario, la sortie du conteneur n'est pas enregistrée.

Amazon GameLift Serversenvoie les données de journal des flottes de conteneurs gérées vers les services Amazon S3 de votre compte CloudWatch ou vers les services Amazon S3 de votre AWS compte. Pour consulter vos données, utilisez ces outils Console de gestion AWS ou d'autres outils en vous connectant à votre AWS compte et en utilisant les différents services. Vous étendez l'accès limité Amazon GameLift Servers pour effectuer ces actions en créant un rôle de service pour vos flottes de conteneurs.

Vous pouvez modifier la configuration de journalisation d'une flotte de conteneurs à tout moment. Cette modification nécessite le déploiement d'une mise à jour de la flotte.

Les flottes de conteneurs et GameLift Serveurs Amazon Agent

Une architecture de conteneur couramment utilisée exécute un seul processus dans chaque conteneur. Dans une flotte de Amazon GameLift Servers conteneurs, le groupe de conteneurs de serveurs de jeu possède un conteneur de serveurs de jeu, qui exécute un processus de serveur de jeu. Cette architecture permet de Amazon GameLift Servers gérer le cycle de vie d'un processus de serveur de jeu unique dans chaque groupe de conteneurs de serveurs de jeu sur une instance de flotte.

Si vous choisissez de créer une architecture de conteneur qui exécute plusieurs processus de serveur de jeu dans chaque groupe de conteneurs de serveurs de jeu, vous devez trouver un moyen de gérer le cycle de vie de tous les processus. Cela inclut des tâches telles que le démarrage, l'arrêt et le remplacement de processus selon les besoins, la gestion d'un nombre souhaité de processus à exécuter simultanément et la gestion des états de défaillance.

Vous pouvez choisir d'utiliser l'Amazon GameLift Serversagent pour ces tâches. Pour une flotte de conteneurs, l'agent implémente des instructions d'exécution qui spécifient quels exécutables exécuter (et combien), fournissent des paramètres de lancement et définissent des règles relatives à l'activation des serveurs de jeu. Par exemple, les instructions d'exécution peuvent indiquer à l'agent de gérer dix processus de serveur de jeu pour une utilisation en production et un processus de serveur de jeu avec des paramètres de lancement spéciaux pour les tests.

Pour utiliser l'Agent avec vos flottes de conteneurs, ajoutez-le à l'image de votre conteneur et incluez un ensemble d'instructions d'exécution. Pour plus d'informations sur l'agent, consultezCollaborez avec l'Amazon GameLift Serversagent.