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.
Personnalisez un GameLift Serveurs Amazon flotte de conteneurs
Les rubriques de cette section décrivent certaines fonctionnalités facultatives pour les conteneurs Amazon GameLift Servers gérés. Vous pouvez choisir d'utiliser l'une ou l'ensemble de ces fonctionnalités.
Définissez des limites de ressources
Pour chaque groupe de conteneurs, vous pouvez déterminer la quantité de mémoire et de puissance informatique dont le groupe de conteneurs a besoin pour exécuter son logiciel. Amazon GameLift Serverss'appuie sur ces informations pour gérer les ressources du groupe de conteneurs. Il utilise également ces informations pour calculer le nombre de groupes de conteneurs de serveurs de jeu qu'une image de flotte peut contenir. Vous pouvez également définir des limites pour des conteneurs individuels.
Vous pouvez définir une limite maximale de mémoire et de puissance de calcul pour un groupe de conteneurs. Par défaut, ces ressources sont partagées par tous les conteneurs du groupe. Vous pouvez personnaliser davantage la gestion des ressources en définissant des limites pour chaque conteneur.
- Définissez des limites facultatives pour les contenants individuels
-
La définition de limites de ressources spécifiques aux conteneurs vous permet d'exercer un meilleur contrôle sur la manière dont les conteneurs individuels peuvent utiliser les ressources du groupe. Si vous ne définissez pas de limites spécifiques aux conteneurs, tous les conteneurs du groupe partagent les ressources du groupe. Le partage offre une plus grande flexibilité pour utiliser les ressources là où elles sont nécessaires. Cela augmente également le risque que les processus entrent en concurrence les uns avec les autres et entraînent la défaillance des conteneurs.
Définissez l'une des
ContainerDefinitionpropriétés suivantes pour n'importe quel conteneur.-
MemoryHardLimitMebibytes— Définissez une limite de mémoire maximale pour le conteneur. Si le conteneur dépasse cette limite, il en résulte un redémarrage. -
Vcpulimite : réservez une quantité minimale de ressources vCPU pour l'usage exclusif du conteneur. Le contenant dispose toujours de la quantité réservée. Il peut dépasser ce minimum à tout moment, si des ressources supplémentaires sont disponibles. (1 024 unités de processeur équivalent à 1 processeur virtuel.)
-
- Définir des limites de ressources totales pour un groupe de conteneurs
-
Si vous définissez des limites pour des conteneurs individuels, vous devrez peut-être modifier la quantité de mémoire et de ressources vCPU dont le groupe de conteneurs a besoin. L'objectif est d'allouer suffisamment de ressources pour optimiser les performances des serveurs de jeu. Amazon GameLift Serversutilise ces limites pour calculer comment regrouper des groupes de conteneurs de serveurs de jeu sur une instance de flotte. Vous les utiliserez également lorsque vous choisirez un type d'instance pour une flotte de conteneurs.
Calculez la quantité totale de mémoire et de processeur virtuel nécessaires pour un groupe de conteneurs. Éléments à prendre en compte :
-
Quels sont les processus qui s'exécutent sur tous les conteneurs du groupe de conteneurs ? Additionnez les ressources nécessaires à ces processus. Prenez note de toutes les limites spécifiques au conteneur.
-
Combien de processus de serveur de jeu simultanés prévoyez-vous d'exécuter dans chaque groupe de conteneurs ? Vous pouvez le déterminer dans l'image du conteneur de votre serveur de jeu.
Sur la base de votre estimation des besoins en matière de groupes de conteneurs, définissez les
ContainerGroupDefinitionpropriétés suivantes :-
TotalMemoryLimitMebibytes— Définissez une limite de mémoire maximale pour le groupe de conteneurs. Tous les conteneurs du groupe partagent la mémoire allouée. Si vous définissez des limites de conteneurs individuels, la limite de mémoire totale doit être égale ou supérieure à la limite de mémoire spécifique au conteneur la plus élevée. -
TotalVcpuLimit— Définissez une limite maximale de processeurs virtuels pour le groupe de conteneurs. Tous les conteneurs du groupe partagent les ressources CPU allouées. Si vous définissez des limites de conteneurs individuels, la limite de processeur totale doit être égale ou supérieure à la somme de toutes les limites de processeur spécifiques au conteneur. Il est recommandé de définir cette valeur pour qu'elle double la somme des limites du processeur du conteneur.
-
- Exemple de scénario
-
Supposons que nous définissions un groupe de conteneurs de serveurs de jeu avec les trois conteneurs suivants :
-
Le conteneur A est le conteneur de notre serveur de jeu. Nous estimons les besoins en ressources d'un serveur de jeu à 512 Mo et 1 024 processeurs. Nous prévoyons de faire exécuter un processus serveur par le conteneur. Comme ce conteneur exécute nos logiciels les plus critiques, nous ne fixons aucune limite de mémoire ou de réserve de vCPU.
-
Le conteneur B est un conteneur de support dont les besoins en ressources sont estimés à 1 024 Mo et 1 536 processeurs. Nous avons défini une limite de mémoire de 2 048 Mo et une limite de réserve de 1 024 processeurs.
-
Le conteneur C est un autre conteneur de support. Nous avons défini une limite de mémoire dure de 512 Mo et une limite de réserve du processeur de 512 processeurs.
À l'aide de ces informations, nous avons défini les limites totales suivantes pour le groupe de conteneurs :
-
Limite de mémoire totale : 7680 Mo. Cette valeur dépasse la limite de mémoire la plus élevée (1 024 Mo).
-
Limite totale du processeur : 13312 processeurs. Cette valeur dépasse la somme de la limite du processeur (1024+512 CPU).
-
Comprenez l'allocation de mémoire d'une flotte de conteneurs
Lorsque vous Amazon GameLift Servers déployez des groupes de conteneurs sur une instance de flotte, la mémoire de l'instance n'est pas entièrement disponible pour vos conteneurs. Amazon GameLift Serversréserve une partie de la mémoire d'instance au système d'exploitation, à l'agent Amazon ECS et à d'autres services de support. La quantité de mémoire réservée varie en fonction de la mémoire totale du type d'instance. Comprendre cette surcharge vous permet de configurer les définitions de vos groupes de conteneurs afin d'utiliser pleinement les ressources disponibles.
Formule de surcharge de mémoire
Amazon GameLift Serverscalcule la mémoire disponible pour vos groupes de conteneurs en suivant les étapes suivantes :
-
Déterminez le pourcentage de mémoire tampon. Amazon GameLift Serversréserve un pourcentage de la mémoire totale de l'instance en fonction des niveaux suivants :
Mémoire d'instance (MiB) Pourcentage réservé Moins de 5 000 8 % 5 000 à 9 999 6 % 10 000 et 89 999 5 % 90 000 et 199 999 4 % 200 000 ou plus 3 % -
Calculez la mémoire disponible. Soustrayez la mémoire réservée de la mémoire totale de l'instance :
AvailableMemory = InstanceMemory - round(InstanceMemory × BufferPercentage) -
Soustrayez la mémoire du groupe de conteneurs par instance. Si votre flotte utilise un groupe de conteneurs par instance, soustrayez-le
TotalMemoryLimitMebibytesde la mémoire disponible. Un groupe de conteneurs par instance s'exécute sur chaque instance de flotte.AvailableMemory = AvailableMemory - PerInstanceCGD.TotalMemoryLimitMebibytes -
Tenez compte de la surcharge du routeur Log. Si la journalisation est activée pour la flotte, Amazon GameLift Servers réserve 50 Mo supplémentaires par groupe de conteneurs de serveurs de jeu pour le routeur de journalisation.
-
Calculez le nombre maximum de groupes de conteneurs de serveurs de jeu. Le nombre maximum de groupes de conteneurs de serveurs de jeu pouvant être placés sur l'instance en termes de mémoire est le suivant :
MaxGroupsByMemory = floor(AvailableMemory / (GameServerCGD.TotalMemoryLimitMebibytes + LogRouterMemory))Où
LogRouterMemoryest 50 Mo si la journalisation est activée, ou 0 si la journalisation est désactivée.
Note
La mémoire n'est qu'un des facteurs qui déterminent le nombre de groupes de conteneurs de serveurs de jeu pouvant contenir une instance. Amazon GameLift Serversprend également en compte la capacité du processeur virtuel et les ports de connexion disponibles, et utilise le minimum des trois calculs.
Exemple de calcul de mémoire
Prenons l'exemple d'une flotte utilisant une c5.xlarge instance (8 192 Mo de mémoire totale) dont la journalisation est activée :
-
La mémoire d'instance est de 8 192 Mo, ce qui se situe entre 5 000 et 9 999 (6 % de mémoire tampon)
-
Mémoire réservée = ronde (8 192 × 0,06) = 492 MiB
-
Mémoire disponible = 8 192 - 492 = 7 700 MiB
-
Si vous utilisez un groupe de conteneurs par instance
TotalMemoryLimitMebibytesde 512 : mémoire disponible = 7 700 - 512 = 7 188 MiB -
Si chaque groupe de conteneurs de serveurs
TotalMemoryLimitMebibytesde jeu en compte 1 024 : MaxGroupsByMemory = étage (7 188/(1 024 + 50)) = étage (7 188/1 074) = 6
Mémoire disponible par type d'instance
Le tableau suivant indique la mémoire totale et la mémoire disponible (après la mémoire Amazon GameLift Servers tampon) pour les types d'instances couramment utilisés. Utilisez ces valeurs comme point de départ lorsque vous configurez les définitions de vos groupes de conteneurs. La colonne Mémoire disponible indique la mémoire disponible pour tous les groupes de conteneurs de l'instance, avant de soustraire tout groupe de conteneurs par instance ou la surcharge du routeur de journaux.
| Type d’instance | Mémoire totale (MiB) | Pourcentage de mémoire tampon | Mémoire disponible (MiB) |
|---|---|---|---|
c5.large |
4 096 | 8 % | 3 768 |
c5.xlarge |
8 192 | 6 % | 7 700 |
c5.2xlarge |
16 384 | 5 % | 15 565 |
c5.4xlarge |
32 768 | 5 % | 31 130 |
c5.9xlarge |
73 728 | 5 % | 70 042 |
c5.12xlarge |
98 304 | 4 % | 94 372 |
c5.18xlarge |
147 456 | 4 % | 141 558 |
c5.24xlarge |
196 608 | 4 % | 188 744 |
m5.large |
8 192 | 6 % | 7 700 |
m5.xlarge |
16 384 | 5 % | 15 565 |
m5.2xlarge |
32 768 | 5 % | 31 130 |
m5.4xlarge |
65 536 | 5 % | 62 259 |
m5.8xlarge |
131 072 | 4 % | 125 829 |
m5.12xlarge |
196 608 | 4 % | 188 744 |
r5.large |
16 384 | 5 % | 15 565 |
r5.xlarge |
32 768 | 5 % | 31 130 |
r5.2xlarge |
65 536 | 5 % | 62 259 |
r5.4xlarge |
131 072 | 4 % | 125 829 |
c6i.large |
4 096 | 8 % | 3 768 |
c6i.xlarge |
8 192 | 6 % | 7 700 |
c6i.2xlarge |
16 384 | 5 % | 15 565 |
c6i.4xlarge |
32 768 | 5 % | 31 130 |
c6i.8xlarge |
65 536 | 5 % | 62 259 |
c7i.large |
4 096 | 8 % | 3 768 |
c7i.xlarge |
8 192 | 6 % | 7 700 |
c7i.2xlarge |
16 384 | 5 % | 15 565 |
c7i.4xlarge |
32 768 | 5 % | 31 130 |
c7i.8xlarge |
65 536 | 5 % | 62 259 |
m7i.large |
8 192 | 6 % | 7 700 |
m7i.xlarge |
16 384 | 5 % | 15 565 |
m7i.2xlarge |
32 768 | 5 % | 31 130 |
m7i.4xlarge |
65 536 | 5 % | 62 259 |
m7i.8xlarge |
131 072 | 4 % | 125 829 |
m7i.12xlarge |
196 608 | 4 % | 188 744 |
r7i.large |
16 384 | 5 % | 15 565 |
r7i.xlarge |
32 768 | 5 % | 31 130 |
r7i.2xlarge |
65 536 | 5 % | 62 259 |
r7i.4xlarge |
131 072 | 4 % | 125 829 |
c8a.medium |
2 048 | 8 % | 1 884 |
c8a.large |
4 096 | 8 % | 3 768 |
c8a.xlarge |
8 192 | 6 % | 7 700 |
c8a.2xlarge |
16 384 | 5 % | 15 565 |
c8i.large |
4 096 | 8 % | 3 768 |
c8i.xlarge |
8 192 | 6 % | 7 700 |
c8i.2xlarge |
16 384 | 5 % | 15 565 |
m8a.medium |
4 096 | 8 % | 3 768 |
m8a.large |
8 192 | 6 % | 7 700 |
m8a.xlarge |
16 384 | 5 % | 15 565 |
m8a.2xlarge |
32 768 | 5 % | 31 130 |
m8i.large |
8 192 | 6 % | 7 700 |
m8i.xlarge |
16 384 | 5 % | 15 565 |
m8i.2xlarge |
32 768 | 5 % | 31 130 |
c9g.medium |
2 048 | 8 % | 1 884 |
c9g.large |
4 096 | 8 % | 3 768 |
c9g.xlarge |
8 192 | 6 % | 7 700 |
c9g.2xlarge |
16 384 | 5 % | 15 565 |
m9g.large |
8 192 | 6 % | 7 700 |
m9g.xlarge |
16 384 | 5 % | 15 565 |
m9g.2xlarge |
32 768 | 5 % | 31 130 |
Pour les types d'instances non répertoriés ici, vous pouvez calculer la mémoire disponible à l'aide de la formule décrite ci-dessus. Consultez la documentation sur les types d'instance Amazon EC2 pour connaître la mémoire totale du type d'instance que vous avez choisi.
Configuration de l'accès au disque NVMe
Sur les instances de type D, le lecteur NVMe est automatiquement monté dans le /data répertoire lors du démarrage de l'hôte. Pour permettre aux conteneurs d'accéder au stockage SSD, définissez la ContainerGroupDefinition propriété suivante MountPoints :
-
InstancePath— Réglez pour/datafaire référence au lecteur NVMe monté automatiquement sur l'instance hôte. -
AccessLevel— Choisissez le niveau d'accès adapté aux besoins de votre conteneur (par exemple, READ_ONLY ou READ_WRITE). -
ContainerPath— (Facultatif) Spécifiez le chemin où le chemin de l'instance sera monté à l'intérieur du conteneur. S'il n'est pas spécifié, il utilise par défaut le chemin de l'instance.
Pour plus d'informations sur les points de montage, consultez ContainerMountPoint le manuel Amazon GameLift Servers API Reference.
Désignez les contenants essentiels
Pour un groupe de conteneurs par instance, désignez chaque conteneur comme essentiel ou non essentiel. Per-instance les groupes de conteneurs doivent comporter au moins un contenant de support essentiel. Le contenant essentiel fait le travail essentiel du groupe de conteneurs. On s'attend à ce que le contenant essentiel soit toujours en état de marche. En cas d'échec, l'ensemble du groupe de conteneurs redémarre.
Définissez la ContainerDefinition propriété Essential sur true ou false pour chaque conteneur.
Configuration des connexions réseau
Vous pouvez personnaliser l'accès au réseau pour permettre au trafic externe de se connecter à n'importe quel conteneur d'une flotte de conteneurs. Par exemple, vous devez établir des connexions réseau avec le conteneur qui exécute les processus de votre serveur de jeu, afin que les clients puissent rejoindre votre jeu et y jouer. Les clients de jeu se connectent aux serveurs de jeu à l'aide de ports et d'adresses IP.
Dans une flotte de conteneurs, la connexion entre un client et un serveur n'est pas directe. En interne, un processus dans un conteneur écoute sur un port à conteneurs. En externe, le trafic entrant se connecte à une instance de flotte via un port de connexion. Amazon GameLift Serversgère les mappages entre les ports de conteneur internes et les ports de connexion externes, afin que le trafic entrant soit acheminé vers le processus approprié sur l'instance. Pour récupérer les mappages de ports actuels pour un groupe de conteneurs spécifique, appelez l'DescribeContainerGroupPortMappingsopération. Pour plus d'informations sur l'affichage des mappages de ports, consultezAfficher les mappages des ports à conteneurs.
Amazon GameLift Serversfournit un niveau de contrôle supplémentaire pour vos connexions réseau. Chaque flotte de conteneurs dispose d'un paramètre d'autorisations entrantes, qui vous permet de contrôler l'accès à chaque port de connexion externe. Par exemple, vous pouvez supprimer les autorisations pour tous les ports de connexion afin de fermer tout accès aux conteneurs de la flotte.
Vous pouvez mettre à jour les autorisations entrantes, les ports de connexion et les ports à conteneurs d'une flotte.
Avertissement
Si vous fournissez une valeur personnalisée InstanceConnectionPortRange ou InstanceInboundPermissions si Amazon GameLift Servers vous ne gérez plus aucune des deux valeurs pour votre flotte. Vous devez définir les deux champs pour éviter tout comportement indéfini.
- Définir des plages de ports pour conteneurs
-
Configurez des plages de ports de conteneur dans le cadre de chaque définition de conteneur. Il s'agit d'un paramètre obligatoire pour la définition d'un groupe de conteneurs. Vous devez configurer suffisamment de ports pour prendre en charge tous les processus en cours d'exécution simultanée nécessitant un accès externe. Certains conteneurs n'auront pas besoin de ports.
Le conteneur de votre serveur de jeu, qui gère vos serveurs de jeu, a besoin d'un port pour chaque processus de serveur de jeu exécuté simultanément. Le processus du serveur de jeu écoute le port attribué et le signale àAmazon GameLift Servers.
- Définir des plages de ports de connexion
-
Configurez votre parc de conteneurs à l'aide d'un ensemble de ports de connexion. Les ports de connexion fournissent un accès externe aux instances de flotte qui gèrent vos conteneurs. Amazon GameLift Serversattribue des ports de connexion et les mappe aux ports de conteneurs selon les besoins.
Par défaut, Amazon GameLift Servers calcule le nombre de ports requis pour tous les groupes de conteneurs et définit une plage de ports pour les accueillir. Nous vous recommandons vivement d'utiliser des valeurs Amazon GameLift Servers calculées, qui sont mises à jour lorsque vous déployez des mises à jour d'une définition de groupe de conteneurs. Si vous devez personnaliser les plages de ports de connexion, suivez les instructions suivantes.
Lorsque vous créez une flotte de conteneurs, définissez une plage de ports de connexion (voir ContainerFleet:InstanceConnectionPortRange). Assurez-vous que la plage comporte suffisamment de ports pour correspondre à tous les ports de conteneurs définis pour tous les conteneurs des deux groupes de conteneurs de la flotte. Pour calculer le nombre minimal de ports de connexion nécessaires, utilisez la formule suivante :
[Total number of container ports defined for containers in the game server container group] * [Number of game server container groups per instance] + [Total number of container ports defined for containers in the per-instance container group]Il est recommandé de doubler le nombre minimum de ports de connexion.
Note
Le nombre de ports de connexion peut potentiellement limiter le nombre de groupes de conteneurs de serveurs de jeu par instance. Si une flotte ne dispose que de suffisamment de ports de connexion pour un groupe de conteneurs de serveurs de jeu par instance, elle ne Amazon GameLift Servers déploiera qu'un seul groupe de conteneurs de serveurs de jeu, même si les instances disposent d'une puissance de calcul suffisante pour plusieurs groupes de conteneurs de serveurs de jeu.
- Définir les autorisations de réception
Les autorisations entrantes contrôlent l'accès externe à une flotte de conteneurs en spécifiant les ports de connexion à ouvrir pour le trafic entrant. Vous pouvez utiliser ce paramètre pour activer et désactiver l'accès réseau d'une flotte selon vos besoins.
Par défaut, Amazon GameLift Servers calcule le nombre de ports requis pour tous les groupes de conteneurs et définit une plage de ports pour les accueillir. Nous vous recommandons vivement d'utiliser des valeurs Amazon GameLift Servers calculées, qui sont mises à jour lorsque vous déployez des mises à jour d'une définition de groupe de conteneurs. Si vous devez personnaliser les plages de ports de connexion, suivez les instructions suivantes.
Lorsque vous créez une flotte de conteneurs, définissez un ensemble d'autorisations entrantes (voir ContainerFleet:InstanceInboundPermissions). Les ports d'autorisation entrants doivent correspondre aux plages de ports de connexion de la flotte.
Note
Étant donné que les ports à conteneurs sont sélectionnés au hasard parmi les InstanceConnectionPortRange, afin de garantir la possibilité d'établir des connexions de session, tous les ports InstanceConnectionPortRange entrants doivent être couverts par des ports InstanceInboundPermissions
- Exemple de scénario
Cet exemple montre comment définir les trois propriétés de connexion réseau.
-
Le groupe de conteneurs de serveurs de jeu de notre flotte comprend 1 conteneur, qui exécute 1 processus de serveur de jeu.
Dans la définition du groupe de conteneurs du serveur de jeu, nous avons défini le
PortConfigurationparamètre de ce conteneur comme suit :"PortConfiguration": { "ContainerPortRanges": [ { "FromPort": 10, "ToPort": 20, "Protocol": "TCP"} ] } -
Notre flotte dispose également d'un groupe de conteneurs par instance avec 1 conteneur. Il dispose d'un processus qui nécessite un accès réseau. Dans la définition du conteneur par instance, nous définissons le
PortConfigurationparamètre de ce conteneur comme suit :"PortConfiguration": { "ContainerPortRanges": [ { "FromPort": 25, "ToPort": 25, "Protocol": "TCP"} ] }
-
Notre flotte est configurée avec 20 groupes de conteneurs de serveurs de jeu par instance de flotte. Sur la base de ces informations, nous pouvons utiliser la formule pour calculer le nombre de ports de connexion dont nous avons besoin :
-
Minimum : 21 ports [1 port conteneur de serveur de jeu * 20 groupes de conteneurs de serveurs de jeu par instance + 1 port conteneur par instance]
-
Meilleure pratique : 42 ports [ports minimum* 2]
Lors de la création de la flotte de conteneurs, nous définissons le
InstanceConnectionPortRangeparamètre comme suit :"InstanceConnectionPortRange": { "FromPort": 1010, "ToPort": 1071 } -
-
Nous voulons autoriser l'accès à tous les ports de connexion disponibles. Lors de la création de la flotte de conteneurs, nous définissons le
InstanceInboundPermissionsparamètre comme suit :"InstanceInboundPermissions": [ {"FromPort": 1010, "ToPort": 1071, "IpRange": "10.24.34.0/23", "Protocol": "TCP"} ]
-
Mettre en place des contrôles de santé pour les conteneurs
Un conteneur redémarre automatiquement s'il rencontre une panne de terminal et s'arrête de fonctionner. Si un conteneur est considéré comme essentiel, il invite l'ensemble du groupe de conteneurs à redémarrer.
Tous les conteneurs des serveurs de jeu sont automatiquement considérés comme essentiels. Les conteneurs de soutien peuvent être considérés comme essentiels, mais ils doivent être dotés d'un mécanisme permettant de signaler leur état de santé. Vous pouvez également définir des contrôles de santé pour les conteneurs de support non essentiels.
Vous pouvez définir des critères personnalisés supplémentaires pour mesurer l'état du conteneur et utiliser un bilan de santé pour tester ces critères. Pour configurer un contrôle de l'état d'un conteneur, vous pouvez le définir dans une image de conteneur Docker ou dans votre définition de conteneur. Si vous définissez un bilan de santé dans la définition du conteneur, il remplace tous les paramètres de l'image du conteneur.
Définissez les SupportContainerDefinition propriétés suivantes pour le contrôle de l'état d'un conteneur :
-
Command— Fournissez une commande qui vérifie certains aspects de l'état du conteneur. C'est vous qui décidez des critères à utiliser pour mesurer l'état de santé. La commande doit donner une valeur de sortie égale à 1 (mauvaise qualité) ou 0 (mauvaise qualité). -
StartPeriod— Spécifiez un délai initial avant que les échecs du bilan de santé ne commencent à compter. Ce délai donne au conteneur le temps d'amorcer ses processus. -
Interval— Décidez à quelle fréquence exécuter la commande de vérification de l'état de santé. À quelle vitesse souhaitez-vous détecter et résoudre une panne de conteneur ? -
Timeout— Décidez combien de temps vous devez attendre en cas de succès ou d'échec avant de réessayer la commande de contrôle de santé. Combien de temps faut-il pour exécuter la commande de vérification de l'état de santé ? -
Retries— Combien de fois la commande de contrôle de santé doit-elle être réessayée avant d'enregistrer un échec ?
Définition des dépendances des conteneurs
Au sein de chaque groupe de conteneurs, vous pouvez définir des dépendances entre les conteneurs en fonction de leur état. Une dépendance a un impact sur le moment où le conteneur dépendant peut démarrer ou s'arrêter en fonction de l'état d'un autre conteneur.
L'un des principaux cas d'utilisation des dépendances consiste à créer des séquences de démarrage et d'arrêt pour le groupe de conteneurs.
Par exemple, vous souhaiterez peut-être que le conteneur A démarre en premier et se termine correctement avant le démarrage des conteneurs B et C. Pour ce faire, créez d'abord une dépendance entre le conteneur B et le conteneur A, à la condition que le conteneur A se termine correctement. Créez ensuite une dépendance pour le conteneur C sur le conteneur A avec la même condition. Les séquences de démarrage se produisent dans l'ordre inverse de l'arrêt.
Configuration d'une flotte de conteneurs
Lorsque vous créez une flotte de conteneurs, prenez en compte les points de décision suivants. La plupart de ces points dépendent de l'architecture et de la configuration de votre conteneur.
- Décidez où vous souhaitez déployer votre flotte
-
En général, vous souhaitez déployer vos flottes géographiquement à proximité de vos joueurs afin de minimiser la latence. Vous pouvez déployer votre flotte de conteneurs sur tous ceux Région AWS qui le Amazon GameLift Servers souhaitent. Si vous souhaitez déployer le même serveur de jeu sur d'autres sites géographiques, vous pouvez ajouter des sites distants à la flotte, y compris Régions AWS des zones locales. Pour une flotte multi-sites, vous pouvez ajuster la capacité indépendamment de chaque emplacement de flotte. Pour plus d'informations sur les emplacements de flotte pris en charge, consultezGameLift Serveurs Amazon points de service.
Envisagez Balises de ping UDP de collecter des données de latence du réseau dans différentes zones géographiques afin d'anticiper la latence entre les appareils des joueurs et les emplacements potentiels de la flotte. Ces points de terminaison spéciaux acceptent les messages UDP au lieu des pings ICMP traditionnels, fournissant des mesures de latence précises pour vous aider à sélectionner les emplacements de flotte optimaux.
- Choisissez un type d'instance et une taille pour votre flotte
-
Amazon GameLift Serversprend en charge un large éventail de types d'instances Amazon EC2, qui peuvent toutes être utilisées avec une flotte de conteneurs. La disponibilité et le prix des types d'instances varient en fonction de l'emplacement. Vous pouvez consulter la liste des types d'instances pris en charge, filtrés par emplacement, dans la Amazon GameLift Servers console (sous Ressources, Quotas d'instances et de services).
Lorsque vous choisissez un type d'instance, considérez d'abord la famille d'instances. Les familles d'instances proposent différentes combinaisons de fonctionnalités de processeur, de mémoire, de stockage et de mise en réseau. Obtenez plus d'informations sur les familles d'instances
EC2. Au sein de chaque famille, vous pouvez choisir parmi différentes tailles d'instances. Lorsque vous sélectionnez une taille d'instance, tenez compte des points suivants : -
Quelle est la taille d'instance minimale qui peut prendre en charge votre charge de travail ? Utilisez ces informations pour éliminer tout type d'instance trop petit.
-
Quelles tailles de type d'instance conviennent le mieux à votre architecture de conteneurs ? Idéalement, vous devez choisir une taille qui peut accueillir plusieurs copies du groupe de conteneurs de votre serveur de jeu avec un minimum d'espace perdu.
-
Quelle granularité de mise à l'échelle convient le mieux à votre jeu ? La capacité de la flotte d'échelle implique l'ajout ou la suppression d'instances, et chaque instance représente la capacité d'héberger un nombre spécifique de sessions de jeu. Déterminez la capacité que vous souhaitez ajouter ou supprimer pour chaque instance. Si la demande des joueurs varie de plusieurs milliers d'une minute à l'autre, il peut être judicieux d'utiliser de très grandes instances pouvant héberger des centaines ou des milliers de sessions de jeu. En revanche, vous préférerez peut-être un contrôle de mise à l'échelle plus précis avec des types d'instances plus petits.
-
Des économies de coûts sont-elles possibles en fonction de la taille ? Vous constaterez peut-être que le coût de certains types d'instances varie en fonction de l'emplacement en raison de la disponibilité.
-
- Définissez d'autres paramètres de flotte facultatifs
Vous pouvez utiliser les fonctionnalités optionnelles suivantes lors de la configuration d'une flotte de conteneurs :
-
Configurez vos serveurs de jeu pour accéder à d'autres AWS ressources. Consultez Connectez votre GameLift Serveurs Amazon serveur de jeu hébergé vers un autre AWS resources.
-
Empêchez les sessions de jeu avec des joueurs actifs de se terminer prématurément lors d'un événement de réduction de la taille.
-
Limitez le nombre de sessions de jeu qu'une personne peut créer sur la flotte dans un laps de temps limité.
-