

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.

# Interconnexion des services Amazon ECS
<a name="interconnecting-services"></a>

Les applications qui s'exécutent dans le cadre de tâches Amazon ECS ont souvent besoin de recevoir des connexions depuis Internet ou de se connecter à d'autres applications exécutées dans les services Amazon ECS. Si vous avez besoin de connexions externes depuis Internet, nous vous recommandons d'utiliser Elastic Load Balancing. Pour plus d'informations sur l'équilibrage de charge intégrée, consultez [Utilisation de l’équilibrage de charge pour répartir le trafic des services Amazon ECS](service-load-balancing.md).

Si vous avez besoin d'une application pour vous connecter à d'autres applications qui s'exécutent dans les services Amazon ECS, Amazon ECS propose les méthodes suivantes pour le faire sans équilibreur de charge :
+ *Amazon ECS Service Connect*

  Nous recommandons Service Connect, qui fournit une configuration Amazon ECS pour la découverte de service, la connectivité et la surveillance du trafic. Avec Service Connect, vos applications peuvent utiliser des noms abrégés et des ports standard pour se connecter aux services Amazon ECS dans le même cluster ou à d'autres clusters, y compris entre VPCs ceux-ci Région AWS.

  Lorsque vous utilisez Service Connect, Amazon ECS gère toutes les étapes de la découverte de services : création des noms susceptibles d’être découverts, gestion dynamique des entrées pour chaque tâche au démarrage et à l’arrêt des tâches, exécution d’un agent dans chaque tâche configuré pour découvrir les noms. Votre application peut rechercher les noms en utilisant les fonctionnalités standard pour les noms DNS et en établissant des connexions. Si votre application le fait déjà, vous n’avez pas besoin de modifier votre application pour utiliser Service Connect.

  Vous fournissez la configuration complète dans chaque définition de service et de tâche. Amazon ECS gère les modifications apportées à cette configuration lors de chaque déploiement de service, afin de garantir que toutes les tâches d’un déploiement se comportent de la même manière. Par exemple, un problème courant avec le DNS en tant que découverte de service est le contrôle d’une migration. Si vous modifiez un nom DNS pour qu’il pointe vers les nouvelles adresses IP de remplacement, le délai TTL maximal peut être nécessaire avant que tous les clients commencent à utiliser le nouveau service. Avec Service Connect, le déploiement du client met à jour la configuration en remplaçant les tâches du client. Vous pouvez configurer le disjoncteur de déploiement et toute autre configuration de déploiement pour affecter les modifications de Service Connect de la même manière que pour tout autre déploiement.

  Pour de plus amples informations, veuillez consulter [Utilisation de Service Connect pour connecter des services Amazon ECS avec des noms abrégés](service-connect.md).
+ *Découverte du service Amazon ECS*

  Une autre approche de service-to-service communication est la communication directe à l'aide de la découverte de services. Dans cette approche, vous pouvez utiliser l’intégration de la découverte de service AWS Cloud Map avec Amazon ECS. À l'aide de la découverte de services, Amazon ECS synchronise la liste des tâches lancées avec AWS Cloud Map, ce qui permet de conserver un nom d'hôte DNS qui correspond aux adresses IP internes d'une ou de plusieurs tâches provenant de ce service en particulier. D’autres services au sein d’Amazon VPC peuvent utiliser ce nom d’hôte DNS pour envoyer le trafic directement vers un autre conteneur en utilisant son adresse IP interne. 

  Cette approche de service-to-service communication permet une faible latence. Il n’y a aucun composant supplémentaire entre les conteneurs. Le trafic passe directement d’un conteneur à l’autre.

  Cette approche convient lorsque vous utilisez le mode réseau `awsvpc`, où chaque tâche possède sa propre adresse IP unique. La plupart des logiciels ne prennent en charge que l’utilisation d’enregistrements DNS `A`, qui se résolvent directement en adresses IP. Lorsque vous utilisez le mode réseau `awsvpc`, l’adresse IP de chaque tâche est un enregistrement `A`. Toutefois, si vous utilisez le mode réseau `bridge`, plusieurs conteneurs peuvent partager la même adresse IP. En outre, les mappages de ports dynamiques entraînent l’attribution aléatoire de numéros de port aux conteneurs sur cette adresse IP unique. À ce stade, un enregistrement `A` ne suffit plus pour la découverte de service. Vous devez également utiliser un enregistrement `SRV`. Ce type d’enregistrement permet de suivre à la fois les adresses IP et les numéros de port, mais nécessite que vous configuriez les applications de manière appropriée. Certaines applications prédéfinies que vous utilisez peuvent ne pas prendre en charge les enregistrements `SRV`.

  Un autre avantage du mode réseau `awsvpc` est que vous disposez d’un groupe de sécurité unique pour chaque service. Vous pouvez configurer ce groupe de sécurité pour autoriser les connexions entrantes provenant uniquement des services en amont spécifiques qui doivent communiquer avec ce service.

  Le principal inconvénient de la service-to-service communication directe utilisant la découverte de services est que vous devez implémenter une logique supplémentaire pour effectuer de nouvelles tentatives et faire face aux échecs de connexion. Les enregistrements DNS ont une période time-to-live (TTL) qui contrôle la durée pendant laquelle ils sont mis en cache. Il faut un certain temps pour que l’enregistrement DNS soit mis à jour et que le cache expire afin que vos applications puissent récupérer la dernière version de l’enregistrement DNS. Il se peut donc que votre application finisse par résoudre l’enregistrement DNS pour qu’il pointe vers un autre conteneur qui n’existe plus. Votre application doit gérer les nouvelles tentatives et avoir une logique lui permettant d’ignorer les mauvais dorsaux.

  Pour de plus amples informations, consultez [Utilisation de la découverte de service pour connecter les services Amazon ECS avec des noms DNS](service-discovery.md).
+ *Amazon VPC Lattice*

  Amazon VPC Lattice est un service de mise en réseau d'applications géré que les clients d'Amazon ECS utilisent pour observer, sécuriser et surveiller les applications créées à travers des services AWS informatiques et des comptes sans avoir à modifier leur code. VPCs

  VPC Lattice utilise des groupes cibles, qui sont un ensemble de ressources de calcul. Ces cibles exécutent votre application ou votre service et peuvent être des instances Amazon EC2, des adresses IP, des fonctions Lambda et des équilibreurs de charge d'application. En associant leurs services Amazon ECS à un groupe cible VPC Lattice, les clients peuvent désormais activer les tâches Amazon ECS en tant que cibles IP dans VPC Lattice. Amazon ECS enregistre automatiquement les tâches auprès du groupe cible VPC Lattice lorsque les tâches du service enregistré sont lancées.

  Pour de plus amples informations, veuillez consulter [Utilisez Amazon VPC Lattice pour connecter, observer et sécuriser vos services Amazon ECS](ecs-vpc-lattice.md).

## Tableau de compatibilité des modes réseau
<a name="interconnect-network-mode-compatibility-table"></a>

Le tableau suivant décrit la compatibilité entre ces options et les modes réseau des tâches. Dans le tableau, le terme « client » fait référence à l'application qui établit les connexions depuis une tâche Amazon ECS.


****  

| Options d'interconnexion | Pontée | `awsvpc` | Host (Hôte) | 
| --- | --- | --- | --- | 
| Découverte de service | oui, mais nécessite que les clients soient au courant des enregistrements SRV dans le DNS sans hostPort. | oui | oui, mais nécessite que les clients soient au courant des enregistrements SRV dans le DNS sans hostPort. | 
| Service Connect  | oui | oui | non | 
| Treillis en VPC | oui | oui | oui | 

# Utilisation de Service Connect pour connecter des services Amazon ECS avec des noms abrégés
<a name="service-connect"></a>

Amazon ECS Service Connect permet de gérer les service-to-service communications en tant que configuration Amazon ECS. Il crée à la fois la découverte de services et un maillage de services dans Amazon ECS. Il fournit la configuration complète de chaque service que vous gérez par le biais de déploiements de services, une manière unifiée de faire référence à vos services dans des espaces de noms qui ne dépendent pas de la configuration DNS du VPC, ainsi que des métriques et des journaux normalisés pour surveiller toutes vos applications. Service Connect n’interconnecte que les services.

Le schéma suivant montre un exemple de réseau Service Connect avec deux sous-réseaux dans le VPC et deux services. Un service client qui s'exécute WordPress avec une tâche dans chaque sous-réseau. Un service de serveur qui exécute MySQL avec une tâche dans chaque sous-réseau. Les deux services sont hautement disponibles et résilients aux problèmes liés aux tâches et aux zones de disponibilité, car chaque service exécute plusieurs tâches réparties sur deux sous-réseaux. Les flèches continues indiquent une connexion depuis WordPress MySQL. Par exemple, une commande `mysql --host=mysql` CLI exécutée depuis le WordPress conteneur dans la tâche avec l'adresse IP`172.31.16.1`. La commande utilise le nom abrégé `mysql` du port par défaut de MySQL. Ce nom et ce port se connectent au proxy Service Connect dans le cadre de la même tâche. Le proxy utilisé dans la WordPress tâche utilise l'équilibrage de charge circulaire et toutes les informations relatives aux défaillances précédentes pour détecter les valeurs aberrantes afin de sélectionner la tâche MySQL à laquelle se connecter. Comme le montrent les flèches pleines du schéma, le proxy se connecte au deuxième proxy de la tâche MySQL avec l'adresse IP `172.31.16.2`. Le second proxy se connecte au serveur MySQL local dans le cadre de la même tâche. Les deux proxys indiquent les performances de connexion qui sont visibles dans les graphiques des CloudWatch consoles Amazon ECS et Amazon afin que vous puissiez obtenir les mesures de performance de toutes sortes d'applications de la même manière.

![\[Exemple de réseau Service Connect affichant des services de haute disponibilité minimale\]](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/images/serviceconnect.png)


Les services suivants sont utilisés avec Service Connect.

**nom du port**  
Configuration de définition de tâche Amazon ECS qui attribue un nom à un mappage de port particulier. Cette configuration est uniquement utilisée par Amazon ECS Service Connect.

**alias du client**  
Configuration du service Amazon ECS qui attribue le numéro de port utilisé dans le point de terminaison. L'alias du client peut également attribuer le nom DNS du point de terminaison, en remplaçant le nom de découverte. Si aucun nom de découverte n'est fourni dans le service Amazon ECS, le nom d'alias du client remplace le nom du port comme nom de point de terminaison. Pour des exemples de points de terminaison, consultez la définition de *point de terminaison*. Plusieurs alias client peuvent être attribués à un service Amazon ECS. Cette configuration est uniquement utilisée par Amazon ECS Service Connect.

**nom de découverte**  
Nom intermédiaire facultatif que vous pouvez créer pour un port spécifié à partir de la définition de tâche. Ce nom est utilisé pour créer un AWS Cloud Map service. Si ce nom n'est pas fourni, le nom de port indiqué dans la définition de tâche est utilisé. Plusieurs noms de découverte peuvent être attribués à un port spécifique d'un service Amazon ECS. Cette configuration est uniquement utilisée par Amazon ECS Service Connect.  
AWS Cloud Map les noms de service doivent être uniques au sein d'un espace de noms. En raison de cette limitation, vous ne pouvez avoir qu'une seule configuration Service Connect sans nom de découverte pour une définition de tâche particulière dans chaque espace de noms.

**point de terminaison**  
URL permettant de se connecter à une API ou à un site Web. L'URL contient le protocole, un nom DNS et le port. Pour plus d'informations sur les points de terminaison en général, veuillez consulter [point de terminaison](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html#endpoint) dans le *glossaire AWS * de la Référence générale d'Amazon Web Services(langue française non garantie).  
Service Connect crée des points de terminaison qui se connectent aux services Amazon ECS et configure les tâches des services Amazon ECS pour se connecter aux points de terminaison. L'URL contient le protocole, un nom DNS et le port. Vous sélectionnez le protocole et le nom du port dans la définition de la tâche, car le port doit correspondre à l'application qui se trouve dans l'image du conteneur. Dans le service, vous sélectionnez chaque port par son nom et vous pouvez attribuer le nom DNS. Si vous ne spécifiez pas de nom DNS dans la configuration du service Amazon ECS, le nom de port indiqué dans la définition de tâche est utilisé par défaut. Par exemple, un point de terminaison Service Connect pourrait être `http://blog:80`, `grpc://checkout:8080` ou `http://_db.production.internal:99`.

**Service Service Connect**  
Configuration d'un point de terminaison unique dans un service Amazon ECS. Cela fait partie de la configuration de Service Connect, qui se compose d'une seule ligne dans la **configuration de Service Connect et du nom de découverte** dans la console, ou d'un objet dans la liste `services` de la configuration JSON d'un service Amazon ECS. Cette configuration est uniquement utilisée par Amazon ECS Service Connect.  
Pour plus d'informations, consultez le [ServiceConnectService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ServiceConnectService.html)manuel Amazon Elastic Container Service API Reference.

**espace de nom**  
Nom abrégé ou Amazon Resource Name (ARN) complet de l'espace de AWS Cloud Map noms à utiliser avec Service Connect. L'espace de noms doit être Région AWS identique à celui du service et du cluster Amazon ECS. Le type d'espace de noms dans AWS Cloud Map n'affecte pas Service Connect. L'espace de noms peut être partagé avec votre Compte AWS using AWS Resource Access Manager (AWS RAM) dans la mesure où Régions AWS il AWS RAM est disponible dans. Pour plus d’informations sur les espaces de noms partagés, consultez la section [Partage d’espaces de noms AWS Cloud Map entre comptes](https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html) dans le *Guide du développeur AWS Cloud Map *.  
Service Connect utilise l' AWS Cloud Map espace de noms comme un regroupement logique de tâches Amazon ECS qui communiquent entre elles. Chaque service Amazon ECS ne peut appartenir qu'à un seul espace de noms. Les services d’un espace de noms peuvent être répartis sur différents clusters Amazon ECS au sein d’une même Région AWS. Si l’espace de noms est un espace de noms partagé, les services peuvent être répartis entre le propriétaire et le consommateur de l’espace de noms Comptes AWS. Vous pouvez organiser librement les services selon n’importe quel critère.

**service client**  
Un service Amazon ECS qui exécute une application client réseau. Un espace de noms doit être configuré pour ce service. Chaque tâche du service peut découvrir et se connecter à tous les points de terminaison de l'espace de noms via un conteneur de proxy Service Connect.  
Si l'un des conteneurs de la tâche doit se connecter à un point de terminaison à partir d'un service situé dans un espace de noms, choisissez un service client. Si une application frontend, un proxy inverse ou une application d'équilibreur de charge reçoit du trafic externe via d'autres méthodes comme Elastic Load Balancing, elle peut utiliser ce type de configuration Service Connect.

**service client-serveur**  
Service Amazon ECS qui exécute une application service réseau ou web. Un espace de noms et au moins un point de terminaison doivent être configurés pour ce service. Chaque tâche du service est accessible à l'aide des points de terminaison. Le conteneur de proxy Service Connect écoute le nom et le port du point de terminaison pour diriger le trafic vers les conteneurs d'applications de la tâche.  
Si l'un des conteneurs expose et écoute le trafic réseau sur un port, choisissez un service client-serveur. Ces applications n’ont pas besoin de se connecter à d’autres services client-serveur dans le même espace de noms, mais la configuration du client est nécessaire. Un dorsal, un intergiciel, une couche entreprise ou la plupart des microservices utilisent ce type de configuration Service Connect. Si vous souhaitez qu'une application frontend, un proxy inverse ou une application d'équilibreur de charge reçoive du trafic provenant d'autres services configurés avec Service Connect dans le même espace de noms, ces services doivent utiliser ce type de configuration Service Connect.

La fonctionnalité Service Connect crée un réseau virtuel de services connexes. La même configuration de service peut être utilisée sur plusieurs espaces de noms différents pour exécuter des ensembles d'applications indépendants mais identiques. Service Connect définit le conteneur de proxy dans le service Amazon ECS. Ainsi, la même définition de tâche peut être utilisée pour exécuter des applications identiques dans différents espaces de noms avec des configurations Service Connect différentes. Chaque tâche réalisée par le service exécute un conteneur de proxy dans la tâche.

Service Connect convient aux connexions entre les services Amazon ECS au sein du même espace de noms. Pour les applications suivantes, vous devez utiliser une méthode d'interconnexion supplémentaire pour vous connecter à un service Amazon ECS configuré avec Service Connect :
+ Tâches configurées dans d’autres espaces de noms
+ Tâches qui ne sont pas configurées pour Service Connect
+ Autres applications en dehors d’Amazon ECS

Ces applications peuvent se connecter via le proxy Service Connect mais ne peuvent pas résoudre les noms des points de terminaison Service Connect.

Pour que ces applications puissent résoudre les adresses IP des tâches Amazon ECS, vous devez utiliser une autre méthode d’interconnexion. 

**Topics**
+ [Tarification](#service-connect-pricing)
+ [Composants d’Amazon ECS Service Connect](service-connect-concepts-deploy.md)
+ [Vue d’ensemble de la configuration d’Amazon ECS Service Connect](service-connect-concepts.md)
+ [Amazon ECS Service Connect avec espaces de AWS Cloud Map noms partagés](service-connect-shared-namespaces.md)
+ [Journaux d'accès Amazon ECS Service Connect](service-connect-envoy-access-logs.md)
+ [Chiffrement du trafic Amazon ECS Service Connect](service-connect-tls.md)
+ [Configuration d'Amazon ECS Service Connect avec AWS CLI](create-service-connect.md)

## Tarification
<a name="service-connect-pricing"></a>
+ La tarification d'Amazon ECS Service Connect varie selon que vous utilisez AWS Fargate ou non l'infrastructure Amazon EC2 pour héberger vos charges de travail conteneurisées. Lorsque vous utilisez Amazon ECS sur AWS Outposts, la tarification suit le même modèle que lorsque vous utilisez directement Amazon EC2. Pour plus d'informations, consultez [Tarification Amazon ECS](https://aws.amazon.com/ecs/pricing).
+ L’utilisation d’Amazon ECS Service Connect n’entraîne pas de frais supplémentaires.
+ Il n'y a aucun frais d' AWS Cloud Map utilisation supplémentaire lorsqu'il est utilisé par Service Connect.
+ Les clients paient pour les ressources de calcul utilisées par Amazon ECS Service Connect, notamment le vCPU et la mémoire. Étant donné que l’agent Amazon ECS Service Connect s’exécute dans une tâche client, son utilisation n’entraîne pas de frais supplémentaires. Les ressources de tâche sont partagées entre la charge de travail du client et l’agent Amazon ECS Service Connect.
+ Lorsqu'ils utilisent la fonctionnalité de chiffrement du trafic Amazon ECS Service Connect avec AWS CA privée, les clients paient pour l'autorité de certification privée qu'ils créent et pour chaque certificat TLS émis. Pour plus d’informations, consultez la section [Tarification AWS Autorité de certification privée](https://aws.amazon.com/private-ca/pricing/). Pour estimer le coût mensuel des certificats TLS, les clients doivent connaître le nombre de services Amazon ECS sur lesquels le protocole TLS est activé, le multiplier par le coût du certificat, puis le multiplier par six. Amazon ECS Service Connect faisant automatiquement alterner les certificats TLS tous les cinq jours, six certificats sont émis par service Amazon ECS, par mois, en moyenne.

# Composants d’Amazon ECS Service Connect
<a name="service-connect-concepts-deploy"></a>

Lorsque vous utilisez Amazon ECS Service Connect, vous configurez chaque service Amazon ECS pour exécuter une application serveur qui reçoit des requêtes réseau (service client-serveur) ou pour exécuter une application cliente qui fait les requêtes (service client).

Lorsque vous vous préparez à utiliser Service Connect, commencez par un service client-serveur. Vous pouvez ajouter une configuration Service Connect à un nouveau service ou à un service existant. Amazon ECS crée un point de terminaison Service Connect dans l’espace de noms. En outre, Amazon ECS crée un nouveau déploiement dans le service pour remplacer les tâches en cours d'exécution.

Les tâches existantes et les autres applications peuvent continuer à se connecter aux points de terminaison existants et aux applications externes. Si un service client-serveur ajoute des tâches par augmentation horizontale, les nouvelles connexions provenant des clients seront réparties de manière équilibrée entre toutes les tâches. Si un service client-serveur est mis à jour, les nouvelles connexions provenant des clients seront réparties de manière équilibrée entre les tâches de la nouvelle version.

Les tâches existantes ne peuvent pas être résolues et se connecter au nouveau point de terminaison. Seules les nouvelles tâches disposant d’une configuration Service Connect dans le même espace de noms et qui commencent à s’exécuter après ce déploiement peuvent résoudre et se connecter à ce point de terminaison. 

Cela signifie que l'opérateur de l'application cliente détermine quand la configuration de son application change, même si l'opérateur de l'application serveur peut modifier sa configuration à tout moment. La liste des points de terminaison dans l’espace de noms peut changer à chaque fois qu’un service de cet espace de noms est déployé. Les tâches existantes et les tâches de remplacement continuent de se comporter comme elles le faisaient après le déploiement le plus récent.

Considérez les exemples suivants.

Tout d'abord, supposons que vous créez une application disponible sur Internet public dans un seul AWS CloudFormation modèle et une seule CloudFormation pile. La découverte publique et l'accessibilité doivent être créées en dernier lieu CloudFormation, y compris le service client frontal. Les services doivent être créés dans cet ordre afin d'éviter toute période pendant laquelle le service client frontend fonctionne et est accessible au public, alors que le backend ne l'est pas. Cela permet d'éliminer l'envoi de messages d'erreur au public pendant cette période. Dans AWS CloudFormation, vous devez utiliser le `dependsOn` pour indiquer CloudFormation que plusieurs services Amazon ECS ne peuvent pas être créés en parallèle ou simultanément. Vous devez ajouter la valeur `dependsOn` au service client frontal pour chaque service backend client-serveur auquel les tâches clientes se connectent.

Ensuite, supposons qu'un service frontal existe sans configuration Service Connect. Les tâches se connectent à un service backend existant. Ajoutez d'abord une configuration Service Connect client-serveur au service backend, en utilisant le même nom dans le **DNS** ou `clientAlias` que celui utilisé par le frontend. Cela crée un nouveau déploiement, donc toutes les détections d'annulation du déploiement ou AWS Management Console AWS CLI, AWS SDKs et d'autres méthodes pour annuler et rétablir le service principal au déploiement et à la configuration précédents. Si vous êtes satisfait des performances et du comportement du service backend, ajoutez une configuration Service Connect client ou client-serveur au service frontal. Seules les tâches du nouveau déploiement utilisent le proxy Service Connect qui est ajouté à ces nouvelles tâches. Si vous rencontrez des problèmes avec cette configuration, vous pouvez revenir en arrière et revenir à votre configuration précédente en utilisant la détection de l'annulation du déploiement ou AWS Management Console d'autres méthodes pour restaurer et rétablir le service principal à son déploiement et à sa configuration précédents. AWS CLI AWS SDKs Si vous utilisez un autre système de découverte de services basé sur le DNS au lieu de Service Connect, toutes les applications frontales ou clientes commencent à utiliser de nouveaux points de terminaison et à modifier la configuration des points de terminaison après l'expiration du cache DNS local, ce qui prend généralement plusieurs heures.

## Réseaux
<a name="service-connect-concepts-network"></a>

Par défaut, le proxy Service Connect écoute sur le `containerPort` à partir du mappage de port de la définition de tâche. Les règles de votre groupe de sécurité doivent autoriser le trafic entrant (ingress) vers ce port depuis les sous-réseaux où les clients seront exécutés.

Même si vous définissez un numéro de port dans la configuration du service Service Connect, cela ne modifie pas le port du service client-serveur écouté par le proxy Service Connect. Lorsque vous définissez ce numéro de port, Amazon ECS modifie le port du point de terminaison auquel les services clients se connectent, sur le proxy Service Connect au sein de ces tâches. Le proxy du service client se connecte au proxy du service client-serveur à l'aide du `containerPort`.

Si vous souhaitez modifier le port sur lequel le proxy Service Connect écoute, modifiez le `ingressPortOverride` dans la configuration Service Connect du service client-serveur. Si vous modifiez ce numéro de port, vous devez autoriser le trafic entrant sur ce port utilisé par le trafic vers ce service.

Le trafic que vos applications envoient aux services Amazon ECS configurés pour Service Connect nécessite qu'Amazon VPC et les sous-réseaux disposent de règles de table de routage et de règles d'ACL réseau qui autorisent les numéros de port `containerPort` et `ingressPortOverride` que vous utilisez.

 Vous pouvez utiliser Service Connect pour envoyer du trafic entre deux VPCs. Les mêmes exigences relatives aux règles de table de routage, au réseau ACLs et aux groupes de sécurité s'appliquent aux deux VPCs.

Par exemple, deux clusters créent des tâches différentes VPCs. Un service dans chaque cluster est configuré pour utiliser le même espace de noms. Les applications dans ces deux services peuvent résoudre tous les points de terminaison de l'espace de noms sans aucune configuration DNS VPC. Cependant, les proxys ne peuvent pas se connecter à moins que les tables de routage VPC, le VPC ou les tables de routage de sous-réseau et le réseau ACLs VPC n'autorisent le trafic sur les numéros de port et. `containerPort` `ingressPortOverride`

Pour les tâches utilisant le mode réseau `bridge`, vous devez créer un groupe de sécurité doté d’une règle entrante autorisant le trafic sur la plage de ports dynamiques supérieure. Attribuez ensuite le groupe de sécurité à toutes les instances EC2 du cluster Service Connect.

## Proxy Service Connect
<a name="service-connect-concepts-proxy"></a>

Si vous créez ou mettez à jour un service avec la configuration Service Connect, Amazon ECS ajoute un nouveau conteneur à chaque nouvelle tâche au moment où elle est lancée. Ce modèle d'utilisation d'un conteneur séparé est nommé `sidecar`. Ce conteneur n'est pas présent dans la définition de la tâche et vous ne pouvez pas le configurer. Amazon ECS gère la configuration des conteneurs dans le service. Cela vous permet de réutiliser les mêmes définitions de tâches entre plusieurs services, espaces de noms et tâches sans Service Connect.

**Ressource de proxy**
+ Pour les définitions de tâches, vous devez définir les paramètres d’UC et de mémoire. 

  Nous vous recommandons d’ajouter 256 unités d’UC supplémentaires et au moins 64 Mio de mémoire à votre UC et à votre mémoire de tâche pour le conteneur proxy Service Connect. Dans AWS Fargate, la quantité de mémoire la plus faible que vous pouvez définir est de 512 Mio de mémoire. Sur Amazon EC2, la mémoire de définition des tâches est requise.
+ Pour le service, vous définissez la configuration du journal dans la configuration Service Connect.
+ Si vous prévoyez que les tâches de ce service reçoivent plus de 500 demandes par seconde à leur charge maximale, nous vous recommandons d'ajouter 512 unités de processeur à votre processeur de tâches dans cette définition de tâche pour le conteneur de proxy Service Connect.
+ Si vous prévoyez de créer plus de 100 services Service Connect dans l'espace de noms ou 2 000 tâches au total pour tous les services Amazon ECS dans l'espace de noms, nous vous recommandons d'ajouter 128 Mio de mémoire à votre mémoire de tâche pour le conteneur de proxy Service Connect. Vous devez le faire dans chaque définition de tâche utilisée par tous les services Amazon ECS dans l'espace de noms.

**Configuration du proxy**  
Vos applications se connectent au proxy dans le conteneur sidecar dans le cadre de la même tâche dans laquelle se trouve l'application. Amazon ECS configure la tâche et les conteneurs de telle sorte que les applications ne se connectent au proxy que lorsque l’application est connectée aux noms des points de terminaison dans le même espace de noms. Tout le reste du trafic n'utilise pas le proxy. L'autre trafic inclut les adresses IP du même VPC, les points de terminaison AWS de service et le trafic externe.

**Équilibrage de charge**  
Service Connect configure le proxy pour qu'il utilise la stratégie alternée pour équilibrer la charge entre les tâches d'un point de terminaison Service Connect. Le proxy local présent dans la tâche d'où provient la connexion choisit l'une des tâches du service client-serveur qui fournit le point de terminaison.  
Prenons l'exemple d'une tâche exécutée WordPress dans un service configuré en tant que *service client* dans un espace de noms appelé *local*. Il existe un autre service avec deux tâches qui exécutent la base de données MySQL. Ce service est configuré pour fournir un point de terminaison appelé `mysql` via Service Connect dans le même espace de noms. Dans WordPress cette tâche, l' WordPress application se connecte à la base de données en utilisant le nom du point de terminaison. Les connexions à ce nom sont redirigées vers le proxy qui s’exécute dans un conteneur sidecar dans la même tâche. Le proxy peut ensuite se connecter à l'une ou l'autre des tâches MySQL en utilisant la stratégie alternée.  
Stratégies d'équilibrage de charge : alternance

**Détection des valeurs aberrantes**  
Cette fonctionnalité utilise les données dont dispose le proxy concernant les échecs de connexion précédents pour éviter d'envoyer de nouvelles connexions aux hôtes dont les connexions ont échoué. Service Connect configure la fonctionnalité de détection des valeurs aberrantes du proxy afin de fournir des surveillances de l'état passives.  
En reprenant l’exemple précédent, le proxy peut se connecter à l’une ou l’autre des tâches MySQL. Si le proxy a établi plusieurs connexions à une tâche MySQL spécifique et que 5 connexions ou plus ont échoué au cours des 30 dernières secondes, le proxy évite cette tâche MySQL pendant 30 à 300 secondes.

**Nouvelles tentatives**  
Service Connect configure le proxy pour qu'il tente à nouveau la connexion qui passe par le proxy et échoue, et la deuxième tentative évite d'utiliser l'hôte de la connexion précédente. Cela garantit que chaque connexion via Service Connect n'échoue pas pour des raisons ponctuelles.  
Nombre de nouvelles tentatives : 2

**Timeout**  
Service Connect configure le proxy pour qu'il attende au maximum que vos applications client-serveur répondent. La valeur de délai d’attente par défaut est de 15 secondes, mais elle peut être mise à jour.  
Paramètres facultatifs :  
**idleTimeout** : durée en secondes pendant laquelle une connexion reste active lorsqu’elle est au repos. Une valeur de `0` désactive `idleTimeout`.  
La valeur par défaut de `idleTimeout` pour `HTTP`/`HTTP2`/`GRPC` est de cinq minutes.  
La valeur par défaut de `idleTimeout` pour `TCP` est d’une heure.  
**perRequestTimeout**‐ Le temps d'attente pour que l'amont réponde avec une réponse complète par demande. Une valeur de `0` désactive `perRequestTimeout`. Ce paramètre ne peut être défini que lorsque le protocole `appProtocol` du conteneur d’application est `HTTP`/`HTTP2`/`GRPC`. La valeur par défaut est de 15 secondes.  
Si `idleTimeout` est défini sur une durée inférieure à `perRequestTimeout`, la connexion se ferme lorsque le `idleTimeout` est atteint et non le `perRequestTimeout`.

## Considérations
<a name="service-connect-considerations"></a>

Tenez compte des éléments suivants lorsque vous utilisez Service Connect :
+ Les tâches exécutées dans Fargate doivent utiliser la version de plateforme Linux Fargate `1.4.0` ou supérieure pour pouvoir utiliser Service Connect.
+ La version de l’agent Amazon ECS sur l’instance de conteneur doit être la version `1.67.2` ou supérieure.
+ Les instances de conteneur doivent exécuter la version `20230428` ou une version ultérieure d'AMI Amazon Linux 2023 optimisée pour Amazon ECS, ou la version `2.0.20221115` d'AMI Amazon Linux 2 optimisée pour Amazon ECS pour utiliser Service Connect. Ces versions disposent de l'agent Service Connect en plus de l'agent de conteneur Amazon ECS. Pour plus d'informations sur l'agent Service Connect, consultez [Amazon ECS Service Connect Agent](https://github.com/aws/amazon-ecs-service-connect-agent) sur GitHub.
+ Les instances de conteneur doivent disposer de l'autorisation `ecs:Poll` pour la ressource `arn:aws:ecs:region:0123456789012:task-set/cluster/*`. Si vous utilisez le `ecsInstanceRole`, vous n'avez pas besoin d'ajouter d'autorisations supplémentaires. La stratégie gérée par `AmazonEC2ContainerServiceforEC2Role` dispose de ces autorisations. Pour de plus amples informations, veuillez consulter [Rôle IAM d'instance de conteneur Amazon ECS](instance_IAM_role.md).
+ Les tâches qui utilisent le mode réseau `bridge` et utilisent Service Connect ne prennent pas en charge le paramètre de définition du conteneur `hostname`.
+ Les définitions de tâches doivent définir la limite de mémoire des tâches pour utiliser Service Connect. Pour de plus amples informations, veuillez consulter [Proxy Service Connect](#service-connect-concepts-proxy).
+ Les définitions de tâches qui définissent les limites de mémoire des conteneurs ne sont pas prises en charge.

  Vous pouvez définir des limites de mémoire de conteneur sur vos conteneurs, mais vous devez définir la limite de mémoire des tâches sur un nombre supérieur à la somme des limites de mémoire des conteneurs. Le processeur et la mémoire supplémentaires inclus dans les limites de tâches que vous n'allouez pas dans les limites de conteneur sont utilisés par le conteneur de proxy Service Connect et les autres conteneurs qui ne définissent pas de limites de conteneur. Pour de plus amples informations, veuillez consulter [Proxy Service Connect](#service-connect-concepts-proxy).
+ Vous pouvez configurer Service Connect pour utiliser n'importe quel AWS Cloud Map espace de noms de la même région qui se trouve dans la même région Compte AWS ou qui est partagé avec vous Compte AWS . AWS Resource Access Manager Pour plus d’informations sur l’utilisation d’espaces de nom partagés, consultez la section [Amazon ECS Service Connect avec espaces de AWS Cloud Map noms partagés](service-connect-shared-namespaces.md).
+ Chaque service ne peut appartenir qu’à un seul espace de noms.
+ Seules les tâches créées par les services sont prises en charge. 
+ Tous les points de terminaison doivent être uniques dans un espace de noms.
+ Tous les noms de découverte doivent être uniques dans un espace de noms.
+ Vous devez redéployer les services existants avant que les applications puissent résoudre les nouveaux points de terminaison. Les nouveaux points de terminaison ajoutés à l'espace de noms après le déploiement le plus récent ne seront pas ajoutés à la configuration de la tâche. Pour de plus amples informations, veuillez consulter [Composants d’Amazon ECS Service Connect](#service-connect-concepts-deploy).
+ Service Connect ne supprime pas les espaces de noms lorsque les clusters sont supprimés. Vous devez supprimer les espaces de noms dans. AWS Cloud Map
+ Le trafic de l’Application Load Balancer est acheminé par défaut via l’agent Service Connect en mode réseau `awsvpc`. Si vous souhaitez que le trafic non lié au service contourne l’agent Service Connect, utilisez le paramètre `[ingressPortOverride](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ServiceConnectService.html)` dans la configuration de votre service Service Connect.
+ Service Connect avec TLS ne prend pas en charge le mode réseau `bridge`. Seul le mode réseau `awsvpc` est pris en charge.
+ En `awsvpc` mode, le proxy Service Connect transmet le trafic vers l' IPv4 hôte local `127.0.0.1` pour les services dans des IPv4 configurations à double pile ou uniquement. Pour les services en configuration «  IPv6 -only », le proxy transmet le trafic vers l'hôte IPv6 local`::1`. Nous vous recommandons de configurer vos applications de manière à écouter les deux hôtes locaux pour une expérience fluide lorsqu'un service passe d'une configuration IPv4 -only ou dualstack à -only. IPv6 Pour plus d’informations, consultez [Options de mise en réseau des tâches Amazon ECS pour EC2](task-networking.md) et [Options de mise en réseau des tâches Amazon ECS pour Fargate](fargate-task-networking.md).

**Service Connect ne prend pas en charge les fonctionnalités suivantes :**
+ Conteneurs Windows
+ HTTP 1.0
+ Tâches autonomes
+ Services utilisant les types de déploiement blue/green alimenté par CodeDeploy et externe
+ L'instance de conteneur `External` pour Amazon ECS Anywhere n'est pas prise en charge par Service Connect.
+ PPv2
+ Mode FIPS

# Vue d’ensemble de la configuration d’Amazon ECS Service Connect
<a name="service-connect-concepts"></a>

Lorsque vous utilisez Service Connect, vous devez configurer certains paramètres dans vos ressources. 

Le tableau suivant décrit les paramètres de configuration pour les ressources Amazon ECS.


| Emplacement des paramètres | Type d'application | Description | Obligatoire | 
| --- | --- | --- | --- | 
| Définition de tâche | Client | Aucune modification n'est disponible pour Service Connect dans les définitions des tâches du client. | N/A | 
| Définition de tâche | Client-serveur | Les serveurs doivent ajouter des champs de name aux ports dans les portMappings des conteneurs. Pour de plus amples informations, consultez [portMappings](task_definition_parameters.md#ContainerDefinition-portMappings). | Oui | 
| Définition de tâche | Client-serveur | Les serveurs peuvent éventuellement fournir un protocole d'application (par exemple, HTTP) pour recevoir des métriques spécifiques au protocole pour leurs applications serveur (par exemple, HTTP 5xx). | Non | 
| Définition des services | Client | Les services clients doivent ajouter une serviceConnectConfiguration pour configurer l'espace de noms à rejoindre. Cet espace de noms doit contenir tous les services de serveur que ce service doit découvrir. Pour de plus amples informations, veuillez consulter [serviceConnectConfiguration](service_definition_parameters.md#Service-serviceConnectConfiguration). | Oui | 
| Définition des services | Client-serveur | Les services de serveur doivent ajouter une serviceConnectConfiguration pour configurer les noms DNS, les numéros de port et l'espace de noms à partir desquels le service est disponible. Pour de plus amples informations, veuillez consulter [serviceConnectConfiguration](service_definition_parameters.md#Service-serviceConnectConfiguration). | Oui | 
| Cluster | Client | Les clusters peuvent ajouter un espace de noms Service Connect par défaut. Les nouveaux services du cluster héritent de l'espace de noms lorsque Service Connect est configuré dans un service.  | Non | 
| Cluster | Client-serveur | Aucune modification n'est disponible pour Service Connect dans les clusters qui s'appliquent aux services de serveur. Les définitions de tâches de serveur et les services doivent définir la configuration correspondante. | N/A | 

**Vue d'ensemble des étapes de configuration de Service Connect**  
Les étapes suivantes présentent la configuration de Service Connect.

**Important**  
 Service Connect crée AWS Cloud Map des services dans votre compte. La modification manuelle de ces AWS Cloud Map ressources par le biais d' registering/deregistering instances, la modification des attributs d'instance ou la suppression d'un service peuvent entraîner un comportement inattendu pour le trafic de votre application ou pour les déploiements ultérieurs.
 Service Connect ne prend pas en charge les liens dans la définition des tâches.

1. Ajoutez des noms de port aux mappages de port dans vos définitions de tâches. Vous pouvez également identifier le protocole de couche 7 de l'application afin d'obtenir des métriques supplémentaires.

1. Créez un cluster avec un espace de AWS Cloud Map noms, utilisez un espace de noms partagé ou créez l'espace de noms séparément. Pour simplifier l’organisation, créez un cluster avec le nom que vous souhaitez pour l’espace de noms et spécifiez le même nom pour l’espace de noms. Dans ce cas, Amazon ECS crée un nouvel espace de noms HTTP avec la configuration nécessaire. Service Connect n’utilise ni ne crée de zones hébergées DNS dans Amazon Route 53.

1. Configurez les services pour créer des points de terminaison Service Connect dans l'espace de noms.

1. Déployez des services pour créer les points de terminaison. Amazon ECS ajoute un conteneur de proxy Service Connect à chaque tâche et crée les points de terminaison Service Connect dans AWS Cloud Map. Ce conteneur n'est pas configuré dans la définition de tâche, et cette dernière peut être réutilisée sans modification pour créer plusieurs services dans le même espace de noms ou dans plusieurs espaces de noms.

1. Déployez des applications clientes en tant que services pour vous connecter aux points de terminaison. Amazon ECS les connecte aux points de terminaison Service Connect par le proxy Service Connect dans chaque tâche.

   Les applications utilisent le proxy uniquement pour se connecter aux points de terminaison Service Connect. Il n'existe aucune configuration supplémentaire pour utiliser le proxy. Le proxy effectue un équilibrage de charge alterné, une détection des valeurs aberrantes et de nouvelles tentatives. Pour plus d'informations sur le proxy, veuillez consulter [Proxy Service Connect](service-connect-concepts-deploy.md#service-connect-concepts-proxy).

1. Surveillez le trafic via le proxy Service Connect sur Amazon CloudWatch.

## Configuration du cluster
<a name="service-connect-concepts-cluster-defaults"></a>

Vous pouvez définir un espace de noms par défaut pour Service Connect lorsque vous créez ou mettez à jour le cluster. Le nom de l'espace de noms que vous spécifiez par défaut peut se trouver soit dans le même Région AWS compte, soit dans le même Région AWS et partagé par un autre utilisateur Compte AWS . AWS Resource Access Manager

Si vous créez un cluster et que vous spécifiez un espace de noms Service Connect par défaut, le cluster attend dans l'état `PROVISIONING` pendant qu'Amazon ECS crée l'espace de noms. Vous pouvez voir un `attachment` dans l'état du cluster qui indique l'état de l'espace de noms. Les pièces jointes ne sont pas affichées par défaut dans le AWS CLI, vous devez les ajouter `--include ATTACHMENTS` pour les voir.

Si vous souhaitez utiliser un espace de noms partagé avec vos Compte AWS utilisateurs AWS RAM, spécifiez l'Amazon Resource Name (ARN) de l'espace de noms dans la configuration du cluster. Pour plus d'informations sur les AWS Cloud Map espaces de noms partagés, consultez[Amazon ECS Service Connect avec espaces de AWS Cloud Map noms partagés](service-connect-shared-namespaces.md).

## Configuration du service
<a name="service-connect-concepts-config"></a>

Service Connect est conçu pour nécessiter une configuration minimale. Vous devez définir un nom pour chaque mappage de port que vous souhaitez utiliser avec Service Connect dans la définition de tâche. Dans le service, vous devez activer Service Connect et sélectionner un espace de noms dans votre espace de noms Compte AWS ou un espace de noms partagé pour créer un service client. Pour créer un service client-serveur, vous devez ajouter une configuration de service Service Connect unique qui correspond au nom de l'un des mappages de port. Amazon ECS réutilise le numéro de port et le nom de port figurant dans la définition de tâche pour définir le service et le point de terminaison Service Connect. Pour remplacer ces valeurs, vous pouvez utiliser les autres paramètres **Discovery** (Découverte), **DNS** et **Port** dans la console ou `discoveryName` et `clientAliases`, respectivement, dans l'API Amazon ECS.

## Configuration initiale du Health Check
<a name="service-connect-concepts-health-check"></a>

Service Connect garantit l'intégrité des tâches avant d'acheminer le trafic vers celles-ci. Lorsqu'une tâche est lancée (lors des déploiements, du dimensionnement ou des remplacements), Service Connect surveille l'état de votre tâche pour s'assurer qu'elle est prête à accepter du trafic. Vous devez définir des contrôles de santé pour le conteneur essentiel dans votre définition de tâche pour activer ce comportement.

Le comportement du bilan de santé initial tient compte des retards potentiels avant d'atteindre l'état où une tâche est prête à accepter du trafic :
+ Si une tâche l'est`HEALTHY`, elle est immédiatement disponible pour le trafic.
+ Si l'état d'une tâche est bon`UNKNOWN`, Service Connect suit la configuration de vérification de l'état des conteneurs (voir[Surveillance de l'état](task_definition_parameters.md#container_definition_healthcheck)) des conteneurs essentiels de la tâche afin de calculer un délai d'attente, jusqu'à`8 minutes`, avant de le mettre à la disposition du trafic, même s'il persiste`UNKNOWN`.
+ Si c'est le cas`UNHEALTHY`, Amazon ECS peut lancer des tâches de remplacement. Si aucune tâche saine n'est disponible, votre déploiement peut être annulé en fonction de la configuration de votre service.

Pour l'ensemble du trafic en cours, Service Connect utilise des contrôles de santé passifs basés sur la détection des valeurs aberrantes afin d'acheminer le trafic de manière efficace.

# Amazon ECS Service Connect avec espaces de AWS Cloud Map noms partagés
<a name="service-connect-shared-namespaces"></a>

Amazon ECS Service Connect prend en charge l'utilisation d' AWS Cloud Map espaces de noms partagés sur plusieurs sites Comptes AWS au sein d'un même Région AWS site. Cette fonctionnalité vous permet de créer des applications distribuées dans lesquelles des services exécutés dans différents environnements Comptes AWS peuvent se découvrir et communiquer entre eux via Service Connect. Les espaces de noms partagés sont gérés à l’aide d’ AWS Resource Access Manager (AWS RAM), qui permet un partage sécurisé des ressources entre comptes. *Pour plus d'informations sur les espaces de noms partagés, consultez la section [Partage d'espaces de AWS Cloud Map noms entre comptes](https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html) dans le Guide du AWS Cloud Map développeur.*

**Important**  
Vous devez utiliser l’autorisation gérée `AWSRAMPermissionCloudMapECSFullPermission` pour partager l’espace de noms afin que Service Connect fonctionne correctement avec l’espace de noms.

Lorsque vous utilisez des AWS Cloud Map espaces de noms partagés avec Service Connect, les services de plusieurs utilisateurs Comptes AWS peuvent participer au même espace de noms de service. Cela est particulièrement utile pour les organisations qui en ont plusieurs et Comptes AWS qui ont besoin de maintenir service-to-service la communication au-delà des limites de leurs comptes tout en préservant la sécurité et l'isolation.

**Note**  
Pour communiquer avec des services situés dans des environnements différents VPCs, vous devez configurer la connectivité inter-VPC. Cela peut être réalisé à l’aide d’une connexion d’appairage de VPC. Pour plus d’informations, consultez la section [Création ou suppression d’une connexion d’appairage de VPC](https://docs.aws.amazon.com/vpc/latest/peering/create-vpc-peering-connection.html) dans le *Guide d’appairage de VPC Amazon Virtual Private Cloud*.

# Utilisation d' AWS Cloud Map espaces de noms partagés avec Amazon ECS Service Connect
<a name="service-connect-shared-namespaces-setup"></a>

La configuration d' AWS Cloud Map espaces de noms partagés pour Service Connect implique les étapes suivantes : le propriétaire de l'espace de noms crée l'espace de noms, le propriétaire le partage via AWS Resource Access Manager (AWS RAM), le consommateur accepte le partage des ressources et le consommateur configure Service Connect pour utiliser l'espace de noms partagé.

## Étape 1 : Création de l'espace de AWS Cloud Map noms
<a name="service-connect-shared-namespaces-create"></a>

Le propriétaire de l'espace de noms crée un AWS Cloud Map espace de noms qui sera partagé avec d'autres comptes.

**Pour créer un espace de noms à partager à l'aide du AWS Management Console**

1. Ouvrez la AWS Cloud Map console à l'adresse [https://console.aws.amazon.com/cloudmap/](https://console.aws.amazon.com/cloudmap/).

1. Choisissez **Create namespace (Créer un espace de noms)**.

1. Saisissez un **Nom d’espace de noms**. Ce nom sera utilisé par les services sur tous les comptes participants.

1. Pour **Type d’espace de noms**, choisissez le type adapté à votre cas d’utilisation :
   + **Appels d’API** : espaces de noms HTTP pour la découverte de service sans fonctionnalité DNS.
   + **Appels d'API et requêtes DNS dans VPCs** des espaces de noms DNS privés pour la découverte de services avec des requêtes DNS privées dans un VPC.
   + **Appels d’API et requêtes DNS publiques** : espaces de noms DNS publics pour la découverte de service avec des requêtes DNS publiques.

1.  Choisissez **Create namespace (Créer un espace de noms)**.

## Étape 2 : partager l'espace de noms en utilisant AWS RAM
<a name="service-connect-shared-namespaces-share"></a>

Le propriétaire de l'espace de noms utilise AWS RAM pour partager l'espace de noms avec d'autres. Comptes AWS

**Pour partager un espace de noms à l'aide de la console AWS RAM**

1. Ouvrez la AWS RAM console à l'adresse [https://console.aws.amazon.com/ram/](https://console.aws.amazon.com/ram/).

1. Choisissez **Créer une ressource**.

1. Sous **Nom**, saisissez un nom descriptif pour le partage de ressources.

1. Dans la section **Ressources** :

   1. Pour **Type de ressource**, choisissez **Espaces de noms Cloud Map**.

   1. Sélectionnez l’espace de noms que vous avez créé à l’étape précédente.

1. Dans la section **Autorisations gérées**, spécifiez **AWSRAMPermissionCloudMapECSFullAutorisation**.
**Important**  
Vous devez utiliser l’autorisation gérée `AWSRAMPermissionCloudMapECSFullPermission` pour partager l’espace de noms afin que Service Connect fonctionne correctement avec l’espace de noms.

1. Dans la section **Principaux**, spécifiez l’ Comptes AWS avec lequel vous souhaitez partager l’espace de noms. Vous pouvez saisir un compte IDs ou une unité organisationnelle IDs.

1. Choisissez **Créer une ressource**.

## Étape 3 : accepter le partage de ressources
<a name="service-connect-shared-namespaces-accept"></a>

Les comptes consommateurs d’espaces de noms doivent accepter l’invitation de partage de ressources pour utiliser l’espace de noms partagé.

**Pour accepter une invitation de partage de ressources à l'aide de la AWS RAM console**

1. Dans le compte client, ouvrez la AWS RAM console à l'adresse [https://console.aws.amazon.com/ram/](https://console.aws.amazon.com/ram/).

1. Dans le volet de navigation, choisissez **Partagé avec moi**, puis **Partages de ressources**.

1. Sélectionnez l’invitation au partage de ressources, puis choisissez **Accepter le partage de ressources**.

1. Après avoir accepté, notez l’ARN de l’espace de noms partagé dans les détails de la ressource. Vous utiliserez cet ARN lors de la configuration des services Service Connect.

## Étape 4 : configurer un service Amazon ECS avec un espace de noms partagé
<a name="service-connect-shared-namespaces-configure"></a>

Après avoir accepté l’espace de noms partagé, le consommateur de l’espace de noms peut configurer les services Amazon ECS pour utiliser l’espace de noms partagé. La configuration est similaire à l’utilisation d’un espace de noms normal, mais vous devez spécifier l’ARN de l’espace de noms au lieu du nom. Pour une procédure détaillée de création de service, consultez la section [Création d’un déploiement de mise à jour propagée Amazon ECS](create-service-console-v2.md).

**Pour créer un service avec un espace de noms partagé à l'aide du AWS Management Console**

1. Ouvrez la console à la [https://console.aws.amazon.com/ecs/version 2](https://console.aws.amazon.com/ecs/v2).

1. Sur la page **Clusters**, sélectionnez le cluster dans lequel créer le service.

1. Sous **Services**, choisissez **Créer**.

1. Après avoir renseigné d’autres informations en fonction de votre charge de travail, dans la section **Service Connect**, sélectionnez **Utiliser Service Connect**.

1. Pour **Espace de noms**, saisissez l’ARN complet de l’espace de noms partagé.

   Le format ARN est le suivant : `arn:aws:servicediscovery:region:account-id:namespace/namespace-id`

1. Configurez les autres paramètres Service Connect selon les besoins de votre type de service (client ou client-serveur).

1. Terminez le processus de création de service.

Vous pouvez également configurer les services à l'aide du AWS CLI ou AWS SDKs en spécifiant l'ARN de l'espace de noms partagé dans le `namespace` paramètre du`serviceConnectConfiguration`.

```
aws ecs create-service \
    --cluster my-cluster \
    --service-name my-service \
    --task-definition my-task-def \
    --service-connect-configuration '{
        "enabled": true,
        "namespace": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-abcdef1234567890",
        "services": [{
            "portName": "web",
            "discoveryName": "my-service",
            "clientAliases": [{
                "port": 80,
                "dnsName": "my-service"
            }]
        }]
    }'
```

## Considérations
<a name="service-connect-shared-namespaces-considerations"></a>

Tenez compte des points suivants lorsque vous utilisez des AWS Cloud Map espaces de noms partagés avec Service Connect :
+ AWS RAM doit être disponible dans l' Région AWS endroit où vous souhaitez utiliser l'espace de noms partagé.
+ L'espace de noms partagé doit être Région AWS identique à celui de vos services et clusters Amazon ECS.
+ Vous devez utiliser l’ARN de l’espace de noms, et non l’ID, lorsque vous configurez Service Connect avec un espace de noms partagé.
+ Tous les types d’espaces de noms sont pris en charge : espaces de noms HTTP, DNS privé et DNS public.
+ Si l’accès à un espace de noms partagé est révoqué, les opérations Amazon ECS qui nécessitent une interaction avec l’espace de noms (telles que `CreateService`, `UpdateService` et `ListServicesByNamespace`) échoueront. Pour plus d’informations sur la résolution des problèmes d’autorisation liés aux espaces de noms partagés, consultez la section [Résolution des problèmes liés à Amazon ECS Service Connect avec des espaces de AWS Cloud Map noms partagés](service-connect-shared-namespaces-troubleshooting.md).
+ Pour la découverte de service à l’aide de requêtes DNS dans un espace de noms DNS privé partagé :
  + Le propriétaire de l’espace de noms devra appeler `create-vpc-association-authorization` avec l’ID de la zone hébergée privée associée à l’espace de noms et le VPC du consommateur.

    ```
    aws route53 create-vpc-association-authorization --hosted-zone-id Z1234567890ABC --vpc VPCRegion=us-east-1,VPCId=vpc-12345678
    ```
  + Le consommateur de l’espace de noms devra appeler `associate-vpc-with-hosted-zone` avec l’ID de la zone hébergée privée.

    ```
    aws route53 associate-vpc-with-hosted-zone --hosted-zone-id Z1234567890ABC --vpc VPCRegion=us-east-1,VPCId=vpc-12345678
    ```
+ Seul le propriétaire de l’espace de noms peut gérer le partage des ressources.
+ Les consommateurs de l’espace de noms peuvent créer et gérer des services au sein de l’espace de noms partagé, mais ne peuvent pas modifier l’espace de noms lui-même.
+ Les noms de découverte doivent être uniques dans l’espace de noms partagé, quel que soit le compte qui crée le service.
+ Les services de l'espace de noms partagé peuvent découvrir les services d'autres AWS comptes ayant accès à l'espace de noms et s'y connecter.
+ Lorsque vous activez TLS pour Service Connect et utilisez un espace de noms partagé, l’autorité de certification (CA) AWS CA privée est limitée à l’espace de noms. Lorsque l’accès à l’espace de noms partagé est révoqué, l’accès à l’autorité de certification est interrompu.
+ Lorsqu'ils travaillent avec un espace de noms partagé, les propriétaires et les consommateurs d'espaces de noms n'ont pas accès par défaut aux métriques CloudWatch Amazon entre comptes. Les métriques cibles sont publiées uniquement pour les comptes qui possèdent des services clients. Un compte propriétaire de services client n'a pas accès aux statistiques reçues par un compte propriétaire de services client-serveur, et inversement. Pour permettre l'accès aux métriques entre comptes, configurez l'observabilité CloudWatch entre comptes. *Pour plus d'informations sur la configuration de l'observabilité entre comptes, consultez la section Observabilité [CloudWatch entre comptes dans le guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html) de l'utilisateur Amazon. CloudWatch * Pour plus d'informations sur les CloudWatch métriques de Service Connect, consultez[CloudWatch Métriques Amazon ECS](available-metrics.md).

# Résolution des problèmes liés à Amazon ECS Service Connect avec des espaces de AWS Cloud Map noms partagés
<a name="service-connect-shared-namespaces-troubleshooting"></a>

Utilisez les informations suivantes pour résoudre les problèmes liés aux AWS Cloud Map espaces de noms partagés et à Service Connect. Pour plus d’informations sur la localisation des messages d’erreur, consultez la section [Résolution des problèmes liés à Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/troubleshooting.html).

Des messages d’erreur liés à des problèmes d’autorisations apparaissent en raison d’autorisations manquantes ou si l’accès à l’espace de noms est révoqué. 

**Important**  
Vous devez utiliser l’autorisation gérée `AWSRAMPermissionCloudMapECSFullPermission` pour partager l’espace de noms afin que Service Connect fonctionne correctement avec l’espace de noms.

Le message d’erreur apparaît dans l’un des formats suivants :

Une erreur s'est produite (ClientException) lors de l'appel de l'opération < OperationName > : L'utilisateur : arn:aws:iam : ::user/ n'est pas autorisé à effectuer : < > sur la ressource : < > ResourceArn car aucune politique basée ActionName sur les ressources n'autorise l'action < > ActionName <account-id><user-name>

Les scénarios suivants peuvent générer un message d’erreur dans ce format :

**Échec de création ou de mise à jour du cluster**  
Ces problèmes se produisent lorsque des opérations Amazon ECS telles que l'`UpdateCluster`échec `CreateCluster` ou l'échec sont dues à AWS Cloud Map des autorisations manquantes. Les opérations nécessitent des autorisations pour les AWS Cloud Map actions suivantes :  
+ `servicediscovery:GetNamespace`
Assurez-vous que l’invitation à partager la ressource a été acceptée dans le compte consommateur et que l’ARN correct de l’espace de noms est utilisé dans la configuration Service Connect.

**Échec de création ou de mise à jour du service**  
Ces problèmes se produisent lorsque des opérations Amazon ECS telles que l'`UpdateService`échec `CreateService` ou l'échec sont dues à AWS Cloud Map des autorisations manquantes. Les opérations nécessitent des autorisations pour les AWS Cloud Map actions suivantes :  
+ `servicediscovery:CreateService`
+ `servicediscovery:GetNamespace`
+ `servicediscovery:GetOperation` (pour créer un nouveau service AWS Cloud Map )
+ `servicediscovery:GetService` (lorsqu’un service AWS Cloud Map existe déjà)
Assurez-vous que l’invitation à partager la ressource a été acceptée dans le compte consommateur et que l’ARN correct de l’espace de noms est utilisé dans la configuration Service Connect.

**Échec de l’opération `ListServicesByNamespace`**  
Ce problème se produit lorsque l’opération Amazon ECS `ListServicesByNamespace` échoue. L’opération nécessite des autorisations pour les actions AWS Cloud Map suivantes :  
+ `servicediscovery:GetNamespace`
Pour résoudre ce problème :  
+ Vérifiez que le compte consommateur dispose de l’autorisation `servicediscovery:GetNamespace`.
+ Utilisez l’ARN de l’espace de noms lorsque vous appelez l’API, et pas le nom.
+ Assurez-vous que le partage de ressources est actif et que l’invitation a été acceptée.

Utilisateur : n'est pas autorisé à effectuer : < ActionName > sur la ressource : < ResourceArn > avec un refus explicite dans une politique basée sur l'identité. <iam-user>

Les scénarios suivants peuvent générer un message d’erreur dans ce format :

**La suppression du service échoue et reste bloquée dans l’état `DRAINING`**  
Ce problème se produit lorsque les opérations Amazon ECS `DeleteService` échouent en raison d’une autorisation `servicediscovery:DeleteService` manquante lorsque l’accès à l’espace de noms est révoqué. Le service peut sembler avoir été supprimé avec succès au départ, mais il restera bloqué dans l’état `DRAINING`. Le message d’erreur apparaît sous la forme d’un événement de service Amazon ECS.  
Pour résoudre ce problème, le propriétaire de l’espace de noms doit partager l’espace de noms avec le compte consommateur afin de permettre la suppression du service.

**Les tâches en service ne s’exécutent pas**  
Ce problème se produit lorsque les tâches ne démarrent pas en raison d’autorisations manquantes. Le message d’erreur apparaît sous la forme d’une erreur de tâche arrêtée. Pour de plus amples informations, veuillez consulter [Résolution des erreurs liées aux tâches Amazon ECS arrêtées](resolve-stopped-errors.md).  
Les AWS Cloud Map actions suivantes sont requises pour exécuter une tâche :  
+ `servicediscovery:GetOperation`
+ `servicediscovery:RegisterInstance`
Assurez-vous que le compte consommateur dispose des autorisations requises et que l’espace de noms partagé est accessible.

**Les tâches ne s’arrêtent pas correctement ou restent bloquées dans l’état `DEACTIVATING` ou `DEPROVISIONING`**  
Ce problème se produit lorsque les tâches ne parviennent pas à se désenregistrer du AWS Cloud Map service pendant l'arrêt en raison d'autorisations manquantes. L’erreur apparaît sous la forme d’un `statusReason` dans la pièce jointe de la tâche, qui peut être récupérée à l’aide de l’API `DescribeTasks`. Pour plus d'informations, consultez le [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html)manuel *Amazon Elastic Container Service API Reference*.  
Les AWS Cloud Map actions suivantes sont requises pour arrêter une tâche :  
+ `servicediscovery:DeregisterInstance`
+ `servicediscovery:GetOperation`
Si l’accès à l’espace de noms partagé est révoqué, les tâches peuvent rester dans l’état `DEACTIVATING` ou `DEPROVISIONING` jusqu’à ce que l’accès à l’espace de noms soit rétabli. Demandez au propriétaire de l’espace de noms de rétablir l’accès à l’espace de noms.

# Journaux d'accès Amazon ECS Service Connect
<a name="service-connect-envoy-access-logs"></a>

Amazon ECS Service Connect prend en charge les journaux d'accès afin de fournir une télémétrie détaillée sur les demandes individuelles traitées par le proxy Service Connect. Les journaux d'accès complètent les journaux d'applications existants en capturant les métadonnées du trafic par demande, telles que les méthodes HTTP, les chemins, les codes de réponse, les indicateurs et les informations temporelles. Cela permet une meilleure observabilité des modèles de trafic au niveau des demandes et des interactions entre les services pour un dépannage et une surveillance efficaces.

Pour activer les journaux d'accès, spécifiez à la fois `accessLogConfiguration` les objets `logConfiguration` et dans l'`serviceConnectConfiguration`objet. Vous pouvez configurer le format des journaux et indiquer si les journaux doivent inclure des paramètres de requête dans le`accessLogConfiguration`. Les journaux sont envoyés au groupe de journaux de destination par le pilote de journal spécifié dans le`logConfiguration`.

```
{
    "serviceConnectConfiguration": {
        "enabled": true,
        "namespace": "myapp.namespace",
        "services": [
            ...
        ],
        "logConfiguration": {
            "logDriver": "awslogs",
            "options": {
                "awslogs-group": "my-envoy-log-group",
                "awslogs-region": "us-west-2",
                "awslogs-stream-prefix": "myapp-envoy-logs"
            }
        },
         "accessLogConfiguration": {
            "format": "TEXT",
            "includeQueryParameters": "ENABLED" 
        }
    }
}
```

## Considérations
<a name="service-connect-envoy-access-logs-considerations"></a>

Tenez compte des points suivants lorsque vous activez l'accès aux journaux d'accès
+ Les journaux d'accès et les journaux des applications sont tous deux écrits dans`/dev/stdout`. Pour séparer les journaux d'accès des journaux d'applications, nous vous recommandons d'utiliser le pilote de `awsfirelens` journal avec une Fluentd configuration personnaliséeFluent Bit.
+  Nous vous recommandons d'utiliser le pilote de `awslogs` journal pour envoyer les journaux d'applications et d'accès vers la même CloudWatch destination.
+ les journaux d'accès sont pris en charge sur les services Fargate qui utilisent la version de la plateforme `1.4.0` et les versions supérieures.
+ Les paramètres de requête tels que les identifiants de demande et les jetons sont exclus des journaux d'accès par défaut. Pour inclure les paramètres de requête dans les journaux d'accès, définissez `includeQueryParameters` sur`"ENABLED"`.

## Formats des journaux d'accès
<a name="service-connect-envoy-access-logs-formats"></a>

les journaux d'accès peuvent être formatés dans des dictionnaires au format JSON ou dans des chaînes de format texte, avec des différences dans les opérateurs de commande pris en charge pour les différents types de journaux d'accès.

### Journaux d'accès HTTP
<a name="service-connect-envoy-access-logs-formats-http"></a>

Les opérateurs de commande suivants sont inclus par défaut pour les journaux HTTP :

------
#### [ Text ]

```
[%START_TIME%] "%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%"
%RESPONSE_CODE% %BYTES_RECEIVED% %BYTES_SENT% %DURATION%
%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% "%REQ(X-FORWARDED-FOR)%" "%REQ(USER-AGENT)%"
"%REQ(X-REQUEST-ID)%" "%REQ(:AUTHORITY)%" "%UPSTREAM_HOST%"\n
```

------
#### [ JSON ]

```
{
  "start_time": "%START_TIME%",
  "method": "%REQ(:METHOD)%",
  "path": "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%",
  "protocol": "%PROTOCOL%",
  "response_code": "%RESPONSE_CODE%",
  "bytes_received": "%BYTES_RECEIVED%",
  "bytes_sent": "%BYTES_SENT%",
  "duration_ms": "%DURATION%",
  "upstream_service_time": "%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%",
  "forwarded_for": "%REQ(X-FORWARDED-FOR)%",
  "user_agent": "%REQ(USER-AGENT)%",
  "request_id": "%REQ(X-REQUEST-ID)%",
  "authority": "%REQ(:AUTHORITY)%",
  "upstream_host": "%UPSTREAM_HOST%"
}
```

------

### HTTP2 journaux d'accès
<a name="service-connect-envoy-access-logs-formats-http2"></a>

Outre les opérateurs de commande inclus pour les journaux HTTP, HTTP2 les journaux incluent l'`%STREAM_ID%`opérateur par défaut.

------
#### [ Text ]

```
[%START_TIME%] "%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%"
%RESPONSE_CODE% %BYTES_RECEIVED% %BYTES_SENT% %DURATION%
%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% "%REQ(X-FORWARDED-FOR)%" "%REQ(USER-AGENT)%"
"%REQ(X-REQUEST-ID)%" "%REQ(:AUTHORITY)%" "%UPSTREAM_HOST%" "%STREAM_ID%"\n
```

------
#### [ JSON ]

```
{
  "start_time": "%START_TIME%",
  "method": "%REQ(:METHOD)%",
  "path": "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%",
  "protocol": "%PROTOCOL%",
  "response_code": "%RESPONSE_CODE%",
  "bytes_received": "%BYTES_RECEIVED%",
  "bytes_sent": "%BYTES_SENT%",
  "duration": "%DURATION%",
  "upstream_service_time": "%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%",
  "forwarded_for": "%REQ(X-FORWARDED-FOR)%",
  "user_agent": "%REQ(USER-AGENT)%",
  "request_id": "%REQ(X-REQUEST-ID)%",
  "authority": "%REQ(:AUTHORITY)%",
  "upstream_host": "%UPSTREAM_HOST%",
  "stream_id": "%STREAM_ID%"
}
```

------

### Journaux d'accès au gRPC
<a name="service-connect-envoy-access-logs-formats-grpc"></a>

Outre les opérateurs de commande inclus pour les journaux HTTP, les journaux d'accès gRPC incluent l'`%GRPC_STATUS()%`opérateur `%STREAM_ID%` and par défaut.

------
#### [ Text ]

```
[%START_TIME%] "%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%"
%RESPONSE_CODE% %GRPC_STATUS()% %BYTES_RECEIVED% %BYTES_SENT% %DURATION%
%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% "%REQ(X-FORWARDED-FOR)%" "%REQ(USER-AGENT)%"
"%REQ(X-REQUEST-ID)%" "%REQ(:AUTHORITY)%" "%UPSTREAM_HOST%" "%STREAM_ID%"\n
```

------
#### [ JSON ]

```
{
  "start_time": "%START_TIME%",
  "method": "%REQ(:METHOD)%",
  "path": "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%",
  "protocol": "%PROTOCOL%",
  "response_code": "%RESPONSE_CODE%",
  "grpc_status": "%GRPC_STATUS()%",
  "bytes_received": "%BYTES_RECEIVED%",
  "bytes_sent": "%BYTES_SENT%",
  "duration": "%DURATION%",
  "upstream_service_time": "%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%",
  "forwarded_for": "%REQ(X-FORWARDED-FOR)%",
  "user_agent": "%REQ(USER-AGENT)%",
  "request_id": "%REQ(X-REQUEST-ID)%",
  "authority": "%REQ(:AUTHORITY)%",
  "upstream_host": "%UPSTREAM_HOST%",
  "stream_id": "%STREAM_ID%"
}
```

------

### Journaux d'accès TCP
<a name="service-connect-envoy-access-logs-formats-tcp"></a>

Les opérateurs de commande suivants sont inclus par défaut dans les journaux d'accès TCP :

------
#### [ Text ]

```
[%START_TIME%] %DOWNSTREAM_REMOTE_ADDRESS% %DOWNSTREAM_REMOTE_PORT% 
%BYTES_RECEIVED% %BYTES_SENT% %DURATION%  
%CONNECTION_TERMINATION_DETAILS% %CONNECTION_ID%\n
```

------
#### [ JSON ]

```
{
  "start_time": "%START_TIME%",
  "downstream_remote_address": "%DOWNSTREAM_REMOTE_ADDRESS%",
  "downstream_remote_port": "%DOWNSTREAM_REMOTE_PORT%",s
  "bytes_received": "%BYTES_RECEIVED%",
  "bytes_sent": "%BYTES_SENT%",
  "duration": "%DURATION%",
  "connection_termination_details": "%CONNECTION_TERMINATION_DETAILS%",
  "connection_id": %CONNECTION_ID%
}
```

------

Pour plus d'informations sur ces opérateurs de commande, consultez la section [Opérateurs de commande](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators) dans la documentation d'Envoy.

# Activation des journaux d'accès pour Amazon ECS Service Connect
<a name="service-connect-access-logs-configuration"></a>

Les journaux d'accès ne sont pas activés par défaut pour les services Amazon ECS qui utilisent Service Connect. Vous pouvez activer les journaux d'accès de différentes manières.

## Activez les journaux d'accès à l'aide du AWS CLI
<a name="service-connect-access-logs-configure-cli"></a>

La commande suivante montre comment activer les journaux d'accès pour un service Amazon ECS à l'aide du en AWS CLI spécifiant un `accessLogConfiguration` lors de la création du service :

```
aws ecs create-service \
    --cluster my-cluster \
    --service-name my-service \
    --task-definition my-task-def \
    --service-connect-configuration '{
        "enabled": true,
        "namespace": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-abcdef1234567890",
        "services": [{
            "portName": "web",
            "discoveryName": "my-service",
            "clientAliases": [{
                "port": 80,
                "dnsName": "my-service"
            }]
        }],
        "logConfiguration": {
            "logDriver": "awslogs",
            "options": {
                "awslogs-group": "my-envoy-log-group",
                "awslogs-region": "us-west-2",
                "awslogs-stream-prefix": "myapp-envoy-logs"
            }
        },
         "accessLogConfiguration": {
            "format": "TEXT",
            "includeQueryParameters": "ENABLED" 
        }
    }'
```

## Activer les journaux d'accès à l'aide de la console
<a name="service-connect-access-logs-configure-console"></a>

Pour une procédure détaillée de création de service, consultez la section [Création d’un déploiement de mise à jour propagée Amazon ECS](create-service-console-v2.md).

**Pour créer un service avec un espace de noms partagé à l'aide du AWS Management Console**

1. Ouvrez la console à la [https://console.aws.amazon.com/ecs/version 2](https://console.aws.amazon.com/ecs/v2).

1. Sur la page **Clusters**, sélectionnez le cluster dans lequel créer le service.

1. Sous **Services**, choisissez **Créer**.

1. Après avoir renseigné d’autres informations en fonction de votre charge de travail, dans la section **Service Connect**, sélectionnez **Utiliser Service Connect**.

1. Configurez les paramètres Service Connect selon les besoins de votre type de service (client ou client-serveur).

1. Développez la **configuration du journal d'accès**. Pour **Format**, choisissez **JSON** ou`TEXT`.

1. Pour inclure les paramètres de requête dans les journaux d'accès, sélectionnez **Inclure les paramètres de requête**.

1. Terminez le processus de création de service.

# Chiffrement du trafic Amazon ECS Service Connect
<a name="service-connect-tls"></a>

Amazon ECS Service Connect prend en charge le chiffrement automatique du trafic avec des certificats du protocole TLS (Transport Layer Security) pour les services Amazon ECS. Lorsque vous pointez vos services Amazon ECS vers un [AWS Autorité de certification privée (AWS CA privée)](https://docs.aws.amazon.com/privateca/latest/userguide/PcaWelcome.html), Amazon ECS fournit automatiquement des certificats TLS pour chiffrer le trafic entre vos services Amazon ECS Service Connect. Amazon ECS génère, fait pivoter et distribue les certificats TLS utilisés pour le chiffrement du trafic.

Le chiffrement automatique du trafic avec Service Connect utilise des fonctionnalités de chiffrement de pointe pour sécuriser vos communications entre services afin de répondre à vos exigences en matière de sécurité. Il prend en charge AWS Autorité de certification privée les certificats TLS avec `256-bit ECDSA` `2048-bit RSA` chiffrement. Vous avez également un contrôle total sur les certificats privés et les clés de signature pour vous aider à respecter les exigences de conformité. Par défaut, TLS 1.3 est pris en charge, mais pas TLS 1.0 à 1.2. Service Connect prend en charge TLS 1.3 avec les chiffrements suivants :
+ `TLS_AES_128_GCM_SHA256`
+ `TLS_AES_256_GCM_SHA384`
+ `TLS_CHACHA20_POLY1305_SHA256`

**Note**  
Pour utiliser TLS 1.3, vous devez l’activer sur l’écouteur de la cible.  
Seul le trafic entrant et sortant passant par l’agent Amazon ECS est chiffré.

## Service Connect et surveillances de l’état de l’Application Load Balancer
<a name="service-connect-tls-alb-healthchecks"></a>

Vous pouvez utiliser Service Connect avec les surveillances de l’état de l’Application Load Balancer et le chiffrement TLS 1.3. 

### Configuration de l’Application Load Balancer
<a name="service-connect-tls-alb-config"></a>

Configurez l’Application Load Balancer avec les paramètres suivants :
+ Configurez un écouteur TLS avec une politique de sécurité TLS 1.3 (telle que `ELBSecurityPolicy- TLS13 -1-2-2021-06`). Pour plus d’informations, consultez la section [Politiques de sécurité pour votre Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/describe-ssl-policies.html). 
+ Créez un groupe cible avec les paramètres suivants :
  + Définissez le protocole sur HTTPS.
  + Attachez le groupe cible à l’écouteur TLS.
  + Configurez le port de surveillance de l’état pour qu’il corresponde au port de conteneur de votre service Service Connect.

### Configuration de Service Connect
<a name="service-connect-tls-sc-config"></a>

Configurez un service avec les paramètres suivants :
+ Configurez le service pour utiliser le mode réseau `awsvpc`, car le mode réseau `bridge` n’est pas pris en charge.
+ Activez Service Connect pour le service.
+ Configurez l’équilibreur de charge avec les paramètres suivants :
  + Spécifiez le groupe cible que vous avez configuré pour votre Application Load Balancer.
  + Définissez le port de conteneur pour qu’il corresponde au port de conteneur du service Service Connect TLS.
+ Évitez de configurer `ingressPortOverride` pour le service. Pour plus d'informations, consultez le [ServiceConnectService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ServiceConnectService.html)manuel *Amazon Elastic Container Service API Reference*.

### Considérations
<a name="service-connect-tls-alb-considerations"></a>

Tenez compte des points suivants lorsque vous utilisez Application Load Balancer, le protocole TLS et Service Connect :
+ Utilisez le mode réseau `awsvpc` plutôt que le mode réseau `bridge` pour les surveillances de l’état HTTPS lorsque vous utilisez Service Connect avec le chiffrement TLS. Les surveillances de l’état HTTP continueront de fonctionner avec le mode `bridge`.
+ Configurez le port de surveillance de l’état du groupe cible pour qu’il corresponde au port de conteneur du service Service Connect, et non au port HTTPS par défaut (443).

## AWS Autorité de certification privée certificats et Service Connect
<a name="service-connect-tls-certificates"></a>

Vous devez disposer du rôle IAM d’infrastructure. Pour plus d’informations sur ce rôle, consultez la section [Rôle IAM d’infrastructure Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html                     ).

**AWS Autorité de certification privée modes pour Service Connect**

AWS Autorité de certification privée peut fonctionner selon deux modes : usage général et de courte durée.
+ Usage général : certificats configurables avec n’importe quelle date d’expiration.
+ De courte durée : certificats d’une durée de validité maximale de sept jours.

Amazon ECS prend en charge les deux modes, mais nous vous recommandons d’utiliser des certificats de courte durée. Par défaut, les certificats sont renouvelés tous les cinq jours, et leur utilisation en mode éphémère permet de réaliser des économies importantes par rapport aux certificats à usage général.

Service Connect ne prend pas en charge la révocation des certificats et utilise plutôt des certificats de courte durée avec une rotation fréquente des certificats. Vous avez le droit de modifier la fréquence de rotation, de désactiver ou de supprimer les secrets à l’aide de la [rotation gérée](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_managed.html) dans [Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html), mais cela peut avoir les conséquences suivantes.
+ Fréquence de rotation plus courte ‐ Une fréquence de rotation plus courte entraîne des coûts plus élevés en raison AWS CA privée de l'augmentation de la charge de travail liée à la rotation entre Secrets Manager et Auto Scaling. AWS KMS 
+ Fréquence de rotation plus longue : les communications de vos applications échouent si la fréquence de rotation dépasse **sept** jours.
+ Suppression du secret : la suppression du secret entraîne l’échec de la rotation et a un impact sur les communications des applications clientes.

En cas d’échec de votre rotation de secret, un événement `RotationFailed` est publié dans [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html). Vous pouvez également configurer une [CloudWatchalarme](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) pour`RotationFailed`.

**Important**  
N’ajoutez pas de réplicas de régions aux secrets. Cela empêche Amazon ECS de supprimer le secret, car Amazon ECS n’est pas autorisé à supprimer des régions de la réplication. Si vous avez déjà ajouté la réplication, exécutez la commande suivante.  

```
aws secretsmanager remove-regions-from-replication \
 --secret-id SecretId \
 --remove-replica-regions region-name
```

**Autorités de certification subordonnées**  
Vous pouvez importer n'importe quel certificat AWS CA privée, root ou subordonné, dans Service Connect TLS afin de délivrer des certificats d'entité finale pour les services. L’émetteur spécifié est considéré comme le signataire et la source de confiance dans tous les cas. Vous pouvez émettre des certificats d'entité finale pour différentes parties de votre application auprès de différents subordonnés CAs. Lorsque vous utilisez le AWS CLI, fournissez l'Amazon Resource Name (ARN) de l'autorité de certification pour établir la chaîne de confiance.

**Autorités de certification sur site**  
Pour utiliser votre autorité de certification sur site, vous devez créer et configurer une autorité de certification subordonnée dans AWS Autorité de certification privée. Cela garantit que tous les certificats TLS émis pour vos charges de travail Amazon ECS partagent la chaîne de confiance avec les charges de travail que vous exécutez sur site et sont en mesure de se connecter en toute sécurité.

**Important**  
Ajoutez le tag **requis** `AmazonECSManaged : true` dans votre AWS CA privée. 

**Infrastructure en tant que code**  
Lorsque vous utilisez Service Connect TLS avec des outils d’infrastructure en tant que code (IaC), il est important de configurer correctement vos dépendances afin d’éviter des problèmes tels que le blocage des services. Votre AWS KMS clé, si elle est fournie, votre rôle IAM et vos AWS CA privée dépendances doivent être supprimés après votre service Amazon ECS.

Si l'espace de noms utilisé pour Service Connect est un espace de noms partagé, vous pouvez choisir d'utiliser une ressource partagée AWS CA privée . Pour plus d’informations, consultez la section [Joindre une politique d’accès intercompte](https://docs.aws.amazon.com/privateca/latest/userguide/pca-ram.html) dans le *Guide de l’utilisateur AWS Autorité de certification privée *.

## Service Connect et Secrets Manager
<a name="service-connect-asm"></a>

**Lorsque vous utilisez Amazon ECS Service Connect avec le chiffrement TLS, le service interagit avec Secrets Manager de la manière suivante :**  
Service Connect utilise le rôle d’infrastructure fourni pour créer des secrets dans Secrets Manager. Ces secrets sont utilisés pour stocker les clés privées associées à vos certificats TLS afin de chiffrer le trafic entre vos services Service Connect.

**Avertissement**  
La création et la gestion automatiques de ces secrets par Service Connect rationalisent le processus de mise en œuvre du chiffrement TLS pour vos services. Toutefois, il est important de connaître les implications potentielles en matière de sécurité. Les autres rôles IAM disposant d’un accès en lecture à Secrets Manager peuvent accéder à ces secrets créés automatiquement. Cela pourrait exposer du matériel cryptographique sensible à des parties non autorisées, si les contrôles d’accès ne sont pas correctement configurés.  
Pour atténuer ce risque, appliquez les pratiques exemplaires suivantes :  
Gérez et limitez soigneusement l’accès à Secrets Manager, en particulier pour les secrets créés par Service Connect.
Auditez régulièrement les rôles IAM et leurs autorisations afin de garantir le respect du principe du moindre privilège.

Lorsque vous accordez un accès en lecture à Secrets Manager, pensez à exclure les clés privées TLS créées par Service Connect. Vous pouvez le faire en utilisant une condition dans vos politiques IAM pour exclure les secrets ARNs qui correspondent au modèle :

```
"arn:aws:secretsmanager:::secret:ecs-sc!"
```

Exemple de politique IAM qui refuse l’action `GetSecretValue` à tous les secrets ayant le préfixe `ecs-sc!` :

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "secretsmanager:GetSecretValue",
            "Resource": "arn:aws:secretsmanager:*:*:secret:ecs-sc!*"
        }
    ]
}
```

------

**Note**  
Il s'agit d'un exemple général qui devra peut-être être ajusté en fonction de votre cas d'utilisation spécifique et de la configuration de votre AWS compte. Testez toujours vos politiques IAM de manière approfondie pour vous assurer qu’elles fournissent l’accès prévu tout en préservant la sécurité.

La compréhension du fonctionnement de Service Connect avec Secrets Manager vous permet de renforcer la sécurité de vos services Amazon ECS tout en tirant parti des avantages du chiffrement TLS automatique.

## Service Connect et AWS Key Management Service
<a name="service-connect-kms"></a>

Vous pouvez l'utiliser [AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)pour chiffrer et déchiffrer vos ressources Service Connect. AWS KMS est un service géré par AWS lequel vous pouvez créer et gérer des clés cryptographiques qui protègent vos données.

Lorsque vous utilisez AWS KMS Service Connect, vous pouvez choisir d'utiliser une clé AWS détenue qui AWS gère pour vous ou de choisir une AWS KMS clé existante. Vous pouvez également [créer une nouvelle AWS KMS clé](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) à utiliser.

**Utilisation de votre propre clé de chiffrement**  
Vous pouvez fournir vos propres éléments clés ou utiliser un magasin de clés externe via AWS Key Management Service Importer votre propre clé dans AWS KMS, puis spécifier le nom de ressource Amazon (ARN) de cette clé dans Amazon ECS Service Connect.

Voici un exemple de AWS KMS politique. Remplacez les *user input* valeurs par les vôtres.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "id",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/role-name"
      },
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:GenerateDataKey",
        "kms:GenerateDataKeyPair"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Pour de plus amples informations sur les stratégies de clé, consultez la section [Création de stratégies de clé](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html) dans le *Guide du développeur AWS Key Management Service *.

**Note**  
Service Connect prend uniquement en charge les AWS KMS clés de chiffrement symétriques. Vous ne pouvez utiliser aucun autre type de AWS KMS clé pour chiffrer vos ressources Service Connect. Pour savoir si une AWS KMS clé est une clé de chiffrement symétrique, voir [Identifier les clés KMS asymétriques](https://docs.aws.amazon.com/kms/latest/developerguide/identify-key-types.html#identify-asymm-keys).

Pour plus d'informations sur les clés de chiffrement AWS Key Management Service symétriques, consultez la section [AWS KMS Clés de chiffrement symétriques](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks) dans le manuel du *AWS Key Management Service développeur*.

# Activation du protocole TLS pour Amazon ECS Service Connect
<a name="enable-service-connect-tls"></a>

Vous activez le chiffrement du trafic lorsque vous créez ou mettez à jour un service Service Connect.

**Pour activer le chiffrement du trafic pour un service dans un espace de noms existant à l'aide du AWS Management Console**

1. Vous devez disposer du rôle IAM d’infrastructure. Pour plus d’informations sur ce rôle, consultez la section [Rôle IAM d’infrastructure Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html                     ).

1. Ouvrez la console à la [https://console.aws.amazon.com/ecs/version 2](https://console.aws.amazon.com/ecs/v2).

1. Dans le panneau de navigation, choisissez **Namespaces (Espaces de noms)**.

1. Choisissez l’**espace de noms** du **service** pour lequel vous souhaitez activer le chiffrement du trafic.

1. Choisissez le **service** pour lequel vous souhaitez activer le chiffrement du trafic.

1. Choisissez **Mettre à jour le service** dans le coin supérieur droit et faites défiler la page vers le bas jusqu’à la section Service Connect.

1. Choisissez **Activer le chiffrement du trafic** sous les informations de service pour activer le protocole TLS.

1. Pour **Rôle Service Connect TLS**, choisissez un rôle IAM d’infrastructure existant ou créez-en un.

1. Pour **Signataire de l’autorité de certification**, choisissez une autorité de certification existante ou créez-en une nouvelle.

   Pour plus d’informations, consultez [AWS Autorité de certification privée certificats et Service Connect](service-connect-tls.md#service-connect-tls-certificates).

1. Pour **Choisir une AWS KMS key**, choisissez une clé AWS détenue et gérée ou vous pouvez choisir une autre clé. Vous pouvez également choisir d’en créer une.

Pour un exemple d'utilisation du AWS CLI pour configurer le protocole TLS pour votre service,[Configuration d'Amazon ECS Service Connect avec AWS CLI](create-service-connect.md).

# Vérification de l’activation du protocole TLS pour Amazon ECS Service Connect
<a name="verify-tls-enabled"></a>

Service Connect initie le protocole TLS au niveau de l’agent Service Connect et le résilie au niveau de l’agent de destination. Par conséquent, le code de l’application ne détecte jamais les interactions TLS. Procédez comme suit pour vérifier que TLS est activé.

1. Incluez la CLI `openssl` dans l’image de votre application.

1. Activez [ECS Exec](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html) sur vos services pour vous connecter à vos tâches via SSM. Vous pouvez également lancer une instance Amazon EC2 dans le même Amazon VPC que le service.

1. Récupérez l’adresse IP et le port d’une tâche auprès d’un service que vous souhaitez vérifier. Vous pouvez récupérer l'adresse IP de la tâche dans la AWS Cloud Map console. Les informations se trouvent sur la page des détails du service correspondant à l’espace de noms. 

1. Connectez-vous à l’une de vos tâches en utilisant `execute-command` comme dans l’exemple suivant. Vous pouvez également vous connecter à l’instance Amazon EC2 créée à l’**étape 2**.

   ```
   $ aws ecs execute-command --cluster cluster-name \
       --task task-id  \
       --container container-name \
       --interactive \
       --command "/bin/sh"
   ```
**Note**  
L’appel direct du nom DNS ne révèle pas le certificat.

1. Dans le shell connecté, utilisez la CLI `openssl` pour vérifier et afficher le certificat associé à la tâche.

   Exemple :

   ```
   openssl s_client -connect 10.0.147.43:6379 < /dev/null 2> /dev/null \ 
   | openssl x509 -noout -text
   ```

   Exemple de réponse :

   ```
   Certificate:
       Data:
           Version: 3 (0x2)
           Serial Number:
               <serial-number>
           Signature Algorithm: ecdsa-with-SHA256
           Issuer: <issuer>
           Validity
               Not Before: Jan 23 21:38:12 2024 GMT
               Not After : Jan 30 22:38:12 2024 GMT
           Subject: <subject>
           Subject Public Key Info:
               Public Key Algorithm: id-ecPublicKey
                   Public-Key: (256 bit)
                   pub:
                       <pub>
                   ASN1 OID: prime256v1
                   NIST CURVE: P-256
           X509v3 extensions:
               X509v3 Subject Alternative Name:
                   DNS:redis.yelb-cftc
               X509v3 Basic Constraints:
                   CA:FALSE
               X509v3 Authority Key Identifier:
                   keyid:<key-id>
   
               X509v3 Subject Key Identifier:
                   1D:<id>
               X509v3 Key Usage: critical
                   Digital Signature, Key Encipherment
               X509v3 Extended Key Usage:
                   TLS Web Server Authentication, TLS Web Client Authentication
       Signature Algorithm: ecdsa-with-SHA256
           <hash>
   ```

# Configuration d'Amazon ECS Service Connect avec AWS CLI
<a name="create-service-connect"></a>

Vous pouvez créer un service Amazon ECS pour une tâche Fargate qui utilise Service Connect avec l’ AWS CLI.

**Note**  
Vous pouvez utiliser des points de terminaison de service à double pile pour interagir avec Amazon ECS à partir de AWS CLI SDKs, et de l'API Amazon ECS via les deux IPv4 et. IPv6 Pour de plus amples informations, veuillez consulter [Utilisation des points de terminaison à double pile Amazon ECS](dual-stack-endpoint.md).

## Conditions préalables
<a name="create-service-connect-prereqs"></a>

Les prérequis Service Connect sont les suivants :
+ Vérifiez que la dernière version de AWS CLI est installée et configurée. Pour plus d’informations, consultez la section [Installation ou mise à jour de la version la plus récente de l’ AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).
+ Votre utilisateur IAM dispose des autorisations requises spécifiées dans l’exemple de politique IAM [Amazon ECS\$1 FullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonECS_FullAccess).
+ Vous avez un VPC, un sous-réseau, une table de routage et un groupe de sécurité prêts à être utilisés. Pour de plus amples informations, veuillez consulter [Créer un Virtual Private Cloud](get-set-up-for-amazon-ecs.md#create-a-vpc).
+ Vous avez un rôle d'exécution de tâches portant le nom `ecsTaskExecutionRole` et la politique gérée par `AmazonECSTaskExecutionRolePolicy` est associée au rôle. Ce rôle permet à Fargate d'écrire les journaux de l'application NGINX et les journaux du proxy Service Connect sur Amazon Logs. CloudWatch Pour de plus amples informations, veuillez consulter [Création du rôle d'exécution de tâche](task_execution_IAM_role.md#create-task-execution-role).

## Étape 1 : créer le cluster
<a name="create-service-connect-cluster"></a>

Pour créer votre espace de noms et votre cluster Amazon ECS, effectuez les étapes suivantes.

**Pour créer le cluster et l'espace de AWS Cloud Map noms Amazon ECS**

1. Créez un cluster Amazon ECS nommé `tutorial` que vous allez utiliser. Le paramètre `--service-connect-defaults` définit l'espace de noms par défaut du cluster. Dans l'exemple de sortie, aucun AWS Cloud Map espace de noms du même nom `service-connect` n'existe dans ce compte. L'espace de noms est donc créé par Amazon ECS. Région AWS L'espace de noms est créé dans AWS Cloud Map dans le compte, et il est visible avec tous les autres espaces de noms. Utilisez donc un nom descriptif.

   ```
   aws ecs create-cluster --cluster-name tutorial --service-connect-defaults namespace=service-connect
   ```

   Sortie :

   ```
   {
       "cluster": {
           "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/tutorial",
           "clusterName": "tutorial",
           "serviceConnectDefaults": {
               "namespace": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-EXAMPLE"
           },
           "status": "PROVISIONING",
           "registeredContainerInstancesCount": 0,
           "runningTasksCount": 0,
           "pendingTasksCount": 0,
           "activeServicesCount": 0,
           "statistics": [],
           "tags": [],
           "settings": [
               {
                   "name": "containerInsights",
                   "value": "disabled"
               }
           ],
           "capacityProviders": [],
           "defaultCapacityProviderStrategy": [],
           "attachments": [
               {
                   "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
                   "type": "sc",
                   "status": "ATTACHING",
                   "details": []
               }
           ],
           "attachmentsStatus": "UPDATE_IN_PROGRESS"
       }
   }
   }
   ```

1. Vérifiez que le cluster est créé :

   ```
   aws ecs describe-clusters --clusters tutorial
   ```

   Sortie :

   ```
   {
       "clusters": [
           {
               "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/tutorial",
               "clusterName": "tutorial",
               "serviceConnectDefaults": {
                   "namespace": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-EXAMPLE"
               },
               "status": "ACTIVE",
               "registeredContainerInstancesCount": 0,
               "runningTasksCount": 0,
               "pendingTasksCount": 0,
               "activeServicesCount": 0,
               "statistics": [],
               "tags": [],
               "settings": [],
               "capacityProviders": [],
               "defaultCapacityProviderStrategy": []
           }
       ],
       "failures": []
   }
   ```

1. (Facultatif) Vérifiez que l'espace de noms est créé dans AWS Cloud Map. Vous pouvez utiliser la configuration AWS Management Console ou la AWS CLI configuration normale telle qu'elle a été créée dans AWS Cloud Map.

   Par exemple, utilisez l' AWS CLI :

   ```
   aws servicediscovery get-namespace --id ns-EXAMPLE
   ```

   Sortie :

   ```
   {
       "Namespace": {
           "Id": "ns-EXAMPLE",
           "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-EXAMPLE",
           "Name": "service-connect",
           "Type": "HTTP",
           "Properties": {
               "DnsProperties": {
                   "SOA": {}
               },
               "HttpProperties": {
                   "HttpName": "service-connect"
               }
           },
           "CreateDate": 1661749852.422,
           "CreatorRequestId": "service-connect"
       }
   }
   ```

## Étape 2 : créer le service pour le serveur
<a name="create-service-connect-nginx-server"></a>

La fonctionnalité Service Connect est destinée à interconnecter plusieurs applications sur Amazon ECS. Au moins l'une de ces applications doit fournir un service Web auquel se connecter. Au cours de cette étape, vous allez créer :
+ La définition de tâche qui utilise l'image officielle non modifiée du conteneur NGINX et qui inclut la configuration de Service Connect.
+ La définition du service Amazon ECS qui configure Service Connect pour fournir la découverte de service et la mise en proxy de maillage de services pour le trafic vers ce service. La configuration réutilise l'espace de noms par défaut de la configuration du cluster afin de réduire la quantité de configuration de service que vous effectuez pour chaque service.
+ Le service Amazon ECS. Il exécute une tâche à l'aide de la définition de tâche et insère un conteneur supplémentaire pour le proxy Service Connect. Le proxy écoute sur le port depuis le mappage de ports du conteneur dans la définition de la tâche. Dans une application cliente exécutée dans Amazon ECS, le proxy intégré à la tâche client écoute les connexions sortantes vers le nom du port de définition de la tâche, le nom de découverte du service ou le nom d'alias du client de service, ainsi que le numéro de port provenant de l'alias client.

**Pour créer le service Web avec Service Connect**

1. Enregistrez une définition de tâche compatible avec Fargate et qui utilise le mode réseau `awsvpc`. Procédez comme suit :

   1. Créez un fichier nommé `service-connect-nginx.json` avec le contenu de la définition de tâche suivante.

      Cette définition de tâche configure Service Connect en ajoutant les paramètres de `name` et de `appProtocol` au mappage des ports. Le nom du port permet de mieux identifier ce port dans la configuration du service lorsque plusieurs ports sont utilisés. Le nom du port est également utilisé par défaut comme nom détectable à utiliser par d'autres applications de l'espace de noms.

      La définition de tâche contient le rôle IAM de tâche, car ECS Exec est activé sur le service.
**Important**  
Cette définition de tâche utilise un `logConfiguration` pour envoyer la sortie nginx depuis `stdout` et `stderr` vers Amazon Logs. CloudWatch Ce rôle d'exécution de tâches ne dispose pas des autorisations supplémentaires requises pour créer le groupe de CloudWatch journaux Logs. Créez le groupe de CloudWatch journaux dans Logs à l'aide du AWS Management Console ou AWS CLI. Si vous ne souhaitez pas envoyer les journaux nginx à Logs, vous pouvez CloudWatch supprimer le. `logConfiguration`  
Remplacez l' Compte AWS identifiant dans le rôle d'exécution de la tâche par votre Compte AWS identifiant.

      ```
      {
          "family": "service-connect-nginx",
          "executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole",
          "taskRoleArn": "arn:aws:iam::123456789012:role/ecsTaskRole",
          "networkMode": "awsvpc",
          "containerDefinitions": [
              {
              "name": "webserver",
              "image": "public.ecr.aws/docker/library/nginx:latest",
              "cpu": 100,
              "portMappings": [
                  {
                      "name": "nginx",
                      "containerPort": 80,
                      "protocol": "tcp", 
                      "appProtocol": "http"
                  }
              ],
              "essential": true,
              "logConfiguration": {
                  "logDriver": "awslogs",
                  "options": {
                      "awslogs-group": "/ecs/service-connect-nginx",
                      "awslogs-region": "region", 
                      "awslogs-stream-prefix": "nginx"
                  }
              }
              }
          ],
          "cpu": "256",
          "memory": "512"
      }
      ```

   1. Enregistrez la définition de tâche à l'aide du fichier `service-connect-nginx.json` :

      ```
      aws ecs register-task-definition --cli-input-json file://service-connect-nginx.json
      ```

1. Créez un service :

   1. Créez un fichier nommé `service-connect-nginx-service.json` avec le contenu du service Amazon ECS que vous créez. Cet exemple utilise la définition de tâche créée à l'étape précédente. Le paramètre `awsvpcConfiguration` est obligatoire, car l'exemple de définition de tâche utilise le mode réseau `awsvpc`.

      Lorsque vous créez le service ECS, spécifiez Fargate et la version de plateforme `LATEST` qui prend en charge Service Connect. Les `securityGroups` et les `subnets` doivent appartenir à un VPC répondant aux exigences requises pour utiliser Amazon ECS. Vous pouvez obtenir le groupe de sécurité et le sous-réseau IDs depuis la console Amazon VPC. 

      Ce service configure Service Connect en ajoutant le paramètre `serviceConnectConfiguration`. L'espace de noms n'est pas obligatoire car un espace de noms par défaut est configuré pour le cluster. Les applications clientes exécutées dans ECS dans l'espace de noms se connectent à ce service en utilisant le `portName` et le port dans les `clientAliases`. Par exemple, ce service est accessible via `http://nginx:80/`, car nginx fournit une page de bienvenue à l'emplacement racine `/`. Les applications externes qui ne s'exécutent pas dans Amazon ECS ou qui ne se trouvent pas dans le même espace de noms peuvent accéder à cette application via le proxy Service Connect en utilisant l'adresse IP de la tâche et le numéro de port figurant dans la définition de la tâche. Pour votre configuration `tls`, ajoutez l’`arn` du certificat pour votre `awsPcaAuthorityArn`, votre `kmsKey` et `roleArn` de votre rôle IAM.

      Ce service utilise un `logConfiguration` pour envoyer la sortie du proxy Service Connect depuis `stdout` et `stderr` vers Amazon CloudWatch Logs. Ce rôle d'exécution de tâches ne dispose pas des autorisations supplémentaires requises pour créer le groupe de CloudWatch journaux Logs. Créez le groupe de CloudWatch journaux dans Logs à l'aide du AWS Management Console ou AWS CLI. Nous vous recommandons de créer ce groupe de journaux et de stocker les journaux du proxy dans CloudWatch Logs. Si vous ne souhaitez pas envoyer les journaux du proxy à CloudWatch Logs, vous pouvez supprimer le`logConfiguration`.

      ```
      {
          "cluster": "tutorial",
          "deploymentConfiguration": {
              "maximumPercent": 200,
              "minimumHealthyPercent": 0
          },
          "deploymentController": {
              "type": "ECS"
          },
          "desiredCount": 1,
          "enableECSManagedTags": true,
          "enableExecuteCommand": true,
          "launchType": "FARGATE",
          "networkConfiguration": {
              "awsvpcConfiguration": {
                  "assignPublicIp": "ENABLED",
                  "securityGroups": [
                      "sg-EXAMPLE"
                  ],
                  "subnets": [
                      "subnet-EXAMPLE",
                      "subnet-EXAMPLE",
                      "subnet-EXAMPLE"
                  ]
                 }
          },
          "platformVersion": "LATEST",
          "propagateTags": "SERVICE",
          "serviceName": "service-connect-nginx-service",
          "serviceConnectConfiguration": {
              "enabled": true,
              "services": [
                  {
                      "portName": "nginx",
                      "clientAliases": [
                          {
                              "port": 80
                          }
                      ],
                      "tls": {
                         "issuerCertificateAuthority": {
                            "awsPcaAuthorityArn": "certificateArn"
                         }, 
                         "kmsKey": "kmsKey", 
                         "roleArn": "iamRoleArn"
                      }
                  }
              ],
              "logConfiguration": {
                  "logDriver": "awslogs",
                  "options": {
                      "awslogs-group": "/ecs/service-connect-proxy",
                      "awslogs-region": "region",
                      "awslogs-stream-prefix": "service-connect-proxy"
                  }
              }
          },
          "taskDefinition": "service-connect-nginx"
      }
      ```

   1. Créez un service à l’aide du fichier `service-connect-nginx-service.json` :

      ```
      aws ecs create-service --cluster tutorial --cli-input-json file://service-connect-nginx-service.json
      ```

      Sortie :

      ```
      {
          "service": {
              "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/tutorial/service-connect-nginx-service",
              "serviceName": "service-connect-nginx-service",
              "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/tutorial",
              "loadBalancers": [],
              "serviceRegistries": [],
              "status": "ACTIVE",
              "desiredCount": 1,
              "runningCount": 0,
              "pendingCount": 0,
              "launchType": "FARGATE",
              "platformVersion": "LATEST",
              "platformFamily": "Linux",
              "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/service-connect-nginx:1",
              "deploymentConfiguration": {
                  "deploymentCircuitBreaker": {
                      "enable": false,
                      "rollback": false
                  },
                  "maximumPercent": 200,
                  "minimumHealthyPercent": 0
              },
              "deployments": [
                  {
                      "id": "ecs-svc/3763308422771520962",
                      "status": "PRIMARY",
                      "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/service-connect-nginx:1",
                      "desiredCount": 1,
                      "pendingCount": 0,
                      "runningCount": 0,
                      "failedTasks": 0,
                      "createdAt": 1661210032.602,
                      "updatedAt": 1661210032.602,
                      "launchType": "FARGATE",
                      "platformVersion": "1.4.0",
                      "platformFamily": "Linux",
                      "networkConfiguration": {
                          "awsvpcConfiguration": {
                              "assignPublicIp": "ENABLED",
                              "securityGroups": [
                                  "sg-EXAMPLE"
                              ],
                              "subnets": [
                                  "subnet-EXAMPLEf",
                                  "subnet-EXAMPLE",
                                  "subnet-EXAMPLE"
                              ]
                          }
                      },
                      "rolloutState": "IN_PROGRESS",
                      "rolloutStateReason": "ECS deployment ecs-svc/3763308422771520962 in progress.",
                      "failedLaunchTaskCount": 0,
                      "replacedTaskCount": 0,
                      "serviceConnectConfiguration": {
                          "enabled": true,
                          "namespace": "service-connect",
                          "services": [
                              {
                                  "portName": "nginx",
                                  "clientAliases": [
                                      {
                                          "port": 80
                                      }
                                  ]
                              }
                          ],
                          "logConfiguration": {
                              "logDriver": "awslogs",
                              "options": {
                                  "awslogs-group": "/ecs/service-connect-proxy",
                                  "awslogs-region": "us-west-2",
                                  "awslogs-stream-prefix": "service-connect-proxy"
                              },
                              "secretOptions": []
                          }
                      },
                      "serviceConnectResources": [
                          {
                              "discoveryName": "nginx",
                              "discoveryArn": "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-EXAMPLE"
                          }
                      ]
                  }
              ],
              "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS",
              "version": 0,
              "events": [],
              "createdAt": 1661210032.602,
              "placementConstraints": [],
              "placementStrategy": [],
              "networkConfiguration": {
                  "awsvpcConfiguration": {
                      "assignPublicIp": "ENABLED",
                      "securityGroups": [
                          "sg-EXAMPLE"
                      ],
                      "subnets": [
                          "subnet-EXAMPLE",
                          "subnet-EXAMPLE",
                          "subnet-EXAMPLE"
                      ]
                  }
              },
              "schedulingStrategy": "REPLICA",
              "enableECSManagedTags": true,
              "propagateTags": "SERVICE",
              "enableExecuteCommand": true
          }
      }
      ```

      La `serviceConnectConfiguration` que vous avez fournie apparaît dans le premier *déploiement* de la sortie. Lorsque vous apportez des modifications au service ECS de manière à modifier des tâches, un nouveau déploiement est créé par Amazon ECS.

## Étape 3 : Vérifier que vous pouvez vous connecter
<a name="create-service-connect-verify"></a>

Pour vérifier que Service Connect est configuré et fonctionne, procédez comme suit pour vous connecter au service Web à partir d'une application externe. Consultez ensuite les mesures supplémentaires dans CloudWatch le proxy Service Connect créé.

**Pour vous connecter au service Web à partir d'une application externe**
+ Connectez-vous à l'adresse IP de la tâche et au port du conteneur à l'aide de l'adresse IP de la tâche

  Utilisez le AWS CLI pour obtenir l'ID de la tâche, en utilisant le`aws ecs list-tasks --cluster tutorial`.

  Si vos sous-réseaux et votre groupe de sécurité autorisent le trafic depuis l'Internet public sur le port défini par la tâche, vous pouvez vous connecter à l'adresse IP publique depuis votre ordinateur. L'adresse IP publique n'étant pas disponible dans `describe-tasks`, les étapes consistent à se rendre sur Amazon EC2 AWS Management Console ou AWS CLI à obtenir les détails de l'interface Elastic Network.

  Dans cet exemple, une instance Amazon EC2 dans le même VPC utilise l'adresse IP privée de la tâche. L'application est nginx, mais l'en-tête `server: envoy` indique que le proxy Service Connect est utilisé. Le proxy Service Connect écoute sur le port du conteneur depuis la définition de la tâche.

  ```
  $ curl -v 10.0.19.50:80/
  *   Trying 10.0.19.50:80...
  * Connected to 10.0.19.50 (10.0.19.50) port 80 (#0)
  > GET / HTTP/1.1
  > Host: 10.0.19.50
  > User-Agent: curl/7.79.1
  > Accept: */*
  >
  * Mark bundle as not supporting multiuse
  < HTTP/1.1 200 OK
  < server: envoy
  < date: Tue, 23 Aug 2022 03:53:06 GMT
  < content-type: text/html
  < content-length: 612
  < last-modified: Tue, 16 Apr 2019 13:08:19 GMT
  < etag: "5cb5d3c3-264"
  < accept-ranges: bytes
  < x-envoy-upstream-service-time: 0
  <
  <!DOCTYPE html>
  <html>
  <head>
  <title>Welcome to nginx!</title>
  <style>
      body {
          width: 35em;
          margin: 0 auto;
          font-family: Tahoma, Verdana, Arial, sans-serif;
      }
  </style>
  </head>
  <body>
  <h1>Welcome to nginx!</h1>
  <p>If you see this page, the nginx web server is successfully installed and
  working. Further configuration is required.</p>
  
  <p>For online documentation and support please refer to
  <a href="http://nginx.org/">nginx.org</a>.<br/>
  Commercial support is available at
  <a href="http://nginx.com/">nginx.com</a>.</p>
  
  <p><em>Thank you for using nginx.</em></p>
  </body>
  </html>
  ```

**Pour consulter les métriques de Service Connect**  
Le proxy Service Connect crée des métriques d'application (connexion HTTP HTTP2, gRPC ou TCP) dans des métriques. CloudWatch Lorsque vous utilisez la CloudWatch console, consultez les dimensions métriques supplémentaires de **DiscoveryName**, (**DiscoveryName, ServiceName, ClusterName**) et (**TargetDiscoveryName**, **TargetDiscoveryName ServiceName, ClusterName**) dans l'espace de noms Amazon ECS. Pour plus d'informations sur ces statistiques et les dimensions, consultez la section [Afficher les mesures disponibles](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html) dans le guide de l'utilisateur Amazon CloudWatch Logs.

# Utilisation de la découverte de service pour connecter les services Amazon ECS avec des noms DNS
<a name="service-discovery"></a>

Vous pouvez éventuellement configurer votre Amazon ECS service afin d'utiliser la découverte de service Amazon ECS. La découverte de services utilise des actions d' AWS Cloud Map API pour gérer les espaces de noms HTTP et DNS pour vos services Amazon ECS. Pour plus d'informations, consultez [Présentation de AWS Cloud Map](https://docs.aws.amazon.com/cloud-map/latest/dg/Welcome.html) dans le *Manuel du développeur AWS Cloud Map *.

La découverte de services est disponible dans les AWS régions suivantes :


| Nom de la région | Région | 
| --- | --- | 
|  USA Est (Virginie du Nord)  |  us-east-1  | 
|  USA Est (Ohio)  |  us-east-2  | 
|  USA Ouest (Californie du Nord)  |  us-west-1  | 
|  US West (Oregon)  |  us-west-2  | 
|  Afrique (Le Cap)  |  af-south-1  | 
|  Asie-Pacifique (Hong Kong)  |  ap-east-1  | 
|  Asie-Pacifique (Taipei)  |  ap-east-2  | 
|  Asie-Pacifique (Mumbai)  |  ap-south-1  | 
|  Asie-Pacifique (Hyderabad)  |  ap-south-2  | 
|  Asie-Pacifique (Tokyo)  |  ap-northeast-1  | 
|  Asie-Pacifique (Séoul)  |  ap-northeast-2  | 
|  Asie-Pacifique (Osaka)  |  ap-northeast-3  | 
|  Asie-Pacifique (Singapour)  |  ap-southeast-1  | 
|  Asie-Pacifique (Sydney)  |  ap-southeast-2  | 
|  Asie-Pacifique (Jakarta)  |  ap-southeast-3  | 
|  Asie-Pacifique (Melbourne)  |  ap-southeast-4  | 
|  Asie-Pacifique (Malaisie)  |  ap-southeast-5  | 
|  Asie-Pacifique (Nouvelle-Zélande)  |  ap-southeast-6  | 
|  Asie-Pacifique (Thaïlande)  |  ap-southeast-7  | 
|  Canada (Centre)  |  ca-central-1  | 
|  Canada-Ouest (Calgary)  |  ca-west-1  | 
|  Chine (Beijing)  |  cn-north-1  | 
|  China (Ningxia)  |  cn-northwest-1  | 
|  Europe (Francfort)  |  eu-central-1  | 
|  Europe (Zurich)  |  eu-central-2  | 
|  Europe (Irlande)  |  eu-west-1  | 
|  Europe (Londres)  |  eu-west-2  | 
|  Europe (Paris)  |  eu-west-3  | 
|  Europe (Milan)  |  eu-south-1  | 
|  Europe (Stockholm)  |  eu-north-1  | 
|  Israël (Tel Aviv)  |  il-central-1  | 
|  Europe (Espagne)  |  eu-south-2  | 
|  Moyen-Orient (EAU)  |  me-central-1  | 
|  Mexique (Centre)  |  mx-central-1  | 
|  Moyen-Orient (Bahreïn)  |  me-south-1  | 
|  Amérique du Sud (São Paulo)  |  sa-east-1  | 
|  AWS GovCloud (USA Est)  |  us-gov-east-1  | 
|  AWS GovCloud (US-Ouest)  |  us-gov-west-1  | 

## Concepts associés à la découverte de service
<a name="service-discovery-concepts"></a>

La découverte de service se compose des éléments suivants :
+ **Espace de noms de découverte de services** : groupe logique de services de découverte de services qui partagent le même nom de domaine, tel que `example.com`, vers lequel vous souhaitez acheminer le trafic. Vous pouvez créer un espace de noms avec un appel à la commande `aws servicediscovery create-private-dns-namespace` ou dans la console Amazon ECS. Vous pouvez utiliser la commande `aws servicediscovery list-namespaces` pour afficher les informations récapitulatives concernant les espaces de noms créés par le compte actuel. Pour plus d'informations sur les commandes de découverte de services, consultez `[create-private-dns-namespace](https://docs.aws.amazon.com/cli/latest/reference/servicediscovery/create-private-dns-namespace.html)` et consultez `[list-namespaces](https://docs.aws.amazon.com/cli/latest/reference/servicediscovery/list-namespaces.html)` le *Guide de AWS CLI référence AWS Cloud Map (de découverte de services)*.
+ **Service de découverte de service** : présent dans l'espace de noms de la découverte de service, il se compose du nom du service et de la configuration DNS correspondant à l'espace de noms. Il fournit les principaux composants suivants :
  + **Registre des services** : vous permet de rechercher un service via des actions DNS ou AWS Cloud Map API et de récupérer un ou plusieurs points de terminaison disponibles pouvant être utilisés pour vous connecter au service.
+ **Instance de découverte de service** : existe dans le service de découverte de service et comprend les attributs associés à chaque service Amazon ECS service dans le répertoire de services.
  + **Attributs de l'instance** : les métadonnées suivantes sont ajoutées en tant qu'attributs personnalisés pour chaque service Amazon ECS service qui est configuré pour utiliser la découverte de service :
    + **`AWS_INSTANCE_IPV4`**— Pour `A` mémoire, l' IPv4 adresse renvoyée par Route 53 en réponse aux requêtes DNS et AWS Cloud Map lorsqu'elle découvre les détails de l'instance, par exemple,`192.0.2.44`.
    + **`AWS_INSTANCE_IPV6`**— Pour `AAAA` mémoire, l' IPv6 adresse renvoyée par Route 53 en réponse aux requêtes DNS et AWS Cloud Map lorsqu'elle découvre les détails de l'instance, par exemple,` 2001:0db8:85a3:0000:0000:abcd:0001:2345`. `AWS_INSTANCE_IPv4` et `AWS_INSTANCE_IPv6` sont ajoutés pour les services Amazon ECS à double pile. Seul `AWS_INSTANCE_IPv6` est ajouté pour les services Amazon ECS IPv6 uniquement.
    + **`AWS_INSTANCE_PORT`** – La valeur de port associées au service de découverte de service.
    + **`AVAILABILITY_ZONE`** – La zone de disponibilité dans laquelle la tâche a été lancée. Pour les tâches qui utilisent EC2, il s’agit de la zone de disponibilité dans laquelle l’instance de conteneur existe. Pour les tâches qui utilisent Fargate, il s’agit de la zone de disponibilité dans laquelle l’interface réseau Elastic existe.
    + **`REGION`** – La région dans laquelle la tâche existe.
    + **`ECS_SERVICE_NAME`** – Le nom du service Amazon ECS service auquel la tâche appartient.
    + **`ECS_CLUSTER_NAME`** – Le nom du cluster Amazon ECS auquel la tâche appartient.
    + **`EC2_INSTANCE_ID`** – L'ID de l'instance de conteneur sur laquelle la tâche a été placée. Cet attribut personnalisé n’est pas ajouté si la tâche utilise Fargate.
    + **`ECS_TASK_DEFINITION_FAMILY`** – La famille de définition de tâche que la tâche utilise.
    + **`ECS_TASK_SET_EXTERNAL_ID`** – Si un ensemble de tâches est créé pour un déploiement externe et est associé à un registre de découverte de service, alors l'attribut `ECS_TASK_SET_EXTERNAL_ID` contiendra l'ID externe de l'ensemble de tâches.
+ **Surveillances de l'état Amazon ECS** : Amazon ECS permet d'effectuer des surveillances d'état régulières au niveau du conteneur. Si un point de terminaison échoue à la surveillance de l'état, il est supprimé du routage DNS et marqué comme défectueux.

## Remarques relatives à la découverte de service
<a name="service-discovery-considerations"></a>

Les informations suivantes doivent être prises en compte lors de l'utilisation de la découverte de service :
+ La découverte de service est prise en charge pour les tâches sur Fargate qui utilisent la version de plateforme 1.1.0 ou supérieure. Pour de plus amples informations, veuillez consulter [Versions de plateforme Fargate pour Amazon ECS](platform-fargate.md).
+ Les services configurés pour utiliser la découverte de service sont limités à 1 000 tâches par service. Cela est dû à un quota de service Route 53.
+ Le flux de travail créer un service dans la console Amazon ECS prend uniquement en charge l'enregistrement des services dans des espaces de noms DNS privés. Lorsqu'un espace de noms DNS AWS Cloud Map privé est créé, une zone hébergée privée Route 53 est créée automatiquement.
+ Les attributs DNS du VPC doivent être configurés pour une résolution DNS réussie. Pour plus d'informations sur la configuration des attributs, consultez [Attributs DNS dans votre VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support) dans le *Guide de l'utilisateur Amazon VPC*.
+ Amazon ECS ne prend pas en charge l'enregistrement de services dans des AWS Cloud Map espaces de noms partagés.
+ Les registres DNS créés pour un service de découverte de service sont toujours enregistrés avec l'adresse IP privée de la tâche et non pas l'adresse IP publique, même lorsque des espaces de noms publics sont utilisés.
+ La découverte de service exige que les tâches spécifient le mode réseau `awsvpc`, `bridge` ou `host` (`none` n'est pas pris en charge).
+ Si la définition de tâche du service utilise le mode réseau `awsvpc`, vous pouvez créer n’importe quelle combinaison d’enregistrements `A` ou `SRV` pour chaque tâche de service. Si vous utilisez des enregistrements `SRV`, un port est requis. Vous pouvez également créer des enregistrements `AAAA` si le service utilise des sous-réseaux à double pile. Si le service utilise IPv6 uniquement des sous-réseaux, vous ne pouvez pas créer `A` d'enregistrements.
+ Si la définition de tâche du service utilise le mode réseau `bridge` ou `host`, un registre SRV est le seul type de registre DNS pris en charge. Créez un registre SRV pour chaque tâche de service. Le registre SRV doit spécifier une combinaison de nom de conteneur et de port de conteneur à partir de la définition de tâche.
+ Vous pouvez interroger les registres DNS pour un service de découverte de service au sein de votre VPC. Ces enregistrements utilisent le format suivant : `<service-discovery-service-name>.<service-discovery-namespace>`.
+ Lors de l’exécution d’une requête DNS sur le nom du service, les enregistrements `A` et `AAAA` renvoient un ensemble d’adresses IP correspondant à vos tâches. Les enregistrements `SRV` renvoient un ensemble d’adresses IP et de ports pour chaque tâche.
+ Si vous disposez de huit registres sains ou moins, Route 53 répond à toutes les requêtes DNS par tous les registres sains.
+ Lorsque tous les registres sont non sains, Route 53 répond à toutes les requêtes DNS par jusqu'à huit registres non sains.
+ Vous pouvez configurer la découverte de service pour un service situé derrière un équilibreur de charge, mais le trafic de découverte de service est toujours acheminé vers la tâche et non pas vers l'équilibreur de charge.
+ La découverte de service ne prend pas en charge l'utilisation des équilibreurs de charge Classic Load Balancer.
+ Nous vous recommandons d'utiliser les surveillances de l'état au niveau des conteneurs gérés par Amazon ECS pour votre service de découverte de service.
  + **HealthCheckCustomConfig**—Amazon ECS gère les bilans de santé en votre nom. Amazon ECS utilise les informations obtenues par le conteneur et les surveillances de l'état, et l'état de votre tâche, afin de mettre à jour l'état avec AWS Cloud Map. Cette configuration est spécifiée à l'aide du paramètre `--health-check-custom-config` au moment de la création de votre service de découverte de service. Pour plus d’informations, consultez [HealthCheckCustomConfig](https://docs.aws.amazon.com/cloud-map/latest/api/API_HealthCheckCustomConfig.html) dans la *Référence d’API AWS Cloud Map *.
+ Les AWS Cloud Map ressources créées lors de l'utilisation de la découverte de services doivent être nettoyées manuellement.
+ Les tâches et les instances sont enregistrées comme `UNHEALTHY` jusqu’à ce que la surveillance de l’état du conteneur renvoie une valeur. Si les surveillances de l’état réussissent, le statut est mis à jour à `HEALTHY`. Si la surveillance de l’état du conteneur échoue, l’enregistrement de l’instance de découverte de service est annulé.

## Tarification de la découverte de service
<a name="service-discovery-pricing"></a>

Les clients utilisant la découverte de service Amazon ECS service sont facturés pour les ressources Route 53 et les opérations d'API de découverte AWS Cloud Map . Le montant facturé englobe les coûts associés à la création des zones hébergées Route 53 et des requêtes sur le registre de services. Pour plus d'informations, consultez [Tarification AWS Cloud Map](https://docs.aws.amazon.com/cloud-map/latest/dg/cloud-map-pricing.html) dans le *Guide du développeur AWS Cloud Map *.

Amazon ECS effectue des contrôles de santé au niveau des conteneurs et les expose à des opérations d'API de vérification d'état AWS Cloud Map personnalisées. Ceci est actuellement mis à la disposition des clients sans frais supplémentaires. Si vous configurez des surveillances de l'état du réseau supplémentaires pour les tâches exposées publiquement, vous êtes facturé pour ces surveillances de l'état.

# Création d’un service Amazon ECS qui utilise la découverte de service
<a name="create-service-discovery"></a>

Découvrez comment créer un service contenant une tâche Fargate qui utilise la découverte de service avec l’ AWS CLI.

Pour obtenir la liste de Régions AWS ces services d'assistance découverts, consultez[Utilisation de la découverte de service pour connecter les services Amazon ECS avec des noms DNS](service-discovery.md).

Pour de plus amples informations sur les Régions qui prennent en charge Fargate, veuillez consulter [Régions prises en charge pour Amazon ECS sur AWS Fargate](AWS_Fargate-Regions.md).

**Note**  
Vous pouvez utiliser des points de terminaison de service à double pile pour interagir avec Amazon ECS à partir de AWS CLI SDKs, et de l'API Amazon ECS via les deux IPv4 et. IPv6 Pour de plus amples informations, veuillez consulter [Utilisation des points de terminaison à double pile Amazon ECS](dual-stack-endpoint.md).

## Conditions préalables
<a name="create-service-discovery-prereqs"></a>

Avant de commencer ce didacticiel, vérifiez que vous respectez les conditions requises suivantes :
+ La dernière version du AWS CLI est installée et configurée. Pour plus d’informations, consultez la section [Installation ou mise à jour de la version la plus récente de l’ AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).
+ Les étapes décrites dans [Configurer l'utilisation d'Amazon ECS](get-set-up-for-amazon-ecs.md) sont terminées.
+ Votre utilisateur IAM dispose des autorisations requises spécifiées dans l’exemple de politique IAM [Amazon ECS\$1 FullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonECS_FullAccess).
+ Vous avez créé au moins un VPC et un groupe de sécurité. Pour de plus amples informations, veuillez consulter [Créer un Virtual Private Cloud](get-set-up-for-amazon-ecs.md#create-a-vpc).

## Étape 1 : créer les ressources Service Discovery dans AWS Cloud Map
<a name="create-service-discovery-namespace"></a>

Suivez ces étapes suivantes pour créer votre espace de noms de découverte de service et votre service de découverte de service :

1. Créez un espace de noms de découverte de service Cloud Map privé. Cet exemple crée un espace de noms appelé `tutorial`. *vpc-abcd1234*Remplacez-le par l'identifiant de l'un de vos identifiants existants VPCs. 

   ```
   aws servicediscovery create-private-dns-namespace \
         --name tutorial \
         --vpc vpc-abcd1234
   ```

   La sortie de cette commande est la suivante.

   ```
   {
       "OperationId": "h2qe3s6dxftvvt7riu6lfy2f6c3jlhf4-je6chs2e"
   }
   ```

1. À l'aide du paramètre `OperationId` obtenu à partir de la sortie de l'étape précédente, vérifiez que l'espace de noms privés a bien été créé. Notez l'ID de l'espace de noms car vous l'utiliserez dans les commandes suivantes.

   ```
   aws servicediscovery get-operation \
         --operation-id h2qe3s6dxftvvt7riu6lfy2f6c3jlhf4-je6chs2e
   ```

   La sortie est la suivante.

   ```
   {
       "Operation": {
           "Id": "h2qe3s6dxftvvt7riu6lfy2f6c3jlhf4-je6chs2e",
           "Type": "CREATE_NAMESPACE",
           "Status": "SUCCESS",
           "CreateDate": 1519777852.502,
           "UpdateDate": 1519777856.086,
           "Targets": {
              "NAMESPACE": "ns-uejictsjen2i4eeg"
           }
       }
   }
   ```

1. En utilisant l'ID `NAMESPACE` indiqué dans la sortie de l'étape précédente, créez un service de découverte de service. Cet exemple crée un service nommé `myapplication`. Notez l'ID du service et l'ARN car vous les utiliserez dans les commandes suivantes.

   ```
   aws servicediscovery create-service \
         --name myapplication \
         --dns-config "NamespaceId="ns-uejictsjen2i4eeg",DnsRecords=[{Type="A",TTL="300"}]" \
         --health-check-custom-config FailureThreshold=1
   ```

   La sortie est la suivante.

   ```
   {
       "Service": {
          "Id": "srv-utcrh6wavdkggqtk",
           "Arn": "arn:aws:servicediscovery:region:aws_account_id:service/srv-utcrh6wavdkggqtk",
           "Name": "myapplication",
           "DnsConfig": {
               "NamespaceId": "ns-uejictsjen2i4eeg",
               "DnsRecords": [
                   {
                       "Type": "A",
                       "TTL": 300
                   }
               ]
           },
           "HealthCheckCustomConfig": {
               "FailureThreshold": 1
           },
           "CreatorRequestId": "e49a8797-b735-481b-a657-b74d1d6734eb"
       }
   }
   ```

## Étape 2 : Créer les ressources Amazon ECS
<a name="create-service-discovery-cluster"></a>

Suivez ces étapes pour créer votre cluster, votre définition de tâche et votre service Amazon ECS service :

1. Créez un nouveau cluster Amazon ECS. Cet exemple crée un cluster appelé `tutorial`. 

   ```
   aws ecs create-cluster \
         --cluster-name tutorial
   ```

1. Enregistrez une définition de tâche compatible avec Fargate et qui utilise le mode réseau `awsvpc`. Procédez comme suit :

   1. Créez un fichier nommé `fargate-task.json` avec le contenu de la définition de tâche suivante.

      ```
      {
          "family": "tutorial-task-def",
              "networkMode": "awsvpc",
              "containerDefinitions": [
                  {
                      "name": "sample-app",
                      "image": "public.ecr.aws/docker/library/httpd:2.4",
                      "portMappings": [
                          {
                              "containerPort": 80,
                              "hostPort": 80,
                              "protocol": "tcp"
                          }
                      ],
                      "essential": true,
                      "entryPoint": [
                          "sh",
                          "-c"
                      ],
                      "command": [
                          "/bin/sh -c \"echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p> </div></body></html>' >  /usr/local/apache2/htdocs/index.html && httpd-foreground\""
                      ]
                  }
              ],
              "requiresCompatibilities": [
                  "FARGATE"
              ],
              "cpu": "256",
              "memory": "512"
      }
      ```

   1. Enregistrez la définition de tâche en utilisant `fargate-task.json`.

      ```
      aws ecs register-task-definition \
            --cli-input-json file://fargate-task.json
      ```

1. Créez un service ECS en procédant comme suit :

   1. Créez un fichier nommé `ecs-service-discovery.json` avec le contenu du service ECS que vous créez. Cet exemple utilise la définition de tâche créée à l'étape précédente. Le paramètre `awsvpcConfiguration` est obligatoire, car l'exemple de définition de tâche utilise le mode réseau `awsvpc`. 

      Lorsque vous créez le service ECS, spécifiez le type de lancement Fargate et la version de plateforme `LATEST`, qui prend en charge la fonction de découverte de service. Lorsque le service de découverte de service est créé dans AWS Cloud Map , `registryArn` est l'ARN renvoyé. Les `securityGroups` et les `subnets` doivent appartenir au VPC utilisé pour créer l'espace de noms Cloud Map. Vous pouvez obtenir le groupe de sécurité et le sous-réseau IDs depuis la console Amazon VPC.

      ```
      {
          "cluster": "tutorial",
          "serviceName": "ecs-service-discovery",
          "taskDefinition": "tutorial-task-def",
          "serviceRegistries": [
             {
                "registryArn": "arn:aws:servicediscovery:region:aws_account_id:service/srv-utcrh6wavdkggqtk"
             }
          ],
          "launchType": "FARGATE",
          "platformVersion": "LATEST",
          "networkConfiguration": {
             "awsvpcConfiguration": {
                "assignPublicIp": "ENABLED",
                "securityGroups": [ "sg-abcd1234" ],
                "subnets": [ "subnet-abcd1234" ]
             }
          },
          "desiredCount": 1
      }
      ```

   1. Créez votre service ECS à l'aide du `ecs-service-discovery.json`.

      ```
      aws ecs create-service \
            --cli-input-json file://ecs-service-discovery.json
      ```

## Étape 3 : vérifier la découverte du service dans AWS Cloud Map
<a name="create-service-discovery-verify"></a>

Vous pouvez vérifier que tout est bien créé en interrogeant les informations associées à la fonction de découverte de service. Une fois la découverte des services configurée, vous pouvez soit utiliser des opérations d' AWS Cloud Map API, soit effectuer un appel `dig` depuis une instance au sein de votre VPC. Procédez comme suit :

1. À l'aide de l'ID de service de découverte de service, répertoriez les instances de découverte de service. Notez l'ID de l'instance (en gras) pour le nettoyage des ressources. 

   ```
    aws servicediscovery list-instances \
          --service-id srv-utcrh6wavdkggqtk
   ```

   La sortie est la suivante.

   ```
   {
       "Instances": [
           {
               "Id": "16becc26-8558-4af1-9fbd-f81be062a266",
               "Attributes": {
                   "AWS_INSTANCE_IPV4": "172.31.87.2"
                   "AWS_INSTANCE_PORT": "80", 
                   "AVAILABILITY_ZONE": "us-east-1a", 
                   "REGION": "us-east-1", 
                   "ECS_SERVICE_NAME": "ecs-service-discovery", 
                   "ECS_CLUSTER_NAME": "tutorial", 
                   "ECS_TASK_DEFINITION_FAMILY": "tutorial-task-def"
               }
           }
       ]
   }
   ```

1. Utilisez l'espace de noms, le service et les paramètres supplémentaires tels que le nom du cluster ECS pour demander des informations détaillées sur les instances de la fonction de découverte de service.

   ```
   aws servicediscovery discover-instances \
         --namespace-name tutorial \
         --service-name myapplication \
         --query-parameters ECS_CLUSTER_NAME=tutorial
   ```

1. Vous pouvez interroger les registres DNS créés dans la zone hébergée Route 53 de votre service de découverte de service à l'aide des commandes AWS CLI suivantes :

   1. À l'aide de l'ID de l'espace de noms, obtenez les informations relatives à l'espace de noms, lesquelles incluent l'ID de la zone hébergée Route 53.

      ```
      aws servicediscovery \
            get-namespace --id ns-uejictsjen2i4eeg
      ```

      La sortie est la suivante.

      ```
      {
          "Namespace": {
              "Id": "ns-uejictsjen2i4eeg",
              "Arn": "arn:aws:servicediscovery:region:aws_account_id:namespace/ns-uejictsjen2i4eeg",
              "Name": "tutorial",
              "Type": "DNS_PRIVATE",
              "Properties": {
                   "DnsProperties": {
                      "HostedZoneId": "Z35JQ4ZFDRYPLV"
                  }
              },
              "CreateDate": 1519777852.502,
              "CreatorRequestId": "9049a1d5-25e4-4115-8625-96dbda9a6093"
          }
      }
      ```

   1. À l'aide de l'ID de zone hébergée Route 53 de l'étape précédente (voir le texte en gras), obtenez l'enregistrement de ressource défini pour la zone hébergée. 

      ```
      aws route53 list-resource-record-sets \
            --hosted-zone-id Z35JQ4ZFDRYPLV
      ```

1. Vous pouvez également interroger le DNS à partir d'une instance de votre VPC à l'aide de `dig`.

   ```
   dig +short myapplication.tutorial
   ```

## Étape 4 : nettoyer
<a name="create-service-discovery-cleanup"></a>

Une fois que vous avez terminé ce didacticiel, nettoyez les ressources qui lui sont associées afin d'éviter la facturation de frais pour des ressources inutilisées. Procédez comme suit :

1. Annulez l'enregistrement des instances de service de découverte de service à l'aide de l'ID de service et de l'ID de l'instance que vous avez notés précédemment.

   ```
   aws servicediscovery deregister-instance \
         --service-id srv-utcrh6wavdkggqtk \
         --instance-id 16becc26-8558-4af1-9fbd-f81be062a266
   ```

   La sortie est la suivante.

   ```
   {
       "OperationId": "xhu73bsertlyffhm3faqi7kumsmx274n-jh0zimzv"
   }
   ```

1. À l'aide du `OperationId` indiqué dans la sortie de l'étape précédente, vérifiez que l'inscription des instances du service de découverte de service ont été correctement annulées.

   ```
   aws servicediscovery get-operation \ 
         --operation-id xhu73bsertlyffhm3faqi7kumsmx274n-jh0zimzv
   ```

   ```
   {
     "Operation": {
           "Id": "xhu73bsertlyffhm3faqi7kumsmx274n-jh0zimzv",
           "Type": "DEREGISTER_INSTANCE",
           "Status": "SUCCESS",
           "CreateDate": 1525984073.707,
           "UpdateDate": 1525984076.426,
           "Targets": {
               "INSTANCE": "16becc26-8558-4af1-9fbd-f81be062a266",
               "ROUTE_53_CHANGE_ID": "C5NSRG1J4I1FH",
               "SERVICE": "srv-utcrh6wavdkggqtk"
           }
       }
   }
   ```

1. Supprimez le service de découverte de service en utilisant l'ID du service.

   ```
   aws servicediscovery delete-service \ 
         --id srv-utcrh6wavdkggqtk
   ```

1. Supprimer l'espace de noms de découverte de service en utilisant l'ID de l'espace de noms.

   ```
   aws servicediscovery delete-namespace \ 
         --id ns-uejictsjen2i4eeg
   ```

   La sortie est la suivante.

   ```
   {
       "OperationId": "c3ncqglftesw4ibgj5baz6ktaoh6cg4t-jh0ztysj"
   }
   ```

1. À l'aide du `OperationId` indiqué dans la sortie de l'étape précédente, vérifiez que l'espace de noms de la découverte de service a été correctement supprimé.

   ```
   aws servicediscovery get-operation \ 
         --operation-id c3ncqglftesw4ibgj5baz6ktaoh6cg4t-jh0ztysj
   ```

   La sortie est la suivante.

   ```
   {
       "Operation": {
           "Id": "c3ncqglftesw4ibgj5baz6ktaoh6cg4t-jh0ztysj",
           "Type": "DELETE_NAMESPACE",
           "Status": "SUCCESS",
           "CreateDate": 1525984602.211,
           "UpdateDate": 1525984602.558,
           "Targets": {
               "NAMESPACE": "ns-rymlehshst7hhukh",
               "ROUTE_53_CHANGE_ID": "CJP2A2M86XW3O"
           }
       }
   }
   ```

1. Définissez le nombre souhaité pour le service Amazon ECS sur `0`. Vous devez effectuer cette étape pour supprimer le service à l'étape suivante.

   ```
   aws ecs update-service \
         --cluster tutorial \
         --service ecs-service-discovery \
         --desired-count 0
   ```

1. Supprimez l'Amazon ECS service.

   ```
   aws ecs delete-service \
         --cluster tutorial \
         --service ecs-service-discovery
   ```

1. Supprimez le cluster Amazon ECS.

   ```
   aws ecs delete-cluster \
         --cluster tutorial
   ```

# Utilisez Amazon VPC Lattice pour connecter, observer et sécuriser vos services Amazon ECS
<a name="ecs-vpc-lattice"></a>

Amazon VPC Lattice est un service de mise en réseau d'applications entièrement géré qui permet aux clients d'Amazon ECS d'observer, de sécuriser et de surveiller les applications basées sur des services AWS informatiques et des comptes VPCs, sans avoir à modifier le code.

VPC Lattice utilise des groupes cibles, qui sont un ensemble de ressources de calcul. Ces cibles exécutent votre application ou votre service et peuvent être des instances Amazon EC2, des adresses IP, des fonctions Lambda et des équilibreurs de charge d'application. En associant leurs services Amazon ECS à un groupe cible VPC Lattice, les clients peuvent désormais activer les tâches Amazon ECS en tant que cibles IP dans VPC Lattice. Amazon ECS enregistre automatiquement les tâches auprès du groupe cible VPC Lattice lorsque les tâches du service enregistré sont lancées.

**Note**  
Lorsque vous utilisez cinq configurations VPC Lattice, votre temps de déploiement peut être légèrement plus long que lorsque vous utilisez moins de configurations.

Une règle d’écoute est utilisée pour transférer le trafic vers un groupe cible spécifié lorsque les conditions sont remplies. Un écouteur vérifie les requêtes de connexion à l’aide du protocole sur le port que vous avez configuré. Un service achemine les requêtes vers ses cibles enregistrées en fonction des règles que vous définissez lors de la configuration de votre écouteur.

Amazon ECS remplace également automatiquement une tâche si elle devient défectueuse selon les surveillances de l’état de VPC Lattice. Une fois associés à VPC Lattice, les clients d'Amazon ECS peuvent également tirer parti des nombreuses autres fonctionnalités de connectivité, de sécurité et d'observabilité entre ordinateurs de VPC Lattice, telles que la connexion aux services entre clusters et comptes AWS Resource Access Manager avec VPCs, l'intégration IAM pour l'autorisation et l'authentification, et les fonctionnalités avancées de gestion du trafic.

Les avantages de VPC Lattice pour les clients Amazon ECS sont les suivants.
+ Productivité accrue des développeurs : VPC Lattice améliore la productivité des développeurs en vous permettant de vous concentrer sur la création de fonctionnalités, tandis que VPC Lattice gère les défis liés au réseau, à la sécurité et à l’observabilité de manière uniforme sur toutes les plateformes de calcul.
+ Meilleure posture de sécurité : VPC Lattice permet à vos développeurs d’authentifier et de sécuriser facilement les communications entre les applications et les plateformes informatiques, d’appliquer le chiffrement en transit et de mettre en place des contrôles d’accès granulaires grâce aux politiques d’authentification VPC Lattice. Cela vous permet d’adopter une posture de sécurité renforcée qui répond aux principales exigences réglementaires et de conformité du secteur.
+ Capacité de mise à l’échelle et résilience améliorées des applications : VPC Lattice vous permet de créer un réseau d’applications déployées avec des fonctionnalités telles que le routage, l’authentification, l’autorisation et la surveillance basés sur les chemins, les en-têtes et les méthodes. Ces avantages sont fournis sans frais supplémentaires en termes de ressources sur les charges de travail et peuvent prendre en charge des déploiements multiclusters générant des millions de requêtes par seconde sans ajouter de latence significative.
+ Flexibilité de déploiement grâce à une infrastructure hétérogène : VPC Lattice fournit des fonctionnalités cohérentes sur tous les services de calcul tels qu’Amazon ECS, Fargate, Amazon EC2, Amazon EKS et Lambda. permettant à votre organisation de choisir l’infrastructure adaptée à chaque application.

## Comment VPC Lattice fonctionne avec les autres services Amazon ECS
<a name="ecs-lattice-compatibility"></a>

L’utilisation de VPC Lattice avec Amazon ECS peut modifier la façon dont vous utilisez d’autres services Amazon ECS, tandis que d’autres restent inchangés.

**Application Load Balancers**  
Vous n’avez plus besoin de créer un Application Load Balancer spécifique devant être utilisé avec le type de groupe cible Application Load Balancer dans VPC Lattice, qui est ensuite lié au service Amazon ECS. Au lieu de cela, il vous suffit de configurer votre service Amazon ECS avec un groupe cible VPC Lattice. Vous pouvez également choisir d’utiliser Application Load Balancer avec Amazon ECS en même temps.

**Déploiements propagés Amazon ECS**  
Seuls les déploiements propagés Amazon ECS fonctionnent avec VPC Lattice, et Amazon ECS introduit des tâches dans les services et les supprime en toute sécurité pendant le déploiement. Le déploiement du code et les Blue/Green déploiements ne sont pas pris en charge.

Pour en savoir plus sur VPC Lattice, consultez le [Guide de l’utilisateur Amazon VPC Lattice](https://docs.aws.amazon.com/vpc-lattice/latest/ug/what-is-vpc-lattice.html).

# Création d'un service utilisant VPC Lattice
<a name="ecs-vpc-lattice-create-service"></a>

Vous pouvez utiliser le AWS Management Console ou le AWS CLI pour créer un service avec VPC Lattice.

## Conditions préalables
<a name="create-ecs-vpc-lattice-prereqs"></a>

Avant de commencer ce didacticiel, vérifiez que vous respectez les conditions requises suivantes :
+ La dernière version du AWS CLI est installée et configurée. Pour plus d’informations, consultez [Installing the AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) (Installation de).
**Note**  
Vous pouvez utiliser des points de terminaison de service à double pile pour interagir avec Amazon ECS à partir de AWS CLI SDKs, et de l'API Amazon ECS via les deux IPv4 et. IPv6 Pour de plus amples informations, veuillez consulter [Utilisation des points de terminaison à double pile Amazon ECS](dual-stack-endpoint.md).
+ Les étapes décrites dans [Configurer l'utilisation d'Amazon ECS](get-set-up-for-amazon-ecs.md) sont terminées.
+ Votre utilisateur IAM dispose des autorisations requises spécifiées dans l’exemple de politique IAM [Amazon ECS\$1 FullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonECS_FullAccess).

## Créez un service qui utilise VPC Lattice avec AWS Management Console
<a name="ecs-lattice-create-console"></a>

Procédez comme suit pour créer un service avec VPC Lattice à l’aide de l’ AWS Management Console.

1. Ouvrez la console à la [https://console.aws.amazon.com/ecs/version 2](https://console.aws.amazon.com/ecs/v2).

1. Dans la page de navigation, choisissez **Clusters**.

1. Sur la page **Clusters**, choisissez le cluster dans lequel créer le service.

1. Sous l'onglet **Services** choisissez **Create** (Créer).

   Si vous n’avez jamais créé de service auparavant, suivez les étapes décrites dans [Création d’un service Amazon ECS à l’aide de la console](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-service-console-v2.html), puis poursuivez ces étapes lorsque vous atteignez la section VPC Lattice.

1. Choisissez **Activer le réseau VPC** en cochant le bouton.

1. Pour utiliser un rôle existant, pour **Rôle d’infrastructure ECS pour Amazon ECS**, choisissez-en un que vous avez déjà créé pour l’utiliser lors de la création du groupe cible VPC Lattice. Pour créer un rôle, **Créer un rôle d’infrastructure ECS**.

1. Choisissez le **VPC**.

   Le **VPC** dépend du mode réseau que vous avez sélectionné lors de l’enregistrement de votre définition de tâche. Si vous utilisez le mode `host` ou `network` avec EC2, choisissez votre VPC. 

   Pour le mode `awsvpc`, le VPC est automatiquement sélectionné en fonction du VPC que vous avez choisi sous **Mise en réseau** et ne peut pas être modifié.

1. Sous **Groupes cibles**, sélectionnez le ou les groupes cibles. Vous devez choisir au moins un groupe cible et pouvez en avoir jusqu’à cinq. Sélectionnez **Ajouter un groupe cible** pour ajouter d’autres groupes cibles. Choisissez le **Nom du port**, le **Protocole** et le **Port** pour chaque groupe cible que vous avez choisi. Pour supprimer un groupe cible, sélectionnez **Supprimer**.
**Note**  
Si vous souhaitez ajouter un groupe cible existant, vous devez utiliser l’ AWS CLI. *Pour obtenir des instructions sur la façon d'ajouter des groupes cibles à l'aide de AWS CLI, voir [register-targets](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/register-targets.html) dans la AWS Command Line Interface référence.*
Bien qu’un service VPC Lattice puisse avoir plusieurs groupes cibles, chaque groupe cible ne peut être ajouté qu’à un seul service.
Pour créer un service dans une configuration IPv6 uniquement, choisissez des groupes cibles avec un type d'adresse IP de`IPv6`.

1. À ce stade, vous accédez à la console VPC Lattice pour poursuivre la configuration. C’est ici que vous incluez vos nouveaux groupes cibles dans l’action par défaut de l’écouteur ou dans les règles d’un service VPC Lattice existant. 

   Pour plus d’informations, consultez la section [Règles d’écoute pour votre service VPC Lattice](https://docs.aws.amazon.com/vpc-lattice/latest/ug/listener-rules.html).

**Important**  
Vous devez autoriser le préfixe de règle de trafic entrant `vpc-lattice` à accéder à votre groupe de sécurité, sinon les tâches et la surveillance de l’état échoueront. 

## Créez un service qui utilise VPC Lattice avec AWS CLI
<a name="ecs-lattice-create-cli"></a>

Utilisez le AWS CLI pour créer un service avec VPC Lattice. Remplacez chaque *user input placeholder* par vos propres informations.

1. Créez un fichier de configuration de groupe cible. L’exemple suivant est nommé `tg-config.json`

   ```
   {
       "ipAddressType": "IPV4",
       "port": 443,
       "protocol": "HTTPS",
       "protocolVersion": "HTTP1",
       "vpcIdentifier": "vpc-f1663d9868EXAMPLE"
   }
   ```

1. Utilisez la commande suivante pour créer un groupe cible VPC Lattice.

   ```
   aws vpc-lattice create-target-group \
       --name my-lattice-target-group-ip \
       --type IP \
       --config file://tg-config.json
   ```
**Note**  
Pour créer un service dans une configuration IPv6 uniquement, créez des groupes cibles avec un type d'adresse IP de`IPv6`. Pour plus d’informations, consultez [create-target-group](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/create-target-group.html) dans la *Référence des commandes de l’AWS CLI *.

   Exemple de sortie :

   ```
   {
       "arn": "arn:aws:vpc-lattice:us-east-2:123456789012:targetgroup/tg-0eaa4b9ab4EXAMPLE",
       "config": {
           "healthCheck": {
               "enabled": true,
               "healthCheckIntervalSeconds": 30,
               "healthCheckTimeoutSeconds": 5,
               "healthyThresholdCount": 5,
               "matcher": {
                   "httpCode": "200"
               },
               "path": "/",
               "protocol": "HTTPS",
               "protocolVersion": "HTTP1",
               "unhealthyThresholdCount": 2
           },
           "ipAddressType": "IPV4",
           "port": 443,
           "protocol": "HTTPS",
           "protocolVersion": "HTTP1",
           "vpcIdentifier": "vpc-f1663d9868EXAMPLE"
       },
       "id": "tg-0eaa4b9ab4EXAMPLE",
       "name": "my-lattice-target-group-ip",
       "status": "CREATE_IN_PROGRESS",
       "type": "IP"
   }
   ```

1. Le fichier JSON suivant *ecs-service-vpc-lattice.json* est un exemple utilisé pour associer un service Amazon ECS à un groupe cible VPC Lattice. Le `portName` dans l’exemple ci-dessous est le même que celui que vous avez défini dans le champ `name` de la propriété `portMappings` de votre définition de tâche.

   ```
   {
       "serviceName": "ecs-service-vpc-lattice",
       "taskDefinition": "ecs-task-def",
           "vpcLatticeConfigurations": [
           {
               "targetGroupArn": "arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-0eaa4b9ab4EXAMPLE",
               "portName": "testvpclattice",
               "roleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRoleVpcLattice"
           }
       ],
       "desiredCount": 5,
       "role": "ecsServiceRole"
   }
   ```

   Utilisez la commande suivante pour créer un service Amazon ECS et l’associer au groupe cible VPC Lattice à l’aide de l’exemple json ci-dessus.

   ```
   aws ecs create-service \
       --cluster clusterName \
       --serviceName ecs-service-vpc-lattice \
       --cli-input-json file://ecs-service-vpc-lattice.json
   ```

**Note**  
VPC Lattice n’est pas pris en charge sur Amazon ECS Anywhere.