

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.

# Utilisation de l’équilibrage de charge pour répartir le trafic des services Amazon ECS
<a name="service-load-balancing"></a>

En option, votre service peut être configuré pour utiliser Elastic Load Balancing afin de répartir le trafic de manière uniforme entre les tâches de votre service.

**Note**  
Lorsque vous utilisez des ensembles de tâches, toutes les tâches de l'ensemble doivent être configurées pour utiliser Elastic Load Balancing ou pour ne pas utiliser Elastic Load Balancing. 

Les services Amazon ECS hébergés sur ce site AWS Fargate prennent en charge les équilibreurs de charge d'application, les équilibreurs de charge réseau et les équilibreurs de charge de passerelle. Utilisez le tableau suivant pour savoir quel type d’équilibreur de charge utiliser.


| Type d’équilibreur de charge | À utiliser dans les cas suivants | 
| --- | --- | 
|  Application Load Balancer  | Trafic routier HTTP/HTTPS (ou couche 7).Les équilibreurs de charge Application Load Balancer offrent plusieurs fonctions qui les rendent intéressants à utiliser avec les services Amazon ECS service : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/service-load-balancing.html) | 
| Network Load Balancer | Acheminer le trafic TCP ou UDP (ou couche 4). | 
| Passerelle équilibreur de charge | Acheminer le trafic TCP ou UDP (ou couche 4). Utiliser des appareils virtuels, tels que des pare-feu, des systèmes de détection et de prévention des intrusions et des systèmes d’inspection approfondie des paquets. | 

Nous vous recommandons d’utiliser des Application Load Balancer pour vos services Amazon ECS afin de pouvoir profiter des fonctions les plus récentes, sauf si votre service nécessite une fonctionnalité qui n’est fournie que par les Network Load Balancer ou les Gateway Load Balancer. Pour plus d'informations sur Elastic Load Balancing et les différences entre les types d'équilibreurs de charge, consultez le [Guide de l'utilisateur Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/).

Avec votre équilibreur de charge, vous payez uniquement en fonction de votre utilisation. Pour plus d'informations, veuillez consultez [Tarification Elastic Load Balancing](https://aws.amazon.com/elasticloadbalancing/pricing/). 

# Optimisation des paramètres de surveillance de l’état de l’équilibreur de charge pour Amazon ECS
<a name="load-balancer-healthcheck"></a>

Les équilibreurs de charge n’acheminent les requêtes que vers les cibles saines dans les zones de disponibilité de l’équilibreur de charge. Chaque cible est enregistrée dans un groupe cible. Chaque nœud d’équilibreur de charge vérifie l’état de chaque cible en utilisant les paramètres de surveillance de l’état de chaque groupe cible auprès duquel la cible est enregistrée. Une fois que votre cible est enregistrée, elle doit passer avec succès une seule surveillance de l’état pour être considérée comme saine. Amazon ECS surveille l’équilibreur de charge. L’équilibreur de charge envoie régulièrement des surveillances de l’état au conteneur Amazon ECS. L’agent Amazon ECS surveille et attend que l’équilibreur de charge publie un rapport sur l’état du conteneur. Il le fait avant de considérer que le conteneur est sain.

Deux paramètres de surveillance de l’état Elastic Load Balancing affectent la vitesse de déploiement :
+ Intervalle entre les surveillances de l’état : détermine la durée approximative, en secondes, entre les surveillances de l’état d’un conteneur individuel. Par défaut, l’équilibreur de charge vérifie toutes les 30 secondes.

  Ce paramètre est nommé :
  + `HealthCheckIntervalSeconds` dans l’API Elastic Load Balancing
  + **Intervalle** sur la console Amazon EC2
+ Seuil de comptage de l’état sain : détermine le nombre de surveillances de l’état consécutives réussies requises avant de considérer un conteneur défectueux comme sain. Par défaut, l’équilibreur de charge nécessite cinq surveillances de l’état réussies avant de signaler que le conteneur cible est sain.

  Ce paramètre est nommé :
  + `HealthyThresholdCount` dans l’API Elastic Load Balancing
  + **Seuil de l’état sain** sur la console Amazon EC2

**Important :** pour les cibles nouvellement enregistrées, une seule surveillance de l’état réussie suffit pour considérer que la cible est saine, quel que soit le seuil de l’état sain défini. Le seuil de comptage de l’état sain ne s’applique que lorsqu’une cible passe d’un état défectueux à un état sain.

Avec les paramètres par défaut, si une cible devient défectueuse puis se rétablit, le temps total nécessaire pour déterminer l’état d’un conteneur est de 2 minutes et 30 secondes (`30 seconds * 5 = 150 seconds`).

Vous pouvez accélérer le processus de surveillance de l’état si votre service démarre et se stabilise en moins de 10 secondes. Pour accélérer le processus, réduisez l’intervalle entre les surveillances de l’état et le seuil de comptage de l’état sain.
+ `HealthCheckIntervalSeconds` (nom pour l’API Elastic Load Balancing) ou **Interval** (nom pour la console Amazon EC2) : 5
+ `HealthyThresholdCount` (nom pour l’API Elastic Load Balancing) ou **seuil sain** (nom pour la console Amazon EC2) : 2

Avec ce paramètre, le processus de vérification de l’état prend 10 secondes, contre 2 minutes et 30 secondes par défaut.

Pour plus d’informations sur les paramètres de surveillance de l’état Elastic Load Balancing, consultez la section [Surveillance de l’état de vos groupes cibles](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html) dans le *Guide de l’utilisateur Elastic Load Balancing*.

# Optimisation des paramètres de drainage de la connexion de l’équilibreur de charge pour Amazon ECS
<a name="load-balancer-connection-draining"></a>

Pour permettre l’optimisation, les clients maintiennent une connexion persistante au service de conteneurs. Cela permet aux requêtes ultérieures de ce client de réutiliser la connexion existante. Lorsque vous souhaitez arrêter le trafic vers un conteneur, vous devez en informer l’équilibreur de charge. L’équilibreur de charge vérifie régulièrement si le client a fermé la connexion persistante. Amazon ECS surveille l’équilibreur de charge et attend qu’il indique que la connexion persistante est fermée (la cible est dans un état `UNUSED`).

La durée pendant laquelle l’équilibreur de charge attend pour faire passer la cible à l’état `UNUSED` correspond au délai d’annulation de l’enregistrement. Vous pouvez configurer le paramètre d’équilibreur de charge suivant pour accélérer vos déploiements.
+ `deregistration_delay.timeout_seconds` : 300 (par défaut)

Lorsque vous disposez d’un service dont le temps de réponse est inférieur à une seconde, définissez le paramètre sur la valeur suivante pour que l’équilibreur de charge n’attende que cinq secondes avant de rompre la connexion entre le client et le service principal : 
+ `deregistration_delay.timeout_seconds` : 5 

**Note**  
Ne définissez pas la valeur sur cinq secondes lorsqu’un service comporte des requêtes de longue durée, telles que des téléchargements de fichiers lents ou des connexions de streaming.

## Réactivité à SIGTERM
<a name="sigterm"></a>

Amazon ECS envoie d'abord un signal d'arrêt à la tâche pour indiquer que l'application doit se terminer et s'arrêter. Ce signal peut être défini dans l'image de votre conteneur à l'aide de l'instruction STOPSIGNAL et sera défini par défaut sur SIGTERM. Amazon ECS envoie ensuite un message SIGKILL. Lorsque les applications ignorent le signal SIGTERM, le service Amazon ECS doit attendre pour envoyer le signal SIGKILL afin de terminer le processus. 

La durée pendant laquelle Amazon ECS attend avant d’envoyer le message SIGKILL est déterminée par l’option d’agent Amazon ECS suivante :
+ `ECS_CONTAINER_STOP_TIMEOUT` : 30 (par défaut)

  Pour plus d'informations sur le paramètre de l'agent de conteneur, consultez [Amazon ECS Container Agent](https://github.com/aws/amazon-ecs-agent/blob/master/README.md) on GitHub.

Pour accélérer le délai d’attente, définissez le paramètre de l’agent Amazon ECS sur la valeur suivante :
+ `ECS_CONTAINER_STOP_TIMEOUT` : 2

  Si votre application prend plus d’une seconde, multipliez la valeur par deux et utilisez ce nombre comme valeur.

Dans ce cas, Amazon ECS attend deux secondes que le conteneur s’arrête, puis Amazon ECS envoie un message SIGKILL lorsque l’application ne s’arrête pas.

Vous pouvez également modifier le code de l’application pour intercepter le signal SIGTERM et y réagir. Voici un exemple dans JavaScript : 

```
process.on('SIGTERM', function() { 
  server.close(); 
})
```

Ce code oblige le serveur HTTP à cesser d’écouter les nouvelles requêtes et à finir de répondre aux requêtes en cours. Le processus Node.js se termine alors, car la boucle d’événements n’a plus rien à faire. Cela étant, si le processus ne prend que 500 ms pour terminer ses requêtes en cours de vol, il se termine prématurément sans avoir à attendre la fin du délai d’arrêt et sans recevoir de SIGKILL. 

# Utilisation d’un Application Load Balancer pour Amazon ECS
<a name="alb"></a>

Un équilibreur de charge Application Load Balancer prend des décisions de routage au niveau de la couche d'application (HTTP/HTTPS), prend en charge le routage basé sur le chemin et peut acheminer les demandes vers un ou plusieurs ports de chaque instance de conteneur de votre cluster. Les équilibreurs de charge Application Load Balancer prennent en charge le mappage de port hôte dynamique. Par exemple, si la définition de conteneur de la tâche spécifie le port 80 pour un port de conteneur NGINX et le port 0 pour le port hôte, le port hôte est choisi dynamiquement à partir de la plage de ports éphémères de l'instance de conteneur (par exemple, 32768 à 61000 sur la dernière AMI optimisée pour Amazon ECS). Au lancement de la tâche, le conteneur NGINX est enregistré auprès de l’Application Load Balancer sous la forme d’une combinaison d’ID d’instance et de port, et le trafic est distribué vers l’ID d’instance et le port correspondant à ce conteneur. Ce mappage dynamique vous permet d'exécuter plusieurs tâches à partir d'un seul service sur la même instance de conteneur. Pour plus d'informations, consultez le [Guide de l'utilisateur pour les équilibreurs de charge Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/).

Pour plus d’informations sur les pratiques exemplaires en matière de définition de paramètres pour accélérer vos déploiements, consultez la section :
+ [Optimisation des paramètres de surveillance de l’état de l’équilibreur de charge pour Amazon ECS](load-balancer-healthcheck.md)
+ [Optimisation des paramètres de drainage de la connexion de l’équilibreur de charge pour Amazon ECS](load-balancer-connection-draining.md)

Tenez compte des éléments suivants lorsque vous utilisez des Application Load Balancer avec Amazon ECS :
+ Amazon ECS nécessite le rôle IAM lié au service qui fournit les autorisations nécessaires pour enregistrer et désenregistrer des cibles dans votre équilibreur de charge lors de la création ou de l'arrêt de tâches. Pour de plus amples informations, veuillez consulter [Utilisation des rôles liés à un service pour Amazon ECS](using-service-linked-roles.md).
+ Pour les services dans une configuration IPv6 réservée, vous devez définir le type d'adresse IP du groupe cible de l'Application Load Balancer `dualstack` sur ou. `dualstack-without-public-ipv4`
+ Pour les services avec des tâches utilisant le mode réseau `awsvpc`, lorsque vous créez un groupe cible pour votre service, vous devez choisir `ip` comme type de cible, pas `instance`. Cela est dû au fait que les tâches qui utilisent le mode réseau `awsvpc` sont associées à une interface réseau Elastic et non à une instance Amazon EC2.
+ Si votre service nécessite l'accès à plusieurs ports d'équilibrage de charge, tels que le port 80 et le port 443 pour un HTTP/HTTPS service, vous pouvez configurer deux écouteurs. Un écouteur se charge du protocole HTTPS qui transmet la demande au service et un autre écouteur est responsable de la redirection des demandes HTTP vers le port HTTPS approprié. Pour plus d'informations, consultez la section [Création d'un écouteur pour votre Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-listener.html) dans le *Guide de l'utilisateur pour les Application Load Balancers*.
+ La configuration de sous-réseau de votre équilibreur de charge doit inclure toutes les zones de disponibilité dans lesquels résident vos instances de conteneur.
+ 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 CLI ou le SDK pour modifier la configuration de l'équilibreur de charge uniquement pour le contrôleur de déploiement `ECS` évolutif, et non AWS CodeDeploy pour le bleu/vert ou externe. AWS CloudFormation 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 manière de modifier la configuration, consultez le [UpdateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html)manuel *Amazon Elastic Container Service API Reference*. 
+ Si une tâche d’un service ne satisfait pas aux critères de surveillance de l’état de l’équilibreur de charge, la tâche est arrêtée et redémarrée. Ce processus continue jusqu'à ce que votre service atteigne le nombre souhaité de tâches en cours d'exécution.
+ Si vous rencontrez des problèmes avec l'équilibreur de charge utilisé par vos services, consultez [Résolution des problèmes liés aux équilibreurs de charge des services dans Amazon ECS](troubleshoot-service-load-balancers.md).
+ Lorsque vous utilisez le type de cible `instance`, vos tâches et votre équilibreur de charge doivent se trouver dans le même VPC. Lors de l’utilisation du type de cible `ip`, la connectivité entre VPC est prise en charge.
+ Utilisez un groupe cible unique pour chaque service. 

  L’utilisation du même groupe cible pour plusieurs services peut entraîner des problèmes lors des déploiements de service.
+ Vous devez spécifier les groupes cibles associés à un Application Load Balancer.

Pour plus d’informations sur la création d’un Application Load Balancer, consultez la section [Création d’un Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html) dans *Application Load Balancer*.

# Utilisation d’un Network Load Balancer pour Amazon ECS
<a name="nlb"></a>

Un Network Load Balancer prend des décisions de routage au niveau de la couche de transport (TCP/SSL). Il est capable de traiter des millions de demandes par seconde. Lorsque l'équilibreur de charge reçoit une connexion, il sélectionne une cible depuis le groupe cible pour la règle par défaut à l'aide d'un algorithme de routage du hachage de flux. Il tente d'ouvrir une connexion TCP à la cible sélectionnée sur le port spécifié dans la configuration de l'écouteur. Il transmet la demande sans modifier les en-têtes. Les équilibreurs de charge Network Load Balancer prennent en charge le mappage de port hôte dynamique. Par exemple, si la définition de conteneur de la tâche spécifie le port 80 pour un port de conteneur NGINX et le port 0 pour le port hôte, le port hôte est choisi dynamiquement à partir de la plage de ports éphémères de l'instance de conteneur (par exemple, 32768 à 61000 sur la dernière AMI optimisée pour Amazon ECS). Lorsque la tâche est lancée, le conteneur NGINX est enregistré dans l'équilibreur de charge Network Load Balancer en tant que combinaison d'ID d'instance et de port, et le trafic est réparti vers l'ID d'instance et le port correspondant à ce conteneur. Ce mappage dynamique vous permet d'exécuter plusieurs tâches à partir d'un seul service sur la même instance de conteneur. Pour plus d'informations, veuillez consulter le [Guide de l'utilisateur pour les Network Load Balancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/).

Pour plus d’informations sur les pratiques exemplaires en matière de définition de paramètres pour accélérer vos déploiements, consultez la section :
+ [Optimisation des paramètres de surveillance de l’état de l’équilibreur de charge pour Amazon ECS](load-balancer-healthcheck.md)
+ [Optimisation des paramètres de drainage de la connexion de l’équilibreur de charge pour Amazon ECS](load-balancer-connection-draining.md)

Tenez compte des informations suivantes lors de l’utilisation d’un Network Load Balancer avec Amazon ECS :
+ Amazon ECS nécessite le rôle IAM lié au service qui fournit les autorisations nécessaires pour enregistrer et désenregistrer des cibles dans votre équilibreur de charge lors de la création ou de l'arrêt de tâches. Pour de plus amples informations, veuillez consulter [Utilisation des rôles liés à un service pour Amazon ECS](using-service-linked-roles.md).
+ Vous ne pouvez pas attacher plus de cinq groupes cibles à un service.
+ Pour les services dans une configuration IPv6 uniquement, vous devez définir le type d'adresse IP du groupe cible du Network Load `dualstack` Balancer sur.
+ Pour les services avec des tâches utilisant le mode réseau `awsvpc`, lorsque vous créez un groupe cible pour votre service, vous devez choisir `ip` comme type de cible, pas `instance`. Cela est dû au fait que les tâches qui utilisent le mode réseau `awsvpc` sont associées à une interface réseau Elastic et non à une instance Amazon EC2.
+ La configuration de sous-réseau de votre équilibreur de charge doit inclure toutes les zones de disponibilité dans lesquels résident vos instances de conteneur.
+ 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 CLI ou le SDK pour modifier la configuration de l'équilibreur de charge uniquement pour le contrôleur de déploiement `ECS` évolutif, et non AWS CodeDeploy pour le bleu/vert ou externe. AWS CloudFormation 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 manière de modifier la configuration, consultez le [UpdateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html)manuel *Amazon Elastic Container Service API Reference*. 
+ Si une tâche d’un service ne satisfait pas aux critères de surveillance de l’état de l’équilibreur de charge, la tâche est arrêtée et redémarrée. Ce processus continue jusqu'à ce que votre service atteigne le nombre souhaité de tâches en cours d'exécution.
+ Lorsque vous utilisez un Gateway Load Balancer configuré avec des adresses IP comme cibles et la préservation de l’adresse IP du client désactivée, les requêtes sont considérées comme provenant de l’adresse IP privée du Gateway Load Balancer. Cela signifie que les services derrière un Gateway Load Balancer sont effectivement ouverts au monde dès que vous autorisez les requêtes entrantes et les surveillances de l’état dans le groupe de sécurité de la cible.
+ Pour les tâches Fargate, vous devez utiliser la version de plateforme `1.4.0` (Linux) ou `1.0.0` (Windows).
+ Si vous rencontrez des problèmes avec l'équilibreur de charge utilisé par vos services, consultez [Résolution des problèmes liés aux équilibreurs de charge des services dans Amazon ECS](troubleshoot-service-load-balancers.md).
+ Lorsque vous utilisez le type de cible `instance`, vos tâches et votre équilibreur de charge doivent se trouver dans le même VPC. Lors de l’utilisation du type de cible `ip`, la connectivité entre VPC est prise en charge.
+ La préservation des adresses IP client du Network Load Balancer est compatible avec les cibles Fargate.
+ Utilisez un groupe cible unique pour chaque service. 

  L’utilisation du même groupe cible pour plusieurs services peut entraîner des problèmes lors des déploiements de service.
+ Vous devez spécifier les groupes cibles associés à un Network Load Balancer.

Pour plus d’informations sur la création d’un Network Load Balancer, consultez la section [Création d’un Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) dans *Network Load Balancer*.

**Important**  
Si la définition de tâche de votre service utilise le mode réseau `awsvpc` (ce qui est requis pour Fargate), vous devez choisir le type de cible `ip`, et non `instance`. Cela est dû au fait que les tâches qui utilisent le mode réseau `awsvpc` sont associées à une interface réseau Elastic et non à une instance Amazon EC2.   
Vous ne pouvez pas enregistrer des instances par ID d'instance si elles ont les types d'instance suivants : C1 CC1 CC2, CG1, CG2, CR1,, G1, G2, HI1, M1 HS1, M2, M3 et T1. Vous pouvez enregistrer les instances de ces types par adresse IP. 

# Utilisation d’un Gateway Load Balancer pour Amazon ECS
<a name="glb"></a>

Les équilibreurs Gateway Load Balancer agissent au niveau de la troisième couche du modèle OSI Open Systems Interconnection (OSI), la couche réseau. Ils écoutent tous les paquets IP sur tous les ports et transfèrent le trafic vers le groupe cible spécifié dans la règle d'écoute. Il maintient la fidélité des flux à une appliance cible spécifique en utilisant 5 tuples (pour les TCP/UDP flux) ou 3 tuples (pour les flux non TCP/UDP). Par exemple, si la définition de conteneur de la tâche spécifie le port 80 pour un port de conteneur NGINX et le port 0 pour le port hôte, le port hôte est choisi dynamiquement à partir de la plage de ports éphémères de l'instance de conteneur (par exemple, 32768 à 61000 sur la dernière AMI optimisée pour Amazon ECS). Au lancement de la tâche, le conteneur NGINX est enregistré auprès du Gateway Load Balancer sous la forme d’une combinaison d’ID d’instance et de port, et le trafic est distribué vers l’ID d’instance et le port correspondant à ce conteneur. Ce mappage dynamique vous permet d'exécuter plusieurs tâches à partir d'un seul service sur la même instance de conteneur. Pour plus d’informations, consultez la section [Qu’est-ce qu’un Gateway Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/introduction.html) dans *Gateway Load Balancer*.

Pour plus d’informations sur les pratiques exemplaires en matière de définition de paramètres pour accélérer vos déploiements, consultez la section :
+ [Optimisation des paramètres de surveillance de l’état de l’équilibreur de charge pour Amazon ECS](load-balancer-healthcheck.md)
+ [Optimisation des paramètres de drainage de la connexion de l’équilibreur de charge pour Amazon ECS](load-balancer-connection-draining.md)

Tenez compte des informations suivantes lors de l’utilisation de Gateway Load Balancer avec Amazon ECS :
+ Amazon ECS nécessite le rôle IAM lié au service qui fournit les autorisations nécessaires pour enregistrer et désenregistrer des cibles dans votre équilibreur de charge lors de la création ou de l'arrêt de tâches. Pour de plus amples informations, veuillez consulter [Utilisation des rôles liés à un service pour Amazon ECS](using-service-linked-roles.md).
+ Pour les services dans une configuration IPv6 réservée, vous devez définir le type d'adresse IP du groupe cible du Gateway Load `dualstack` Balancer sur.
+ Pour les services dont les tâches utilisent un mode réseau autre que `awsvpc`, les Gateway Load Balancer ne sont pas pris en charge.
+ La configuration de sous-réseau de votre équilibreur de charge doit inclure toutes les zones de disponibilité dans lesquels résident vos instances de conteneur.
+ 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 CLI ou le SDK pour modifier la configuration de l'équilibreur de charge uniquement pour le contrôleur de déploiement `ECS` évolutif, et non AWS CodeDeploy pour le bleu/vert ou externe. AWS CloudFormation 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 manière de modifier la configuration, consultez le [UpdateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html)manuel *Amazon Elastic Container Service API Reference*. 
+ Si une tâche d’un service ne satisfait pas aux critères de surveillance de l’état de l’équilibreur de charge, la tâche est arrêtée et redémarrée. Ce processus continue jusqu'à ce que votre service atteigne le nombre souhaité de tâches en cours d'exécution.
+ Lorsque vous utilisez un Gateway Load Balancer configuré avec des adresses IP comme cibles, les requêtes sont considérées comme provenant de l’adresse IP privée du Gateway Load Balancer. Cela signifie que les services derrière un Gateway Load Balancer sont effectivement ouverts au monde dès que vous autorisez les requêtes entrantes et les surveillances de l’état dans le groupe de sécurité de la cible.
+ Pour les tâches Fargate, vous devez utiliser la version de plateforme `1.4.0` (Linux) ou `1.0.0` (Windows).
+ Si vous rencontrez des problèmes avec l'équilibreur de charge utilisé par vos services, consultez [Résolution des problèmes liés aux équilibreurs de charge des services dans Amazon ECS](troubleshoot-service-load-balancers.md).
+ Lorsque vous utilisez le type de cible `instance`, vos tâches et votre équilibreur de charge doivent se trouver dans le même VPC. Lors de l’utilisation du type de cible `ip`, la connectivité entre VPC est prise en charge.
+ Utilisez un groupe cible unique pour chaque service. 

  L’utilisation du même groupe cible pour plusieurs services peut entraîner des problèmes lors des déploiements de service.
+ Vous devez spécifier les groupes cibles associés à un Gateway Load Balancer.

Pour plus d’informations sur la création d’un Gateway Load Balancer, consultez la section [Démarrage avec les Gateway Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/getting-started.html) dans *Gateway Load Balancer*.

**Important**  
Si la définition de tâche de votre service utilise le mode réseau `awsvpc` (ce qui est requis pour Fargate), vous devez choisir le type de cible `ip`, et non `instance`. Cela est dû au fait que les tâches qui utilisent le mode réseau `awsvpc` sont associées à une interface réseau Elastic et non à une instance Amazon EC2.   
Vous ne pouvez pas enregistrer des instances par ID d'instance si elles ont les types d'instance suivants : C1 CC1 CC2, CG1, CG2, CR1,, G1, G2, HI1, M1 HS1, M2, M3 et T1. Vous pouvez enregistrer les instances de ces types par adresse IP. 

# Enregistrement de plusieurs groupes cibles auprès d’un service Amazon ECS
<a name="register-multiple-targetgroups"></a>

Votre service Amazon ECS service peut desservir le trafic provenant de plusieurs équilibreurs de charge et exposer plusieurs ports à charge équilibrée en spécifiant plusieurs groupes cibles dans une définition de service.

Pour créer un service spécifiant plusieurs groupes cibles, vous devez créer le service à l'aide de l'API Amazon ECS, du SDK ou d'un CloudFormation modèle. AWS CLI Une fois que le service est créé, vous pouvez afficher le service et les groupes cibles enregistrés auprès de celui-ci avec la AWS Management Console. Vous devez utiliser `[UpdateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html)` pour modifier la configuration de l'équilibreur de charge d'un service existant.

Plusieurs groupes cibles peuvent être spécifiés dans une définition de service à l'aide du format suivant. Pour obtenir la syntaxe complète d'une définition de service, consultez [Modèle de définition de service](sd-template.md).

```
"loadBalancers":[
   {  
      "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_1/1234567890123456",
      "containerName":"container_name",
      "containerPort":container_port
   },
   {  
      "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_2/6543210987654321",
      "containerName":"container_name",
      "containerPort":container_port
   }
]
```

## Considérations
<a name="multiple-targetgroups-considerations"></a>

Les informations suivantes doivent être prises en compte lorsque vous spécifiez plusieurs groupes cibles dans une définition de service.
+ Pour les services qui utilisent un équilibreur Application Load Balancer ou un Network Load Balancer, vous ne pouvez pas attacher plus de cinq groupes cibles à un service.
+ La spécification de plusieurs groupes cibles dans une définition de service n'est prise en charge que dans les conditions suivantes :
  + Le service doit utiliser un équilibreur de charge Application Load Balancer ou un Network Load Balancer.
  + Le service doit utiliser le type de contrôleur de déploiement (`ECS`). Il peut s'agir du déploiement native/blue écologique d'Amazon ECS ou du déploiement de mises à jour continues.
+ La spécification de groupes cibles multiples est prise en charge pour des services contenant des tâches qui utilisent à la fois les types de lancement Fargate et EC2.
+ Lors de la création d'un service qui spécifie plusieurs groupes cibles, le rôle lié à un service Amazon ECS service doit être créé. Le rôle est créé en omettant le paramètre `role` dans les demandes d'API, ou la propriété `Role` dans CloudFormation. Pour de plus amples informations, veuillez consulter [Utilisation des rôles liés à un service pour Amazon ECS](using-service-linked-roles.md).

## Exemples de définitions de service
<a name="multiple-targetgroups-examples"></a>

Voici quelques exemples de cas d'utilisation pour spécifier plusieurs groupes cibles dans une définition de service. Pour obtenir la syntaxe complète d'une définition de service, consultez [Modèle de définition de service](sd-template.md).

### Utilisation d’équilibreurs de charge distincts pour le trafic interne et externe
<a name="multiple-targetgroups-example1"></a>

Dans le cas d'utilisation suivant, un service utilise deux équilibreurs de charge distincts, l'un pour le trafic interne et l'autre pour le trafic Internet, pour le même conteneur et port.

```
"loadBalancers":[
   //Internal ELB
   {  
      "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_1/1234567890123456",
      "containerName":"nginx",
      "containerPort":8080
   },
   //Internet-facing ELB
   {  
      "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_2/6543210987654321",
      "containerName":"nginx",
      "containerPort":8080
   }
]
```

### Exposition de plusieurs ports à partir du même conteneur
<a name="multiple-targetgroups-example1"></a>

Dans le cas d'utilisation suivant, un service utilise un équilibreur de charge, mais expose plusieurs ports à partir du même conteneur. Par exemple, un conteneur Jenkins expose le port 8080 pour l'interface web Jenkins et le port 50000 pour l'API.

```
"loadBalancers":[
   {  
      "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_1/1234567890123456",
      "containerName":"jenkins",
      "containerPort":8080
   },
   {  
      "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_2/6543210987654321",
      "containerName":"jenkins",
      "containerPort":50000
   }
]
```

### Exposition de ports à partir de plusieurs conteneurs
<a name="multiple-targetgroups-example3"></a>

Dans le cas d'utilisation suivant, un service utilise un équilibreur de charge et deux groupes cibles pour exposer les ports de conteneurs distincts.

```
"loadBalancers":[
   {  
      "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_1/1234567890123456",
      "containerName":"webserver",
      "containerPort":80
   },
   {  
      "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_2/6543210987654321",
      "containerName":"database",
      "containerPort":3306
   }
]
```