Paramètres de définition d’un service Amazon ECS
Une définition de service définit comment exécuter votre service Amazon ECS service. Les paramètres suivants peuvent être spécifiés dans une définition de service.
Type de lancement
launchType-
Type : String
Valeurs valides :
EC2|FARGATE|EXTERNALObligatoire : non
Type de lancement sur lequel vous pouvez exécuter votre service. Si aucun type de lancement n'est spécifié, the
capacityProviderStrategypar défaut est utilisé par défaut.Lorsque vous mettez à jour un service, ce paramètre déclenche un nouveau déploiement de service.
Si un
launchTypeest spécifié, le paramètrecapacityProviderStrategydoit être omis.
Stratégie de fournisseur de capacité
capacityProviderStrategy-
Type : tableau d'objets
Obligatoire : non
Stratégie du fournisseur de capacité à utiliser pour le service.
Lorsque vous mettez à jour un service, ce paramètre ne déclenche pas le déploiement d’un nouveau service.
Une stratégie de fournisseur de capacité consiste en un ou plusieurs fournisseurs de capacité avec le
baseetweightà leur attribuer. Un fournisseur de capacité doit être associé au cluster à utiliser dans une stratégie de fournisseur de capacité. L'API PutClusterCapacityProviders permet d'associer un fournisseur de capacité à un cluster. Seuls les fournisseurs de capacité ayant un statutACTIVEouUPDATINGpeuvent être utilisés.Si un
capacityProviderStrategyest spécifié, le paramètrelaunchTypedoit être omis. Lorsque nicapacityProviderStrategynilaunchTypene sont spécifiés, ledefaultCapacityProviderStrategypour le cluster est utilisé.Si vous souhaitez spécifier un fournisseur de capacité qui utilise un groupe Auto Scaling, le fournisseur de capacité doit déjà être créé. De nouveaux fournisseurs de capacité peuvent être créés avec l'opération d'API CreateCapacityProvider.
Pour utiliser un fournisseur de capacité AWS Fargate, spécifiez le fournisseur de capacité
FARGATEouFARGATE_SPOT. Les fournisseurs de capacité AWS Fargate sont accessibles pour tous les comptes et doivent seulement être associés à un cluster pour pouvoir être utilisés.L'opération d'API PutClusterCapacityProviders est utilisée pour mettre à jour la liste des fournisseurs de capacité disponibles pour un cluster après la création du cluster.
capacityProvider-
Type : String
Obligatoire : oui
Le nom abrégé ou l'Amazon Resource Name (ARN) complet du fournisseur de capacité.
weight-
Type : entier
Plage valide : entiers compris entre 0 et 1 000.
Obligatoire : non
La valeur de poids indique le pourcentage relatif du nombre total de tâches lancées qui utilisent le fournisseur de capacité spécifié.
Par exemple, supposons que vous avez une stratégie qui contient deux fournisseurs de capacité et que les deux ont un poids de un. Lorsque la base est satisfaite, les tâches sont réparties équitablement entre les deux fournisseurs de capacité. Dans la même logique, supposons que vous spécifiez un poids de 1 pour capacityProviderA et un poids de 4 pour capacityProviderB. Ensuite, pour chaque tâche exécutée avec capacityProviderA, quatre tâches utilisent capacityProviderB.
base-
Type : entier
Plage valide : entiers compris entre 0 et 100 000.
Obligatoire : non
La valeur de base indique le nombre minimum de tâches à exécuter sur le fournisseur de capacité spécifié. Une base ne peut être définie que pour un seul fournisseur de capacité dans une stratégie de fournisseur de capacité.
Définition de tâche
taskDefinition-
Type : chaîne
Obligatoire : non
L'Amazon Resource Name (ARN) complet ou
familyetrevision(family:revision) de la définition de tâche à exécuter dans votre service. Si unrevisionn'est pas spécifié, la dernière révisionACTIVEde la famille spécifiée est utilisée.Lorsque vous mettez à jour un service, ce paramètre déclenche un nouveau déploiement de service.
Une définition de tâche doit être spécifiée lors de l'utilisation du contrôleur de déploiement de mise à jour continue (
ECS).
Système d'exploitation de la plateforme
platformFamily-
Type : chaîne
Obligatoire : Conditionnelle
Par défaut : Linux
Ce paramètre est requis pour les services Amazon ECS services hébergés sur Fargate.
Ce paramètre est ignoré pour les services Amazon ECS services hébergés sur Amazon EC2.
Système d'exploitation des conteneurs qui exécutent le service. Les valeurs valides sont
LINUX,WINDOWS_SERVER_2019_FULL,WINDOWS_SERVER_2019_CORE,WINDOWS_SERVER_2022_FULLetWINDOWS_SERVER_2022_CORE.La valeur
platformFamilypour chaque tâche que vous spécifiez pour le service doit correspondre à la valeurplatformFamilydu service. Par exemple, si vous définissezplatformFamilysurWINDOWS_SERVER_2019_FULL, la valeurplatformFamilyde toutes les tâches doit êtreWINDOWS_SERVER_2019_FULL.
Version de plateforme
platformVersion-
Type : chaîne
Obligatoire : non
Version de la plateforme sur laquelle s'exécutent vos tâches dans le service. Une version de plateforme est spécifiée uniquement pour les tâches utilisant le type de lancement Fargate. Si vous ne spécifiez aucune valeur, la dernière version (
LATEST) est utilisée par défaut.Lorsque vous mettez à jour un service, ce paramètre déclenche un nouveau déploiement de service.
Les versions de plateforme AWS Fargate sont utilisées pour faire référence à un environnement d'exécution spécifique pour l'infrastructure de la tâche Fargate. Lorsque vous spécifiez
LATESTcomme version de plateforme lors de l'exécution d'une tâche ou de la création d'un service, vous obtenez la version de plateforme la plus récente pour vos tâches. Lorsque vous mettez à l'échelle votre service, ces tâches reçoivent la version de plateforme spécifiée dans le déploiement actuel du service. Pour de plus amples informations, consultez Versions de la plateforme Fargate pour Amazon ECS.Note
Les versions de plateforme ne sont pas spécifiées pour les tâches utilisant le type de lancement EC2.
Cluster
cluster-
Type : chaîne
Obligatoire : non
Nom court ou Amazon Resource Name (ARN) complet du cluster sur lequel exécuter votre service. Si vous ne spécifiez aucun cluster, le cluster
defaultest sélectionné.
Nom du service
serviceName-
Type : String
Obligatoire : oui
Nom de votre service. Il peut comporter jusqu'à 255 lettres (majuscules et minuscules), des chiffres, des tirets ou des traits de soulignement. Dans un cluster, les noms de service doivent être uniques, mais certains services peuvent avoir des noms similaires dans des clusters différents d'une même région ou de plusieurs régions.
Stratégie de planification
schedulingStrategy-
Type : String
Valeurs valides :
REPLICA|DAEMONObligatoire : non
Stratégie de planification à utiliser. Si aucune stratégie de planification n'est spécifiée, la stratégie
REPLICAest utilisée. Pour de plus amples informations, consultez Services Amazon ECS.Deux stratégies de planificateur de service sont disponibles :
-
REPLICA– La stratégie de planification des réplicas place et gère le nombre de tâches souhaité dans votre cluster. Par défaut, le planificateur de service répartit les tâches entre les zones de disponibilité. Vous pouvez utiliser des stratégies et des contraintes de placement des tâches afin de personnaliser la façon dont les tâches sont placées. Pour de plus amples informations, consultez Stratégie de planification de réplica. -
DAEMON– La stratégie de planification du démon déploie exactement une tâche sur chaque instance de conteneur active qui répond à toutes les contraintes de placement des tâches spécifiées dans votre cluster. Lors de l'utilisation de cette stratégie, il n'est pas nécessaire de spécifier un nombre de tâches souhaité, une stratégie de placement des tâches ou d'utiliser les politiques Service Auto Scaling. Pour de plus amples informations, consultez Stratégie de planification de démon.Note
Les tâches Fargate ne prennent pas en charge la stratégie de planification
DAEMON.
-
Nombre souhaité
desiredCount-
Type : entier
Obligatoire : non
Nombre d'instances de la définition de tâche spécifiée à placer et à exécuter dans votre service.
Lorsque vous mettez à jour un service, ce paramètre ne déclenche pas le déploiement d’un nouveau service.
Ce paramètre est requis si la stratégie de planification
REPLICAest utilisée. Si le service utilise la stratégie de planificationDAEMON, ce paramètre est facultatif.Dans le cadre de l’autoscaling de service, lorsque vous mettez à jour un service en cours d’exécution avec un
desiredCountinférieur au nombre de tâches actuellement en cours d’exécution, le service est réduit audesiredCountspécifié.
Configuration de déploiement
deploymentConfiguration-
Type : objet
Obligatoire : non
Paramètres de déploiement facultatifs qui contrôlent le nombre de tâches exécutées durant le déploiement et la commande d'arrêt et de démarrage des tâches.
Lorsque vous mettez à jour un service, ce paramètre ne déclenche pas le déploiement d’un nouveau service.
maximumPercent-
Type : entier
Obligatoire : non
Si un service utilise le type de déploiement de mise à jour propagée (
ECS), le paramètremaximumPercentreprésente une limite supérieure du nombre de tâches de votre service autorisées à avoir l'étatRUNNING,STOPPINGouPENDINGpendant un déploiement. Il est exprimé en tant que pourcentage dedesiredCountarrondi à la valeur inférieure la plus proche. Vous pouvez utiliser ce paramètre pour définir la taille des lots de déploiement. Par exemple, si votre service utilise le planificateur de servicesREPLICAet a undesiredCountde quatre tâches et une valeurmaximumPercentde 200 %, le planificateur démarre quatre nouvelles tâches avant d’arrêter les quatre tâches les plus anciennes. Cela s'applique à condition que les ressources de cluster nécessaires à cette opération soient disponibles. La valeurmaximumPercentpar défaut pour un service à l'aide du planificateur de serviceREPLICAest de 200 %.Le planificateur Amazon ECS utilise ce paramètre pour remplacer les tâches défectueuses en démarrant d’abord les tâches de remplacement, puis en arrêtant les tâches défectueuses, à condition que les ressources du cluster permettant de démarrer les tâches de remplacement soient disponibles. Pour de plus amples informations sur la manière dont le planificateur remplace les tâches défectueuses, consultez la section Services Amazon ECS.
Si votre service utilise le type de planificateur de service
DAEMON, lemaximumPercentdoit rester à 100 %. C’est la valeur par défaut.Le nombre maximum de tâches lors d'un déploiement est le
desiredCountmultiplié par lemaximumPercent/100, arrondi au nombre entier inférieur le plus proche.Si un service utilise les types de déploiement bleu/vert (
CODE_DEPLOY) ouEXTERNALet des tâches qui utilisent le type de lancement EC2, la valeur du pourcentage maximal est définie sur la valeur par défaut. Cette valeur sert à définir la limite supérieure du nombre de tâches du service qui restent dans l’étatRUNNINGpendant que les instances de conteneur sont dans l’étatDRAINING.Note
Vous ne pouvez pas spécifier de valeur
maximumPercentpersonnalisée pour un service qui utilise le type bleu/vert (CODE_DEPLOY) ouEXTERNALet dont les tâches utilisent EC2.Si un service utilise les types de déploiement bleu/vert (
CODE_DEPLOY) ouEXTERNALet des tâches qui utilisent Fargate, la valeur du pourcentage maximal n’est pas utilisée. La valeur est toujours renvoyée lors de la description de votre service. minimumHealthyPercent-
Type : entier
Obligatoire : non
Si un service utilise le type de déploiement de mise à jour propagée (
ECS),minimumHealthyPercentreprésente une limite inférieure du nombre de tâches de votre service qui doivent rester l'étatRUNNINGpendant un déploiement. Cela est exprimé en tant que pourcentage dedesiredCountarrondi à la valeur supérieure la plus proche. Vous pouvez utiliser ce paramètre pour procéder au déploiement sans avoir recours à une capacité de cluster supplémentaire.Par exemple, si votre service a un
desiredCountde quatre tâches, unminimumHealthyPercentde 50 % et unmaximumPercentde 100 %, le planificateur de service peut arrêter deux tâches existantes pour libérer de la capacité de cluster avant de lancer deux nouvelles tâches.Si certaines tâches sont défectueuses et si
maximumPercentne permet pas au planificateur Amazon ECS de démarrer des tâches de remplacement, le planificateur arrête les tâches défectueuses une par une, en utilisantminimumHealthyPercentcomme contrainte, afin de libérer de la capacité pour lancer des tâches de remplacement. Pour de plus amples informations sur la manière dont le planificateur remplace les tâches défectueuses, consultez la section Services Amazon ECS.Pour les services qui n'utilisent pas d'équilibreur de charge, il convient de noter ce qui suit :
-
Un service est considéré comme intègre si tous les conteneurs essentiels dans les tâches du service réussissent leurs surveillances d'état.
-
Si une tâche n'a pas de conteneurs essentiels avec une surveillance de l'état définie, le planificateur de service attend 40 secondes une fois qu'une tâche a atteint l'état
RUNNINGavant que celle-ci soit comptée dans le pourcentage minimal total d'intégrité. -
Si une tâche comporte un ou plusieurs conteneurs essentiels avec une surveillance de l'état définie, le planificateur de service attend que la tâche atteigne un état intègre avant de la compter dans le pourcentage minimum total d'intégrité. Une tâche est considérée comme intègre lorsque tous ses conteneurs essentiels ont réussi leurs surveillances d'état. La durée pendant laquelle le planificateur de service peut attendre est déterminée par les paramètres de surveillance de l'état du conteneur. Pour de plus amples informations, consultez Vérification de l'état.
Pour les services qui utilisent un équilibreur de charge, il convient de noter ce qui suit :
-
Si une tâche n'a pas de conteneurs essentiels avec une surveillance de l'état définie, le planificateur de services attend que la surveillance de l'état du groupe cible de l'équilibreur de charge retrouve un état intègre avant de compter la tâche dans le pourcentage minimal total d'intégrité.
-
Si une tâche possède un conteneur essentiel avec une surveillance de l'état définie, le planificateur de services attend que la tâche atteigne un état intègre et que la surveillance de l'état du groupe cible d'équilibrage de charge retrouve un état intègre avant de compter la tâche dans le pourcentage minimal total d'intégrité.
La valeur par défaut d'un service de réplica pour
minimumHealthyPercentest 100 %. La valeur par défautminimumHealthyPercentd'un service utilisant le planificateur de serviceDAEMONest 0 % pour l'AWS CLI, les kits SDK AWS et les API, et 50 % pour la AWS Management Console.Le nombre minimum de tâches saines lors d'un déploiement correspond à
desiredCountmultiplié parminimumHealthyPercent/100, arrondi au nombre entier supérieur le plus proche.Si un service utilise les types de déploiement bleu/vert (
CODE_DEPLOY) ouEXTERNALet exécute des tâches qui utilisent EC2, la valeur du pourcentage minimum sain est définie sur la valeur par défaut. Cette valeur sert à définir la limite inférieure du nombre de tâches du service qui restent dans l’étatRUNNINGpendant que les instances de conteneur sont dans l’étatDRAINING.Note
Vous ne pouvez pas spécifier de valeur
maximumPercentpersonnalisée pour un service qui utilise le type bleu/vert (CODE_DEPLOY) ouEXTERNALet dont les tâches utilisent EC2.Si un service utilise les types de déploiement bleu/vert (
CODE_DEPLOY) ouEXTERNALet exécute des tâches qui utilisent Fargate, le pourcentage minimum sain n’est pas utilisé, bien qu’il soit renvoyé lors de la description de votre service. -
Contrôleur de déploiement
deploymentController-
Type : objet
Obligatoire : non
Le contrôleur de déploiement à utiliser pour le service. Si aucun contrôleur de déploiement n'est spécifié, le contrôleur
ECSest utilisé. Pour de plus amples informations, consultez Services Amazon ECS.Lorsque vous mettez à jour un service, ce paramètre ne déclenche pas le déploiement d’un nouveau service.
type-
Type : String
Valeurs valides :
ECS|CODE_DEPLOY|EXTERNALObligatoire : oui
Type de contrôleur de déploiement à utiliser. Il existe trois types de contrôleurs de déploiement disponibles :
ECS-
Le type de déploiement de mise à jour propagée (
ECS) implique que le planificateur de service remplace la version de conteneur actuellement en cours d'exécution par la version la plus récente. Le nombre de conteneurs ajoutés ou supprimés par Amazon ECS du service lors de la propagation des mises à jour est contrôlé en ajustant le nombre minimum et maximum de tâches saines lors d'un déploiement de service autorisé, tel que spécifié dans le deploymentConfiguration. CODE_DEPLOY-
Le type de déploiement bleu/vert (
CODE_DEPLOY) utilise le modèle de déploiement bleu/vert à technologie CodeDeploy, ce qui vous permet de vérifier un nouveau déploiement d'un service avant de lui envoyer un trafic de production. EXTERNAL-
Utilisez le type de déploiement externe lorsque vous souhaitez utiliser n'importe quel contrôleur de déploiement tiers pour contrôler complètement le processus de déploiement d'un service Amazon ECS.
Placement des tâches
placementConstraints-
Type : tableau d'objets
Obligatoire : non
Tableau d'objets de contraintes de placement à utiliser pour les tâches de votre service. Vous pouvez spécifier un maximum de 10 contraintes par tâche. Cette limite inclut les contraintes de la définition de tâche et celles spécifiées lors de l'exécution. Si vous utilisez Fargate, les contraintes de placement des tâches ne sont pas prises en charge.
Lorsque vous mettez à jour un service, ce paramètre ne déclenche pas le déploiement d’un nouveau service.
type-
Type : chaîne
Obligatoire : non
Type de contrainte. Utilisez
distinctInstancepour vous assurer que chaque tâche d'un groupe particulier s'exécute sur une instance de conteneur différente. UtilisezmemberOfpour limiter la sélection à un groupe de candidats valides. La valeurdistinctInstancen'est pas prise en charge dans les définitions de tâche. expression-
Type : chaîne
Obligatoire : non
Expression de langage de requête de cluster à appliquer à la contrainte. Vous ne pouvez pas spécifier d'expression si le type de contrainte est
distinctInstance. Pour de plus amples informations, consultez Création d’expressions pour définir des instances de conteneur pour les tâches Amazon ECS.
placementStrategy-
Type : tableau d'objets
Obligatoire : non
Objets de stratégie de placement à utiliser pour les tâches de votre service. Vous pouvez spécifier jusqu'à quatre règles de stratégie par service.
Lorsque vous mettez à jour un service, ce paramètre ne déclenche pas le déploiement d’un nouveau service.
type-
Type : String
Valeurs valides :
random|spread|binpackObligatoire : non
Type de stratégie de placement. La stratégie de placement
randomplace les tâches de façon aléatoire sur les candidats disponibles. La stratégie de placementspreadrépartit le placement sur les candidats disponibles de façon uniforme en fonction du paramètre dufield. La stratégiebinpackplace les tâches sur les candidats disponibles qui ont la quantité disponible la moins élevée de la ressource spécifiée avec le paramètrefield. Par exemple, si vous utilisez un BinPack sur la mémoire, une tâche est placée sur l'instance avec la quantité la moins élevée de mémoire restante, mais tout de même suffisante pour exécuter la tâche. field-
Type : chaîne
Obligatoire : non
Champ sur lequel appliquer la stratégie de placement. Pour la stratégie de placement
spread, les valeurs valides sontinstanceId(ouhost, qui produit le même effet), ou toute plateforme ou tout attribut personnalisé appliqué à une instance de conteneur, commeattribute:ecs.availability-zone. Pour la stratégie de placementbinpack, les valeurs valides sontcpuetmemory. Pour la stratégie de placementrandom, ce champ n'est pas utilisé.
Étiquettes
-
Type : tableau d'objets
Obligatoire : non
Métadonnées que vous appliquez au service pour faciliter le classement et l'organisation. Chaque étiquette est constituée d'une clé et d'une valeur facultative que vous définissez. Lorsqu'un service est supprimé, les étiquettes sont également supprimées. Un maximum de 50 balises peut être appliqué au service. Pour de plus amples informations, consultez Balisage des ressources Amazon ECS.
Lorsque vous mettez à jour un service, ce paramètre ne déclenche pas le déploiement d’un nouveau service.
key-
Type : String
Contraintes de longueur : Longueur minimum de 1. Longueur maximale de 128.
Obligatoire : non
Partie d'une paire clé-valeur qui constitue une étiquette. Une clé est une étiquette générale qui fait office de catégorie pour les valeurs d'étiquette plus spécifiques.
value-
Type : String
Contraintes de longueur : Longueur minimum de 0. Longueur maximale de 256.
Obligatoire : non
Partie facultative d'une paire clé-valeur qui constitue une étiquette. Une valeur agit comme un descripteur au sein d'une catégorie d'étiquette (clé).
-
Type : booléen
Valeurs valides :
true|falseObligatoire : non
Spécifie si utiliser les identifications gérées par Amazon ECS pour les tâches dans le service. La valeur par défaut est
falsesi aucune valeur n'est spécifiée. Pour de plus amples informations, consultez Mise à jour des balises pour la facturation.Lorsque vous mettez à jour un service, ce paramètre ne déclenche pas le déploiement d’un nouveau service.
propagateTags-
Type : String
Valeurs valides :
TASK_DEFINITION|SERVICEObligatoire : non
Indique s'il faut copier les étiquettes de la définition de tâche ou du service dans les tâches du service. Si aucune valeur n'est spécifiée, les étiquettes ne sont pas copiées. Les étiquettes ne peuvent être copiées dans les tâches du service que lors de la création du service. Pour ajouter des balises à une tâche après la création du service ou de la tâche, utilisez l'action d'API
TagResource.Lorsque vous mettez à jour un service, ce paramètre ne déclenche pas le déploiement d’un nouveau service.
Configuration réseau
networkConfiguration-
Type : objet
Obligatoire : non
Configuration réseau du service. Ce paramètre est obligatoire pour les définitions de tâches qui utilisent le mode réseau
awsvpcafin de recevoir leur propre interface réseau Elastic. Il n'est pas pris en charge avec les autres modes réseau. Si vous utilisez Fargate, le mode réseauawsvpcest requis. Pour plus d’informations sur la mise en réseau pour EC2, consultez la section Options de mise en réseau des tâches Amazon ECS pour EC2. Pour plus d’informations sur la mise en réseau pour Fargate, consultez la section Options de mise en réseau des tâches Amazon ECS pour Fargate.Lorsque vous mettez à jour un service, ce paramètre déclenche un nouveau déploiement de service.
awsvpcConfiguration-
Type : objet
Obligatoire : non
Objet représentant les sous-réseaux et les groupes de sécurité pour une tâche ou un service.
subnets-
Type : tableau de chaînes
Obligatoire : oui
Sous-réseaux associés à la tâche ou au service. Il existe une limite de 16 sous-réseaux pouvant être spécifiés selon
awsvpcConfiguration. securityGroups-
Type : tableau de chaînes
Obligatoire : non
Groupes de sécurité associés à la tâche ou au service. Si vous ne spécifiez pas de groupe de sécurité, c'est le groupe de sécurité par défaut du VPC qui est utilisé. Il existe une limite de cinq groupes de sécurité pouvant être spécifiés selon
awsvpcConfiguration. assignPublicIP-
Type : String
Valeurs valides :
ENABLED|DISABLEDObligatoire : non
Si l'interface réseau Elastic de la tâche reçoit une adresse IP publique ou non. Si aucune valeur n'est spécifiée, la valeur par défaut de
DISABLEDest utilisée.
healthCheckGracePeriodSeconds-
Type : entier
Obligatoire : non
La durée, en secondes, pendant laquelle le planificateur de service Amazon ECS ignore les surveillances de l’état défectueuses d’Elastic Load Balancing, de VPC Lattice et des conteneurs après le premier démarrage d’une tâche. Si vous ne spécifiez aucune valeur de délai de grâce pour la surveillance de l’état, la valeur par défaut 0 est utilisée. Si vous n’utilisez aucune des surveillances de l’état, cela signifie que
healthCheckGracePeriodSecondsn’est pas utilisé.Si les tâches de votre service mettent du temps à démarrer et à répondre, vous pouvez spécifier une période de grâce pour la surveillance de l’état pouvant aller jusqu’à 2 147 483 647 secondes (environ 69 ans). Pendant ce temps, le planificateur du service Amazon ECS ignore le statut de la surveillance de l’état. La période de grâce peut empêcher le planificateur de service de marquer les tâches comme étant non saines et de les arrêter avant qu'elles aient le temps de s'exécuter.
Lorsque vous mettez à jour un service, ce paramètre ne déclenche pas le déploiement d’un nouveau service.
loadBalancers-
Type : tableau d'objets
Obligatoire : non
Un objet d'équilibreur de charge qui représente l'équilibreur de charge à utiliser avec votre service. Pour les services qui utilisent un équilibreur de charge Application Load Balancer ou un Network Load Balancer, il existe une limite de cinq groupes cibles que vous pouvez attacher à un service.
Lorsque vous mettez à jour un service, ce paramètre déclenche un nouveau déploiement de service.
Une fois que vous avez créé un service, la configuration de l'équilibreur de charge ne peut pas être modifiée à partir de la AWS Management Console. Vous pouvez utiliser le AWS Copilot, AWS CloudFormation, AWS CLI ou le kit SDK pour modifier la configuration de l'équilibreur de charge uniquement pour le contrôleur de déploiement roulant
ECS, pas pour AWS CodeDeploy bleu/vert ou extérieur. Lorsque vous ajoutez, mettez à jour ou supprimez une configuration d'équilibreur de charge, Amazon ECS lance un nouveau déploiement avec la configuration mise à jour d'Elastic Load Balancing. Cela entraîne l'enregistrement et le désenregistrement des tâches auprès des équilibreurs de charge. Nous vous recommandons de vérifier cela dans un environnement de test avant de mettre à jour la configuration d'Elastic Load Balancing. Pour plus d'informations sur la façon de modifier la configuration, consultez UpdateService dans la Référence de l'API Amazon Elastic Container Service.Pour les équilibreurs de charge Application Load Balancer et les Network Load Balancer, cet objet doit contenir l'ARN du groupe cible de l'équilibreur de charge, le nom du conteneur (tel qu'il apparaît dans une définition de conteneur) et le port du conteneur pour permettre l'accès à partir de l'équilibreur de charge. Lorsqu'une tâche de ce service est placée sur une instance de conteneur, la combinaison d'instance et de port de conteneur est enregistrée comme cible dans le groupe cible spécifié.
targetGroupArn-
Type : chaîne
Obligatoire : non
Amazon Resource Name (ARN) complet du groupe cible Elastic Load Balancing associés à un service.
L'ARN d'un groupe cible n'est spécifié que si vous utilisez un Application Load Balancer ou un Network Load Balancer.
loadBalancerName-
Type : chaîne
Obligatoire : non
Nom de l'équilibreur de charge à associer au service.
Si vous utilisez un Application Load Balancer ou un Network Load Balancer, omettez le paramètre de nom de l'équilibreur de charge.
containerName-
Type : chaîne
Obligatoire : non
Nom du conteneur (tel qu'il apparaît dans une définition de conteneur) à associer à l'équilibreur de charge.
containerPort-
Type : entier
Obligatoire : non
Port du conteneur à associer à l'équilibreur de charge. Ce port doit correspondre à un élément
containerPortdans la définition de tâche utilisée par les tâches du service. Pour les tâches qui utilisent EC2, l’instance de conteneur doit autoriser le trafic entrant sur lehostPortdu mappage de port.
role-
Type : chaîne
Obligatoire : non
Nom abrégé ou ARN complet du rôle IAM qui permet à Amazon ECS d'adresser des appels à votre équilibreur de charge en votre nom. Ce paramètre est uniquement autorisé si vous utilisez un équilibreur de charge avec un seul groupe cible pour votre service, et si votre définition de tâche n'utilise pas le mode réseau
awsvpc. Si vous spécifiez le paramètrerole, vous devez également spécifier un objet d'équilibreur de charge avec le paramètreloadBalancers.Lorsque vous mettez à jour un service, ce paramètre ne déclenche pas le déploiement d’un nouveau service.
Si le rôle spécifié possède un chemin d'accès autre que
/, vous devez spécifier l'ARN de rôle complet (solution recommandée) ou ajouter ce chemin d'accès comme préfixe du nom de rôle. Par exemple, si un rôle nommébara le chemin d'accès/foo/, vous devez spécifier/foo/barcomme nom du rôle. Pour plus d'informations, consultez Noms conviviaux et chemins dans le Guide de l'utilisateur IAM.Important
Si votre compte a déjà créé le rôle lié à un service Amazon ECS service, ce rôle est utilisé par défaut pour votre service, sauf si vous spécifiez un rôle ici. Le rôle lié à un service est obligatoire si votre définition de tâche utilise le mode réseau awsvpc, auquel cas vous ne devez pas spécifier de rôle ici. Pour de plus amples informations, consultez Utilisation des rôles liés à un service pour Amazon ECS.
serviceConnectConfiguration-
Type : objet
Obligatoire : non
Cette configuration permet à ce service de découvrir des services et de s'y connecter, et, inversement, elle permet à d'autres services au sein d'un espace de noms de découvrir ce service et de s'y connecter.
Lorsque vous mettez à jour un service, ce paramètre déclenche un nouveau déploiement de service.
Pour de plus amples informations, consultez Use Service Connect to connect Amazon ECS services with short names.
enabled-
Type : booléen
Obligatoire : oui
Spécifie s'il faut utiliser Service Connect avec ce service.
namespace-
Type : chaîne
Obligatoire : non
Nom court ou complet de l'Amazon Resource Name (ARN) de l'espace de noms AWS Cloud Map à utiliser avec Service Connect. L'espace de noms doit se trouver dans la même Région AWS que le service Amazon ECS et le cluster. Le type d'espace de noms n'a aucune incidence sur Service Connect. Pour plus d'informations sur AWS Cloud Map, consultez Utilisation des services dans le Guide du développeur AWS Cloud Map.
services-
Type : tableau d'objets
Obligatoire : non
Tableau d'objets de service Service Connect. Il s'agit de noms et d'alias (également appelés points de terminaison) utilisés par d'autres services Amazon ECS pour se connecter à ce service.
Ce champ n'est pas obligatoire pour un service Amazon ECS « client » membre d'un espace de noms uniquement pour se connecter à d'autres services au sein de cet espace de noms. Par exemple, une application frontale qui accepte les demandes entrantes provenant d'un équilibreur de charge attaché au service ou par d'autres moyens.
Un objet sélectionne un port dans la définition de la tâche, attribue un nom au service AWS Cloud Map, ainsi qu'un tableau d'alias (appelés également points de terminaison) et de ports permettant aux applications clientes de faire référence à ce service.
portName-
Type : String
Obligatoire : oui
Le
portNamedoit correspondre aunamede l'un desportMappingsde tous les conteneurs dans la définition de tâche de ce service Amazon ECS. discoveryName-
Type : chaîne
Obligatoire : non
Le
discoveryNamecorrespond au nom du nouveau service AWS Cloud Map créé par Amazon ECS pour ce service Amazon ECS. Ce nom doit être unique dans l'espace de noms AWS Cloud Map.Si ce champ n'est pas spécifié,
portNameest utilisé. clientAliases-
Type : tableau d'objets
Obligatoire : non
Liste des alias clients pour ce service Service Connect. Vous les utilisez pour attribuer des noms qui peuvent être utilisés par les applications clientes. Le nombre maximum d'alias clients dont vous pouvez disposer dans cette est de 1.
Chaque alias (« point de terminaison ») est un nom DNS et un numéro de port que les autres services Amazon ECS (« clients ») peuvent utiliser pour se connecter à ce service.
Chaque nom et chaque combinaison de port doivent être uniques dans l'espace de noms.
Ces noms sont configurés dans chaque tâche du service client, et non dans AWS Cloud Map. Les demandes DNS visant à résoudre ces noms ne quittent pas la tâche et ne sont pas prises en compte dans le quota de demandes DNS par seconde par l'interface réseau Elastic.
port-
Type : entier
Obligatoire : oui
Numéro de port d'écoute du proxy Service Connect. Ce port est disponible dans toutes les tâches du même espace de noms.
Pour éviter de modifier vos applications dans les services clients Amazon ECS, attribuez-lui le même port que celui que l'application client utilise par défaut.
dnsName-
Type : chaîne
Obligatoire : non
Le
dnsNameest le nom que vous utilisez dans les applications des tâches client pour vous connecter à ce service. Le nom doit être une étiquette DNS valide.Si ce champ n'est pas spécifié, la valeur par défaut est
discoveryName.namespace. Si lediscoveryNamen'est pas spécifié, leportNameissu de la définition de la tâche est utilisé.Pour éviter de modifier vos applications dans les services clients Amazon ECS, attribuez-lui le même nom que celui que l'application client utilise par défaut. Par exemple, quelques noms courants sont
database,dbou le nom en minuscules d'une base de données, commemysqlouredis.
ingressPortOverride-
Type : entier
Obligatoire : non
(Facultatif) Numéro de port que le proxy Service Connect utilise pour écouter.
Utilisez la valeur de ce champ pour contourner le proxy pour le trafic sur le numéro de port spécifié dans le
portMappingnommé de la définition de tâche de cette application, puis utilisez-la dans les groupes de sécurité de votre Amazon VPC pour autoriser le trafic vers le proxy de ce service Amazon ECS.En mode
awsvpc, la valeur par défaut est le numéro du port du conteneur spécifié dans leportMappingnommé dans la définition de tâche de cette application. En modebridge, la valeur par défaut correspond au port éphémère du proxy Service Connect. logConfiguration-
Type : objet LogConfiguration
Obligatoire : non
Cela définit l'endroit où les journaux du proxy Service Connect sont publiés. Utilisez les journaux pour le débogage lors d'événements inattendus. Cette configuration définit le paramètre
logConfigurationdans le conteneur de proxy Service Connect pour chaque tâche de ce service Amazon ECS. Le conteneur de proxy n'est pas spécifié dans la définition de tâche.Nous vous recommandons d'utiliser la même configuration de journal que les conteneurs d'applications de la définition de tâche pour ce service Amazon ECS. Pour FireLens, il s'agit de la configuration du journal du conteneur d'application. Ce n'est pas le conteneur du routeur de journal FireLens qui utilise l'image du conteneur
fluent-bitoufluentd.
serviceRegistries-
Type : tableau d'objets
Obligatoire : non
Détails de la configuration de la découverte de service pour votre service. Pour de plus amples informations, consultez Utilisation de la découverte de service pour connecter les services Amazon ECS avec des noms DNS.
Lorsque vous mettez à jour un service, ce paramètre déclenche un nouveau déploiement de service.
registryArn-
Type : chaîne
Obligatoire : non
Amazon Resource Name (ARN) du registre de service. Le registre de service actuellement pris en charge est AWS Cloud Map. Pour plus d'informations, consultez Utilisation des services dans le Guide du développeur AWS Cloud Map.
port-
Type : entier
Obligatoire : non
Valeur de port utilisée si votre service de découverte de service a spécifié un registre SRV. Ce champ est obligatoire si le mode réseau
awsvpcet les registres SRV sont utilisés. containerName-
Type : chaîne
Obligatoire : non
La valeur du nom du conteneur, déjà spécifiée dans la définition de tâche, à utiliser pour votre service de découverte de service. Cette valeur est spécifiée dans la définition de tâche. Si la définition de tâche que votre tâche de service spécifie utilise le mode réseau
bridgeouhost, vous devez spécifier une combinaisoncontainerNameetcontainerPortà partir de la définition de tâche. Si la définition de tâche spécifiée par votre tâche de service utilise le mode réseauawsvpcet qu'un registre DNS de type SRV est utilisé, vous devez spécifier une combinaisoncontainerNameetcontainerPortou une valeurport, mais pas les deux. containerPort-
Type : entier
Obligatoire : non
La valeur du port à utiliser pour votre service de découverte de service. Cette valeur est spécifiée dans la définition de tâche. Si la définition de tâche spécifiée par votre tâche de service utilise le mode réseau
bridgeouhost, vous devez spécifier une combinaisoncontainerNameetcontainerPortà partir de la définition de tâche. Si la définition de tâche spécifiée par votre tâche de service utilise le mode réseauawsvpcet qu'un registre DNS de type SRV est utilisé, vous devez spécifier une combinaisoncontainerNameetcontainerPortou une valeurport, mais pas les deux.
Jeton client
clientToken-
Type : chaîne
Obligatoire : non
L'identifiant unique, sensible à la casse, que vous devez fournir afin de garantir l'idempotence de la demande. Il peut comporter jusqu'à 32 ASCII caractères.
Rééquilibrage des zones de disponibilité
availabilityZoneRebalancing-
Type : chaîne
Obligatoire : non
Indique si le service utilise le rééquilibrage des zones de disponibilité. Les valeurs valides sont
ENABLEDetDISABLED.Lorsque vous mettez à jour un service, ce paramètre ne déclenche pas le déploiement d’un nouveau service.
Comportement par défaut :
-
Pour les nouveaux services : si aucune valeur n’est spécifiée, la valeur par défaut est
DISABLED. -
Pour les services existants : si aucune valeur n’est spécifiée, Amazon ECS définit par défaut la valeur existante. Si aucune valeur n’a été définie précédemment, Amazon ECS définit la valeur sur
DISABLED.
Pour plus d’informations sur les zones de disponibilité, consultez la section Balancing an Amazon ECS service across Availability Zones.
-
Configurations de volume
volumeConfigurations-
Type : objet
Obligatoire : non
La configuration qui sera utilisée pour créer des volumes pour les tâches gérées par le service. Seuls les volumes marqués comme
configuredAtLaunchdans la définition de tâche peuvent être configurés à l’aide de cet objet.Lorsque vous mettez à jour un service, ce paramètre déclenche un nouveau déploiement de service.
Cet objet est requis pour associer des volumes Amazon EBS à des tâches gérées par un service. Pour de plus amples informations, consultez Utilisation des volumes Amazon EBS avec Amazon ECS.
name-
Type : String
Obligatoire : oui
Le nom d’un volume configuré lors de la création ou de la mise à jour d’un service. Jusqu’à 255 lettres (majuscules et minuscules), chiffres, traits de soulignement (
_) et traits d’union (-) sont autorisés. Cette valeur doit correspondre au nom du volume spécifié dans la définition de tâche. managedEBSVolume-
Type : objet
Obligatoire : non
La configuration de volume utilisée pour créer des volumes Amazon EBS attachés à des tâches gérées par un service lors de sa création ou de sa mise à jour. Un seul volume est joint par tâche.
encrypted-
Type : booléen
Obligatoire : non
Valeurs valides :
true|falseSpécifie s’il faut activer le chiffrement sur chaque volume Amazon EBS créé. Si vous avez activé le chiffrement Amazon EBS par défaut pour une Région AWS particulière de votre Compte AWS, mais que vous avez défini ce paramètre sur
false, ce paramètre sera ignoré et les volumes seront chiffrés à l’aide de la clé KMS spécifiée pour le chiffrement par défaut. Pour plus d’informations sur le chiffrement Amazon EBS par défaut, consultez la section Activation du chiffrement Amazon EBS par défaut dans le Guide de l’utilisateur Amazon EBS. Pour plus d’informations sur le chiffrement des volumes Amazon EBS associés aux tâches Amazon ECS, consultez la section Chiffrement des données stockées dans les volumes Amazon EBS associés aux tâches Amazon ECS. kmsKeyId-
Type : chaîne
Obligatoire : non
L’identifiant de la clé AWS Key Management Service (AWS KMS) à utiliser pour le chiffrement Amazon EBS. Si
kmsKeyIdest spécifié, l'état chiffré doit êtretrue.La clé spécifiée à l’aide de ce paramètre remplace la clé par défaut d’Amazon EBS ou toute clé KMS au niveau du cluster pour le chiffrement du stockage géré Amazon ECS que vous avez éventuellement spécifiée. Pour de plus amples informations, consultez Chiffrement des données stockées dans les volumes Amazon EBS associés aux tâches Amazon ECS.
Vous pouvez spécifier la clé KMS en utilisant l’un des éléments suivants :
-
ID de clé : par exemple,
1234abcd-12ab-34cd-56ef-1234567890ab. -
Alias de clé : par exemple,
alias/ExampleAlias. -
ARN de clé : par exemple,
arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab. -
ARN d’alias : par exemple,
arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.
Important
AWS authentifie la clé KMS de manière asynchrone. Par conséquent, si vous spécifiez un ID, un alias ou un ARN qui n’est pas valide, l’action peut sembler réussir, mais elle finira par échouer. Pour plus d’informations, consultez la section Résolution des problèmes liés à l’attachement de volume Amazon EBS.
-
volumeType-
Type : chaîne
Obligatoire : non
Valeurs valides :
gp2|gp3|io1|io2|sc1|st1|standardLe type de volume Amazon EBS. Pour plus d’informations sur les types de volumes, consultez la section Types de volumes Amazon EBS dans le Guide de l’utilisateur Amazon EBS. Le type de volume par défaut est
gp3.Note
Le type de volume
standardn’est pas pris en charge pour les tâches Fargate. sizeInGiB-
Type : entier
Obligatoire : non
Plage valide : entiers compris entre 1 et 16 384.
La taille du volume EBS en gibioctets (Gio). Si vous ne fournissez pas d’ID d’instantané pour configurer un volume à joindre, vous devez fournir une valeur de taille. Si vous configurez un volume pour l’attachement à l’aide d’un instantané, la valeur par défaut est la taille de l’instantané. Vous pouvez ensuite spécifier une taille supérieure ou égale à la taille de l’instantané.
Pour les types de volume
gp2etgp3, la plage valide est comprise entre 1 et 16 384.Pour les types de volume
io1etio2, la plage valide est comprise entre 4 et 16 384.Pour les types de volume
st1etsc1, la plage valide est comprise entre 125 et 16 384.Pour les types de volume
standard, la plage valide est comprise entre 1 et 1 024. snapshotId-
Type : chaîne
Obligatoire : non
L’ID de l’instantané d’un volume Amazon EBS existant qu’Amazon ECS utilise pour créer de nouveaux volumes à attacher. Vous devez spécifier
snapshotIdousizeInGiB. volumeInitializationRate-
Type : entier
Obligatoire : non
Le débit, en Mio/s, auquel les données sont extraites d’un instantané d’un volume Amazon EBS existant afin de créer des volumes à attacher. Cette propriété ne peut être spécifiée que si vous spécifiez un
snapshotId. Pour plus d’informations sur ce taux d’initialisation de volume, y compris la gamme de taux pris en charge pour l’initialisation, consultez la section Initialisation des volumes Amazon EBS dans le Guide de l’utilisateur Amazon EBS. iops-
Type : entier
Obligatoire : non
Le nombre d'opérations d'E/S par seconde (IOPS). Pour les volumes
gp3,io1etio2, cela représente le nombre d'IOPS provisionnés pour le volume. Pour les volumesgp2, cette valeur représente les performances de base du volume et la vitesse à laquelle le volume accumule des crédits d’E/S pour le débordement. Ce paramètre est requis pour les volumesio1etio2. Ce paramètre n’est pas pris en charge pour les volumesgp2,st1,sc1oustandard.Pour les volumes
gp3, la plage de valeurs valide est comprise entre 3 000 et 16 000.Pour les volumes
io1, la plage de valeurs valide est comprise entre 100 et 64 000.Pour les volumes
io2, la plage de valeurs valide est comprise entre 100 et 64 000. throughput-
Type : entier
Obligatoire : non
Le débit à allouer pour les volumes associés aux tâches gérées par un service.
Important
Ce paramètre n’est pris en charge que pour les volumes
gp3. roleArn-
Type : String
Obligatoire : oui
L’Amazon Resource Name (ARN) du rôle IAM (AWS Identity and Access Management) d’infrastructure qui fournit l’autorisation Amazon ECS pour gérer les ressources Amazon EBS pour vos tâches. Pour de plus amples informations, consultez Amazon ECS infrastructure IAM role.
tagSpecifications-
Type : objet
Obligatoire : non
La spécification des balises à appliquer à chaque volume Amazon EBS.
resourceType-
Type : String
Obligatoire : oui
Valeurs valides :
volumeLe type de ressource à baliser à la création.
-
Type : tableau d'objets
Obligatoire : non
Les métadonnées que vous appliquez aux volumes pour vous aider à les classer et à les organiser. Chaque balise est constituée d’une clé et d’une valeur facultative que vous définissez.
AmazonECSCreatedetAmazonECSManagedsont des balises réservées ajoutées par Amazon ECS en votre nom. Vous pouvez donc spécifier vous-même un maximum de 48 balises. Lorsqu’un service est supprimé, les balises sont également supprimées. Pour de plus amples informations, consultez Balisage des ressources Amazon ECS.key-
Type : String
Contraintes de longueur : Longueur minimum de 1. Longueur maximale de 128.
Obligatoire : non
Une des parties d’une paire clé-valeur qui compose une balise. Une clé est une étiquette générale qui fait office de catégorie pour les valeurs d'étiquette plus spécifiques.
value-
Type : String
Contraintes de longueur : Longueur minimum de 0. Longueur maximale de 256.
Obligatoire : non
La partie facultative d’une paire clé-valeur qui compose une balise. Une valeur agit comme un descripteur au sein d'une catégorie d'étiquette (clé).
propagateTags-
Type : String
Valeurs valides :
TASK_DEFINITION|SERVICE|NONEObligatoire : non
Spécifie s’il faut copier les balises de la définition de tâche ou du service vers un volume. Si
NONEest spécifié ou si aucune valeur n’est spécifiée, les balises ne sont pas copiées.
fileSystemType-
Type : chaîne
Obligatoire : non
Valeurs valides :
xfs|ext3|ext4|NTFSLe type de système de fichiers sur un volume. Le type de système de fichiers du volume détermine le mode de stockage et de récupération des données dans le volume. Pour les volumes créés à partir d'un instantané, vous devez spécifier le même type de système de fichiers que celui que le volume utilisait lors de la création de l'instantané. Si le type de système de fichiers ne correspond pas, la tâche ne démarrera pas.
Les valeurs valides pour Linux sont
xfsext3, and ext4. La valeur par défaut pour les volumes attachés à des tâches Linux estXFS.La valeur valide pour Windows est
NTFS. La valeur par défaut pour les volumes attachés à des tâches Windows estNTFS.