Mettre à jour les paramètres du service Amazon ECS - Amazon Elastic Container Service

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.

Mettre à jour les paramètres du service Amazon ECS

Après avoir créé un service, il peut arriver que vous deviez mettre à jour les paramètres du service, par exemple le nombre de tâches.

Lorsque le planificateur de services lance de nouvelles tâches, il détermine le placement des tâches dans votre cluster selon la logique suivante.

  • Déterminez les instances de conteneur de votre cluster qui peuvent prendre en charge la définition des tâches de votre service. Par exemple, ils possèdent le processeur, la mémoire, les ports et les attributs d'instance de conteneur requis.

  • Par défaut, le planificateur de services tente d'équilibrer les tâches entre les zones de disponibilité de cette manière, même si vous pouvez choisir une autre stratégie de placement.

    • Triez les instances de conteneur valides selon le plus petit nombre de tâches en cours d'exécution pour ce service dans la même zone de disponibilité que l'instance. Par exemple, si la zone A comporte une tâche de service en cours d'exécution tandis que les zones B et C n'en ont pas, les instances de conteneur valides des zones B ou C sont considérées comme optimales pour le placement.

    • Placer la nouvelle tâche de service sur une instance de conteneur valide dans une zone de disponibilité optimale (sur la base des étapes précédentes), en préférant les instances de conteneur avec le plus petit nombre de tâches en cours d'exécution pour ce service.

Lorsque le planificateur de services arrête d'exécuter des tâches, il tente de maintenir l'équilibre entre les zones de disponibilité de votre cluster selon la logique suivante :

  • Triez les instances de conteneur selon le plus grand nombre de tâches en cours d'exécution pour ce service dans la même zone de disponibilité que l'instance. Par exemple, si la zone A comporte une tâche de service en cours d'exécution tandis que les zones B et C en ont chacune deux, les instances de conteneur des zones B ou C sont considérées comme optimales pour la mise hors service.

  • Arrêter la nouvelle tâche de service sur une instance de conteneur valide dans une zone de disponibilité optimale (sur la base des étapes précédentes), en préférant les instances de conteneur avec le plus grand nombre de tâches en cours d'exécution pour ce service.

Utilisez la liste pour déterminer si vous pouvez modifier le paramètre de service.

Rééquilibrage des zones de disponibilité

Indique s'il faut utiliser le rééquilibrage des zones de disponibilité pour le service.

Vous pouvez modifier ce paramètre pour les déploiements progressifs.

Stratégie des fournisseurs de capacités

Détails d'une stratégie de fournisseur de capacité. Vous pouvez définir un fournisseur de capacité lorsque vous créez un cluster, exécutez une tâche ou mettez à jour un service.

Lorsque vous utilisez Fargate, les fournisseurs de capacité sont ou. FARGATE FARGATE_SPOT

Lorsque vous utilisez Amazon EC2, les fournisseurs de capacité sont des groupes Auto Scaling.

Vous pouvez changer de fournisseur de capacité pour les déploiements progressifs et les déploiements bleu/vert.

La liste suivante fournit les transitions valides :

  • Mettez à jour le type de lancement Fargate vers un fournisseur de capacité de groupe Auto Scaling.

  • Mettez à jour le type de EC2 lancement Amazon vers un fournisseur de capacité Fargate.

  • Transformez le fournisseur de capacité Fargate en fournisseur de capacité du groupe Auto Scaling.

  • Transformez le fournisseur EC2 de capacité Amazon en fournisseur de capacité Fargate.

  • Rétablissez le type de lancement du groupe Auto Scaling ou du fournisseur de capacité Fargate. Lorsque vous utilisez la CLI ou l'API, vous transmettez une liste vide dans le capacityProviderStrategy paramètre.

Cluster

Vous ne pouvez pas modifier le nom du cluster.

Configuration de déploiement

La configuration de déploiement inclut les CloudWatch alarmes, le disjoncteur utilisé pour détecter les défaillances et la configuration requise.

La disjoncteur de circuit de déploiement détermine si un déploiement de service échoue dans le cas où le service ne parvient pas à atteindre un état stable. Si vous utilisez le disjoncteur de déploiement, le déploiement d'un service passera à l'état d'échec et cessera de lancer de nouvelles tâches. Si vous utilisez l'option de restauration, lorsqu'un déploiement de service échoue, le service est annulé jusqu'au dernier déploiement terminé avec succès.

Lorsque vous mettez à jour un service qui utilise un disjoncteur Amazon ECS, Amazon ECS crée un déploiement et une révision du service. Ces ressources vous permettent de consulter des informations détaillées sur l'historique des services. Pour de plus amples informations, veuillez consulter Afficher l'historique des services à l'aide des déploiements de services Amazon ECS.

Le planificateur de service utilise les paramètres de pourcentage minimum d'instances saines et de pourcentage maximal (dans la configuration de déploiement pour le service) afin de déterminer la stratégie de déploiement.

Si un service utilise le type de déploiement rolling update (ECS), le pourcentage d'intégrité minimal représente une limite inférieure du nombre de tâches d'un service qui doivent rester RUNNING inchangées pendant un déploiement, en pourcentage du nombre de tâches souhaité (arrondi au nombre entier le plus proche). Le paramètre s'applique également lorsque toutes les instances de conteneur sont dans l'DRAININGétat où le service contient des tâches utilisant le type de EC2 lancement. Utilisez ce paramètre pour procéder au déploiement sans avoir recours à une capacité de cluster supplémentaire. Par exemple, si votre service comporte un nombre souhaité de tâches égal à quatre et un pourcentage minimum d'instances saines de 50 pour cent, le planificateur pourra arrêter deux tâches existantes afin de libérer de la capacité de cluster avant de lancer deux nouvelles tâches. Le service considère que les tâches sont saines pour les services qui n'utilisent pas d'équilibreur de charge s'ils sont dans RUNNING cet état. Le service considère que les tâches sont saines pour les services qui utilisent un équilibreur de charge s'ils sont dans RUNNING cet état et qu'ils sont signalés comme sains par l'équilibreur de charge. La valeur par défaut pour le pourcentage minimum d'instances saines est 100 pour cent.

Si un service utilise le type de déploiement rolling update (ECS), le paramètre de pourcentage maximal représente la limite supérieure du nombre de tâches autorisées dans un service dans l'STOPPINGétat PENDINGRUNNING, ou pendant un déploiement, sous forme de pourcentage du nombre de tâches souhaité (arrondi à l'entier inférieur le plus proche). Le paramètre s'applique également lorsque toutes les instances de conteneur sont dans l'DRAININGétat où le service contient des tâches utilisant le type de EC2 lancement. Utilisez ce paramètre pour définir la taille des lots de déploiement. Par exemple, si votre service a un nombre souhaité de quatre tâches et une valeur de pourcentage maximum de 200 pour cent, le planificateur peut lancer quatre nouvelles tâches avant d'arrêter les quatre tâches plus anciennes. Cela s'applique à condition que les ressources de cluster nécessaires à cette opération soient disponibles. La valeur par défaut pour le pourcentage maximal est 200 pour cent.

Lorsque le planificateur de service remplace une tâche pendant une mise à jour, si un équilibreur de charge est utilisé par le service, ce dernier supprime tout d'abord la tâche de l'équilibreur de charge (le cas échéant) et attend que les connexions s'épuisent. Ensuite, l'équivalent de docker stop est émis pour les conteneurs en cours d'exécution dans la tâche. Cela se traduit par un signal SIGTERM et un délai de 30 secondes, après quoi SIGKILL est envoyé et les conteneurs sont arrêtés de force. Si le conteneur gère le signal SIGTERM normalement et s'arrête dans les 30 secondes suivant sa réception, aucun signal SIGKILL n'est envoyé. Le planificateur de service lance et arrête les tâches selon les modalités définies dans vos paramètres de pourcentage minimum d'instances saines et de pourcentage maximal.

Le planificateur de services remplace également les tâches jugées défectueuses après l'échec d'une surveillance de l'état du conteneur ou du groupe cible de l'équilibreur de charge. Ce remplacement dépend des paramètres de définition du service maximumPercent et desiredCount. Si une tâche est marquée comme défectueuse, le planificateur de services lance d'abord une tâche de remplacement. Ensuite, ce qui suit se produit.

  • Si l'état de santé de la tâche de remplacement est égal àHEALTHY, le planificateur de services arrête la tâche défectueuse

  • Si l'état de santé de la tâche de remplacement est UNHEALTHY, le planificateur arrête soit la tâche de remplacement défectueuse, soit la tâche défectueuse existante pour que le nombre total de tâches soit égal à desiredCount.

Si le paramètre maximumPercent empêche le planificateur de démarrer d'abord une tâche de remplacement, le planificateur arrête une par une les tâches défectueuses au hasard pour libérer de la capacité, puis lance une tâche de remplacement. Le processus de démarrage et d'arrêt se poursuit jusqu'à ce que toutes les tâches défectueuses soient remplacées par des tâches saines. Une fois que toutes les tâches défectueuses ont été remplacées et que seules les tâches saines sont en cours d'exécution, si le nombre total de tâches dépasse le desiredCount, les tâches saines sont arrêtées au hasard jusqu'à ce que le nombre total de tâches soit égal à desiredCount. Pour plus d'informations sur maximumPercent et desiredCount, veuillez consulter Paramètres de définition de service (langue française non garantie).

Nombre de tâches souhaité

Le nombre d'instanciations de la tâche à placer et à poursuivre dans votre service.

Si vous souhaitez arrêter temporairement votre service, définissez cette valeur sur 0. Ensuite, lorsque vous êtes prêt à démarrer le service, mettez-le à jour avec la valeur d'origine.

Vous pouvez modifier ce paramètre pour les déploiements progressifs et les déploiements bleu/vert.

Activer les balises gérées

Détermine s'il faut activer les balises gérées Amazon ECS pour les tâches du service.

Seules les tâches lancées après la mise à jour refléteront la mise à jour. Pour mettre à jour les balises de toutes les tâches, utilisez l'option de déploiement forcé.

Vous pouvez modifier ce paramètre pour les déploiements progressifs et les déploiements bleu/vert.

Activer ECS Exec

Détermine si Amazon ECS Exec est utilisé.

Si vous ne souhaitez pas remplacer la valeur définie lors de la création du service, vous pouvez la définir sur null lorsque vous effectuez cette action.

Vous pouvez modifier ce paramètre pour les déploiements progressifs.

Période de grâce pour le bilan de santé

Durée, en secondes, pendant laquelle le planificateur de services Amazon ECS ignore les vérifications incorrectes d'Elastic Load Balancing, de VPC Lattice et de l'état des conteneurs après le démarrage d'une tâche. Si vous ne spécifiez pas de valeur de période de grâce pour le bilan de santé, la valeur par défaut de 0 est utilisée. Si vous n'utilisez aucun des bilans de santé, cela signifie qu'il healthCheckGracePeriodSeconds n'est pas utilisé.

Si les tâches de votre service mettent un certain temps à démarrer et à répondre aux tests de santé, vous pouvez spécifier une période de grâce maximale de 2 147 483 647 secondes (environ 69 ans). Pendant ce temps, le planificateur du service Amazon ECS ignore le statut de la vérification 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.

Vous pouvez modifier ce paramètre pour les déploiements progressifs et les blue/green déploiements.

Équilibreurs de charge

Vous devez utiliser un rôle lié à un service lorsque vous mettez à jour un équilibreur de charge.

Liste des objets de l'équilibreur de charge Elastic Load Balancing. Il contient le nom de l'équilibreur de charge, le nom du conteneur et le port du conteneur auquel accéder depuis l'équilibreur de charge. Le nom du conteneur est tel qu'il apparaît dans une définition de conteneur.

Amazon ECS ne met pas automatiquement à jour les groupes de sécurité associés aux équilibreurs de charge Elastic Load Balancing ou aux instances de conteneur Amazon ECS.

Lorsque vous ajoutez, mettez à jour ou supprimez une configuration d'équilibreur de charge, Amazon ECS démarre de nouvelles tâches avec la configuration Elastic Load Balancing mise à jour, puis arrête les anciennes tâches lorsque les nouvelles tâches sont en cours d'exécution.

Pour les services qui utilisent des mises à jour continues, vous pouvez ajouter, mettre à jour ou supprimer des groupes cibles Elastic Load Balancing. Vous pouvez passer d'un groupe cible unique à plusieurs groupes cibles et de plusieurs groupes cibles à un seul groupe cible.

Pour les services qui utilisent blue/green des déploiements, vous pouvez mettre à jour les groupes cibles d'Elastic Load Balancing en utilisant CreateDeployment through CodeDeploy. Notez que les groupes cibles multiples ne sont pas pris en charge pour les blue/green déploiements. Pour plus d'informations, voir Enregistrer plusieurs groupes cibles auprès d'un service.

Pour les services qui utilisent le contrôleur de déploiement externe, vous pouvez ajouter, mettre à jour ou supprimer des équilibreurs de charge en utilisant CreateTaskSet. Notez que les groupes cibles multiples ne sont pas pris en charge pour les déploiements externes. Pour plus d'informations, voir Enregistrer plusieurs groupes cibles auprès d'un service.

Passez une liste vide pour supprimer les équilibreurs de charge.

Vous pouvez modifier ce paramètre pour les déploiements progressifs.

Configuration réseau

Configuration du réseau de service.

Vous pouvez modifier ce paramètre pour les déploiements progressifs.

Contraintes de placement

Tableau d'objets de contrainte de placement de tâches permettant de mettre à jour le service à utiliser. Si aucune valeur n'est spécifiée, les contraintes de placement existantes pour le service resteront inchangées. Si cette valeur est spécifiée, elle remplacera toutes les contraintes de placement existantes définies pour le service. Pour supprimer toutes les contraintes de placement existantes, spécifiez un tableau vide.

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.

Vous pouvez modifier ce paramètre pour les déploiements progressifs et les déploiements bleu/vert.

Stratégie de placement

La stratégie de placement des tâches vise à mettre à jour le service à utiliser. Si aucune valeur n'est spécifiée, la stratégie de placement existante pour le service restera inchangée. Si cette valeur est spécifiée, elle remplacera la stratégie de placement existante définie pour le service. Pour supprimer une stratégie de placement existante, spécifiez un objet vide.

Vous pouvez modifier ce paramètre pour les déploiements progressifs et les déploiements bleu/vert.

Version de la plateforme

La version de la plateforme Fargate sur laquelle votre service s'exécute.

Un service utilisant une version de plateforme Linux ne peut pas être mis à jour pour utiliser une version de plateforme Windows et vice versa.

Vous pouvez modifier ce paramètre pour les déploiements progressifs.

Propager les tags

Détermine s'il faut propager les balises de la définition de tâche ou du service vers la tâche. Si aucune valeur n'est spécifiée, les balises ne sont pas propagées.

Seules les tâches lancées après la mise à jour refléteront la mise à jour. Pour mettre à jour les balises de toutes les tâches, définissez cette valeur surtrue, forceNewDeployment afin qu'Amazon ECS lance de nouvelles tâches avec les balises mises à jour.

Vous pouvez modifier ce paramètre pour les déploiements progressifs et les déploiements bleu/vert.

Configuration de Service Connect

Configuration d'Amazon ECS Service Connect. Ce paramètre détermine la manière dont le service se connecte aux autres services de votre application.

Vous pouvez modifier ce paramètre pour les déploiements progressifs.

Registres de services

Vous devez utiliser un rôle lié à un service lorsque vous mettez à jour les registres de services.

Informations relatives aux registres de découverte de services à attribuer à ce service. Pour de plus amples informations, veuillez consulter Découverte de service.

Lorsque vous ajoutez, mettez à jour ou supprimez la configuration des registres de services, Amazon ECS lance de nouvelles tâches avec la configuration des registres de services mise à jour, puis arrête les anciennes tâches lorsque les nouvelles tâches sont en cours d'exécution.

Transmettez une liste vide pour supprimer les registres de services.

Vous pouvez modifier ce paramètre pour les déploiements progressifs.

Définition de la tâche

Définition et révision de la tâche à utiliser pour le service.

Si vous modifiez les ports utilisés par les conteneurs dans une définition de tâche, vous devrez peut-être mettre à jour les groupes de sécurité pour que les instances de conteneur fonctionnent avec les ports mis à jour.

Si vous mettez à jour la définition de tâche pour le service, le nom et le port de conteneur spécifiés dans la configuration de l'équilibreur de charge doivent rester dans la définition de tâche.

Le comportement d'extraction de l'image du conteneur diffère selon les types de lancement. Pour plus d'informations, consultez les étapes suivantes :

Vous pouvez modifier ce paramètre pour les déploiements progressifs.

Configuration du volume

Les détails du volume qui étaitconfiguredAtLaunch. Lorsqu'il est défini sur true, ce paramètre configure la pièce jointe à la tâche Amazon EBS pendant le déploiement. Vous pouvez configurer la taille, le type de volume, les IOPS, le débit, le snapshot et le chiffrement dans Configuration. ServiceManaged EBSVolume Le name volume doit correspondre à celui indiqué dans la définition name de la tâche. S'il est défini sur null, aucun nouveau déploiement n'est déclenché. Dans le cas contraire, si cette configuration est différente de la configuration existante, elle déclenche un nouveau déploiement.

Vous pouvez modifier ce paramètre pour les déploiements progressifs.

Configuration du réseau VPC

La configuration du réseau VPC pour votre service. Cela définit la manière dont votre service s'intègre à VPC Lattice pour la communication. service-to-service

Vous pouvez modifier ce paramètre pour les déploiements progressifs.

AWS CDK considérations

Le AWS CDK ne suit pas l'état des ressources. Il ne sait pas si vous créez ou mettez à jour un service. Les clients doivent utiliser la trappe d'évacuation pour accéder directement à la construction ecs Service L1.

Pour plus d'informations sur les trappes d'échappement, voir Personnaliser les constructions à partir de la bibliothèque de constructions AWS dans le guide du développeur de la AWS Cloud Development Kit (AWS CDK) version 2.

Pour migrer votre service existant vers la ecs.Service construction, procédez comme suit :

  1. Utilisez la trappe d'évacuation pour accéder à la construction Service L1.

  2. Définissez manuellement les propriétés suivantes dans la construction Service L1.

    Si votre service utilise les EC2 capacités d'Amazon :

    • daemon?

    • placementConstraints?

    • placementStrategies?

    • Si vous utilisez le mode awsvpc réseau, vous devez définir les securityGroups? constructions vpcSubnets? et.

    Si votre service utilise Fargate :

    • FargatePlatformVersion

    • Les vpcSubnets? et les securityGroups? constructions.

  3. Réglez le launchType comme suit :

    const cfnEcsService = service.node.findChild('Service') as ecs.CfnService; cfnEcsService.launchType = "FARGATE";

Pour passer d'un type de lancement à un fournisseur de capacité, procédez comme suit :

  1. Utilisez la trappe d'évacuation pour accéder à la construction Service L1.

  2. Ajoutez la capacityProviderStrategies? construction.

  3. Déployez le service.