

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.

# Passerelles virtuelles
<a name="virtual_gateways"></a>

**Important**  
Avis de fin de support : le 30 septembre 2026, AWS le support de. AWS App Mesh Après le 30 septembre 2026, vous ne pourrez plus accéder à la AWS App Mesh console ni aux AWS App Mesh ressources. Pour plus d'informations, consultez ce billet de blog [intitulé Migration from AWS App Mesh to Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect). 

Une passerelle virtuelle permet aux ressources situées en dehors de votre maillage de communiquer avec les ressources situées à l'intérieur de votre maillage. La passerelle virtuelle représente un proxy Envoy exécuté dans un service Amazon ECS, dans un service Kubernetes ou sur une instance Amazon. EC2 Contrairement à un nœud virtuel, qui représente Envoy exécuté avec une application, une passerelle virtuelle représente Envoy déployé seul. 

Les ressources externes doivent être en mesure de convertir un nom DNS en une adresse IP attribuée au service ou à l'instance qui exécute Envoy. Envoy peut ensuite accéder à toute la configuration de l'App Mesh pour les ressources qui se trouvent à l'intérieur du maillage. La configuration pour le traitement des demandes entrantes sur la passerelle virtuelle est spécifiée à l'aide de [Gateway Routes](https://docs.aws.amazon.com/app-mesh/latest/userguide/gateway-routes.html).

**Important**  
Une passerelle virtuelle dotée d'un protocole HTTP ou d'un HTTP2 écouteur réécrit le nom d'hôte de la demande entrante en nom du service virtuel cible de la route de passerelle, et le préfixe correspondant de l'itinéraire de passerelle est réécrit par défaut. `/` Par exemple, si vous avez configuré le préfixe de correspondance de la passerelle sur`/chapter`, et si la demande entrante l'est`/chapter/1`, la demande sera réécrite en. `/1` Pour configurer les réécritures, reportez-vous à la section [Création d'un itinéraire de passerelle](https://docs.aws.amazon.com/app-mesh/latest/userguide/gateway-routes.html#create-gateway-route) à partir de Gateway Routes.  
Lors de la création d'une passerelle virtuelle, `proxyConfiguration` elle ne `user` doit pas être configurée.

Pour effectuer une end-to-end procédure pas à pas, consultez [Configuration de la passerelle entrante](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-ingress-gateway).

## Création d'une passerelle virtuelle
<a name="create-virtual-gateway"></a>

**Note**  
Lorsque vous créez une passerelle virtuelle, vous devez ajouter un sélecteur d'espace de noms avec une étiquette pour identifier la liste des espaces de noms auxquels associer les routes de passerelle à la passerelle virtuelle créée.

------
#### [ AWS Management Console ]

**Pour créer une passerelle virtuelle à l'aide du AWS Management Console**

1. Ouvrez la console App Mesh à l'adresse [https://console.aws.amazon.com/appmesh/](https://console.aws.amazon.com/appmesh/). 

1. Choisissez le maillage dans lequel vous souhaitez créer la passerelle virtuelle. Tous les maillages que vous possédez et qui ont été [partagés](sharing.md) avec vous sont répertoriés.

1. Choisissez **Passerelles virtuelles dans** le menu de navigation de gauche.

1. Choisissez **Créer une passerelle virtuelle**.

1. Dans **Nom de la passerelle virtuelle**, entrez le nom de votre passerelle virtuelle.

1. (Facultatif, mais recommandé) Configurez les paramètres **par défaut de la politique du client**.

   1. (Facultatif) Sélectionnez **Appliquer le protocole TLS** si vous souhaitez que la passerelle communique uniquement avec les services virtuels à l'aide du protocole TLS (Transport Layer Security).

   1. (Facultatif) Pour **Ports**, spécifiez un ou plusieurs ports sur lesquels vous souhaitez appliquer la communication TLS avec les services virtuels.

   1. Pour **Méthode de validation**, sélectionnez l'une des options suivantes. Le certificat que vous spécifiez doit déjà exister et répondre à des exigences spécifiques. Pour de plus amples informations, veuillez consulter [Exigences du certificat](tls.md#virtual-node-tls-prerequisites).
      + **AWS Autorité de certification privée**hébergement : sélectionnez un ou plusieurs **certificats** existants.
      + Hébergement **Envoy Secret Discovery Service (SDS)** — Entrez le nom du secret qu'Envoy récupère à l'aide du Secret Discovery Service.
      + **Hébergement de fichiers local** — Spécifiez le chemin d'accès au fichier de **chaîne de certificats** sur le système de fichiers sur lequel Envoy est déployé.

   1. (Facultatif) Entrez un **autre nom de sujet**. Pour en ajouter d'autres SANs, sélectionnez **Ajouter un SAN**. SANs doit être au format FQDN ou URI.

   1. (Facultatif) Sélectionnez **Fournir un certificat client** et l'une des options ci-dessous pour fournir un certificat client lorsqu'un serveur le demande et activer l'authentification TLS mutuelle. Pour en savoir plus sur le protocole TLS mutuel, consultez la documentation relative à l'[authentification TLS mutuelle](https://docs.aws.amazon.com/app-mesh/latest/userguide/mutual-tls.html) App Mesh.
      + Hébergement **Envoy Secret Discovery Service (SDS)** — Entrez le nom du secret qu'Envoy récupère à l'aide du Secret Discovery Service.
      + **Hébergement de fichiers local** — Spécifiez le chemin d'accès au fichier de **chaîne de certificats**, ainsi que la **clé privée**, sur le système de fichiers sur lequel Envoy est déployé. Pour une description complète du déploiement d'un maillage avec un exemple d'application utilisant le chiffrement avec des fichiers locaux, voir [Configuration du protocole TLS avec des certificats TLS fournis par fichier activé](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-tls-file-provided). end-to-end GitHub

1. (Facultatif) Pour configurer la journalisation, sélectionnez **Journalisation**. Entrez le **chemin des journaux d'accès HTTP** que vous souhaitez qu'Envoy utilise. Nous vous recommandons ce `/dev/stdout` chemin afin que vous puissiez utiliser les pilotes de journal Docker pour exporter vos journaux Envoy vers un service tel qu'Amazon CloudWatch Logs.
**Note**  
Les journaux doivent toujours être ingérés par un agent dans votre application et envoyés à une destination. Ce chemin d'accès au fichier indique à Envoy où envoyer les journaux. 

1. Configurez le **récepteur.**

   1. Sélectionnez un **protocole** et spécifiez le **port** sur lequel Envoy écoute le trafic. L'écouteur **HTTP** permet la transition de connexion vers les websockets. Vous pouvez cliquer sur **Ajouter un écouteur** pour ajouter plusieurs écouteurs. Le bouton **Supprimer** supprimera cet écouteur.

   1. (Facultatif) **Activer le pool de connexions** 

      Le regroupement de connexions limite le nombre de connexions que Virtual Gateway Envoy peut établir simultanément. Il est conçu pour empêcher votre instance Envoy d'être submergée par les connexions et vous permet d'ajuster la configuration du trafic en fonction des besoins de vos applications.

      Vous pouvez configurer les paramètres du pool de connexions côté destination pour un écouteur de passerelle virtuelle. App Mesh définit les paramètres du pool de connexions côté client sur infini par défaut, ce qui simplifie la configuration du maillage.
**Note**  
Les protocoles `connectionPool` et `connectionPool` PortMapping doivent être identiques. Si votre protocole d'écoute est `grpc` ou`http2`, spécifiez `maxRequests` uniquement. Si votre protocole d'écoute l'est`http`, vous pouvez spécifier à la fois `maxConnections` et`maxPendingRequests`. 
      + Pour **Nombre maximal de connexions**, spécifiez le nombre maximal de connexions sortantes.
      + Pour **Maximum requests**, spécifiez le nombre maximum de requêtes parallèles pouvant être établies avec Virtual Gateway Envoy.
      + (Facultatif) Pour le nombre **maximal de demandes en attente**, spécifiez le nombre de demandes débordantes après le nombre **maximal de connexions** qu'un Envoy met en file d'attente. La valeur par défaut est `2147483647`.

   1. (Facultatif) Si vous souhaitez configurer un contrôle de santé pour votre écouteur, sélectionnez **Activer le contrôle de santé**.

      Une politique de bilan de santé est facultative, mais si vous spécifiez des valeurs pour une politique de santé, vous devez spécifier des valeurs pour le **seuil** de **santé, l'intervalle entre les contrôles de santé**, le **protocole de contrôle de santé**, le **délai** d'expiration et le **seuil d'anomalie**.
      + Pour le **protocole Health check**, choisissez un protocole. Si vous sélectionnez **grpc**, votre service doit être conforme au protocole [GRPC Health Checking](https://github.com/grpc/grpc/blob/master/doc/health-checking.md) Protocol.
      + Pour **Health check port (Port de vérification de l'état)**, spécifiez le port sur lequel la vérification de l'état doit s'exécuter.
      + Pour **Healthy threshold (Seuil de santé)**, spécifiez le nombre de réussites consécutives de vérification de l'état qui doivent se produire avant de déclarer l'écouteur sain.
      + Pour **Health check interval (Intervalle de vérification de l'état)**, spécifiez la période en millisecondes entre chaque exécution de vérification de l'état.
      + Pour **Path (Chemin)** : spécifiez le chemin de destination pour la demande de vérification de l'état. Cette valeur n'est utilisée que si le **protocole Health check** est `http` ou`http2`. La valeur est ignorée pour les autres protocoles.
      + Pour le **délai d'attente**, spécifiez le délai d'attente en millisecondes lors de la réception d'une réponse au bilan de santé.
      + Pour **Unhealthy threshold (Seuil non sain)**, spécifiez le nombre d'échecs consécutifs de vérification de l'état qui doivent se produire avant de déclarer l'écouteur non sain.

   1. (Facultatif) Si vous souhaitez spécifier si les clients communiquent avec cette passerelle virtuelle via TLS, sélectionnez **Activer la terminaison TLS**.
      + Pour **Mode**, sélectionnez le mode pour lequel vous souhaitez que TLS soit configuré sur l'écouteur.
      + Pour **Méthode de certificat**, sélectionnez l'une des options suivantes. Le certificat doit répondre à des exigences spécifiques. Pour de plus amples informations, veuillez consulter [Exigences du certificat](tls.md#virtual-node-tls-prerequisites).
        + **AWS Certificate Manager hébergement** — Sélectionnez un **certificat** existant.
        + Hébergement **Envoy Secret Discovery Service (SDS)** — Entrez le nom du secret qu'Envoy récupère à l'aide du Secret Discovery Service.
        + **Hébergement de fichiers local** — Spécifiez le chemin d'accès à la **chaîne de certificats** et aux fichiers de **clé privée** sur le système de fichiers sur lequel Envoy est déployé.
      + (Facultatif) Sélectionnez **Exiger un certificat client** et l'une des options ci-dessous pour activer l'authentification TLS mutuelle si le client fournit un certificat. Pour en savoir plus sur le protocole TLS mutuel, consultez la documentation relative à l'[authentification TLS mutuelle](https://docs.aws.amazon.com/app-mesh/latest/userguide/mutual-tls.html) App Mesh.
        + Hébergement **Envoy Secret Discovery Service (SDS)** — Entrez le nom du secret qu'Envoy récupère à l'aide du Secret Discovery Service.
        + **Hébergement de fichiers local** — Spécifiez le chemin d'accès au fichier de **chaîne de certificats** sur le système de fichiers sur lequel Envoy est déployé.
      + (Facultatif) Entrez un **autre nom de sujet**. Pour en ajouter d'autres SANs, sélectionnez **Ajouter un SAN**. SANs doit être au format FQDN ou URI.

1. Choisissez **Créer une passerelle virtuelle** pour terminer.

------
#### [ AWS CLI ]

**Pour créer une passerelle virtuelle à l'aide du AWS CLI.**

Créez une passerelle virtuelle à l'aide de la commande suivante et saisissez le code JSON (remplacez les *red* valeurs par les vôtres) :

1. 

   ```
   aws appmesh create-virtual-gateway \ 
   --mesh-name meshName \ 
   --virtual-gateway-name virtualGatewayName \ 
   --cli-input-json file://create-virtual-gateway.json
   ```

1. Contenu de l'**exemple** create-virtual-gateway .json :

   ```
   {
       "spec": {
         "listeners": [
           {
             "portMapping": {
               "port": 9080,
               "protocol": "http"
             }
           }
         ]
       }
   }
   ```

1. Exemple de sortie :

   ```
   {
       "virtualGateway": {
           "meshName": "meshName",
           "metadata": {
               "arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/meshName/virtualGateway/virtualGatewayName",
               "createdAt": "2022-04-06T10:42:42.015000-05:00",
               "lastUpdatedAt": "2022-04-06T10:42:42.015000-05:00",
               "meshOwner": "123456789012",
               "resourceOwner": "123456789012",
               "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
               "version": 1
           },
           "spec": {
               "listeners": [
                   {
                       "portMapping": {
                           "port": 9080,
                           "protocol": "http"
                       }
                   }
               ]
           },
           "status": {
               "status": "ACTIVE"
           },
           "virtualGatewayName": "virtualGatewayName"
       }
   }
   ```

Pour plus d'informations sur la création d'une passerelle virtuelle avec le AWS CLI for App Mesh, consultez la [create-virtual-gateway](https://docs.aws.amazon.com/cli/latest/reference/appmesh/create-virtual-gateway.html)commande dans la AWS CLI référence.

------

## Déployer une passerelle virtuelle
<a name="deploy-virtual-gateway"></a>

[Déployez un service Amazon ECS ou Kubernetes contenant uniquement le conteneur Envoy.](envoy.md) Vous pouvez également déployer le conteneur Envoy sur une EC2 instance Amazon. Pour plus d'informations, consultez [Getting started with App Mesh and Amazon EC2](https://docs.aws.amazon.com/app-mesh/latest/userguide/getting-started-ec2.html). Pour plus d'informations sur le déploiement sur Amazon ECS, consultez [Getting started with App Mesh et Amazon ECS](https://docs.aws.amazon.com/app-mesh/latest/userguide/getting-started-ecs.html) ou [Getting started with AWS App Mesh and Kubernetes to deploy to Kubernetes](https://docs.aws.amazon.com/app-mesh/latest/userguide/getting-started-kubernetes.html). Vous devez définir la variable d'`APPMESH_RESOURCE_ARN`environnement sur `mesh/mesh-name/virtualGateway/virtual-gateway-name` et vous ne devez pas spécifier la configuration du proxy afin que le trafic du proxy ne soit pas redirigé vers lui-même. Par défaut, App Mesh utilise le nom de la ressource que vous avez spécifiée dans `APPMESH_RESOURCE_ARN` lorsque Envoy fait référence à lui-même dans les métriques et les traces. Vous pouvez remplacer ce comportement en définissant la variable d'environnement `APPMESH_RESOURCE_CLUSTER ` avec votre propre nom.

Nous vous recommandons de déployer plusieurs instances du conteneur et de configurer un Network Load Balancer pour équilibrer la charge du trafic vers les instances. Le nom de découverte des services de l'équilibreur de charge est le nom que vous souhaitez que les services externes utilisent pour accéder aux ressources présentes dans le maillage, par exemple*myapp.example.com*. Pour plus d'informations, consultez [Creating a Network Load Balancer](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-network-load-balancer.html) (Amazon ECS), [Creating an External Load Balancer](https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/) (Kubernetes) [ou Tutoriel : Augmentez la disponibilité](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-increase-availability.html) de votre application sur Amazon. EC2 Vous pouvez également trouver d'autres exemples et des procédures pas à pas dans nos exemples d'[App Mesh](https://docs.aws.amazon.com/app-mesh/latest/userguide/examples.html).

Activez l'autorisation du proxy pour Envoy. Pour de plus amples informations, veuillez consulter [Autorisation Envoy Proxy](proxy-authorization.md).

## Supprimer une passerelle virtuelle
<a name="delete-virtual-gateway"></a>

------
#### [ AWS Management Console ]

**Pour supprimer une passerelle virtuelle à l'aide du AWS Management Console**

1. Ouvrez la console App Mesh à l'adresse [https://console.aws.amazon.com/appmesh/](https://console.aws.amazon.com/appmesh/). 

1. Choisissez le maillage dans lequel vous souhaitez supprimer une passerelle virtuelle. Tous les maillages que vous possédez et qui ont été [partagés](sharing.md) avec vous sont répertoriés.

1. Choisissez **Passerelles virtuelles dans** le menu de navigation de gauche.

1. Choisissez la passerelle virtuelle que vous souhaitez supprimer, puis sélectionnez **Supprimer**. Vous ne pouvez pas supprimer une passerelle virtuelle si elle est associée à des routes de passerelle. Vous devez d'abord supprimer toutes les routes de passerelle associées. Vous ne pouvez supprimer une passerelle virtuelle que lorsque votre compte est répertorié comme **propriétaire de la ressource**.

1. Dans la zone de confirmation, tapez **delete** puis sélectionnez **Supprimer**.

------
#### [ AWS CLI ]

**Pour supprimer une passerelle virtuelle à l'aide du AWS CLI**

1. Utilisez la commande suivante pour supprimer votre passerelle virtuelle (remplacez les *red* valeurs par les vôtres) :

   ```
   aws appmesh delete-virtual-gateway \
        --mesh-name meshName \
        --virtual-gateway-name virtualGatewayName
   ```

1. Exemple de sortie :

   ```
   {
       "virtualGateway": {
           "meshName": "meshName",
           "metadata": {
               "arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/meshName/virtualGateway/virtualGatewayName",
               "createdAt": "2022-04-06T10:42:42.015000-05:00",
               "lastUpdatedAt": "2022-04-07T10:57:22.638000-05:00",
               "meshOwner": "123456789012",
               "resourceOwner": "123456789012",
               "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
               "version": 2
           },
           "spec": {
               "listeners": [
                   {
                       "portMapping": {
                           "port": 9080,
                           "protocol": "http"
                       }
                   }
               ]
           },
           "status": {
               "status": "DELETED"
           },
           "virtualGatewayName": "virtualGatewayName"
       }
   }
   ```

Pour plus d'informations sur la suppression d'une passerelle virtuelle à l'aide du AWS CLI for App Mesh, consultez la [delete-virtual-gateway](https://docs.aws.amazon.com/cli/latest/reference/appmesh/delete-virtual-gateway.html)commande dans la AWS CLI référence.

------