Passerelle - AWS App Mesh

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.

Passerelle

Une passerelle virtuelle permet aux ressources qui se trouvent à l'extérieur de votre maillage de communiquer avec les ressources qui se trouvent à l'intérieur de votre maillage. Une passerelle virtuelle est un proxy Envoy s'exécutant dans un service Amazon ECS, dans un service Kubernetes ou sur une instance Amazon EC2. Contrairement à un nœud virtuelle, qui représente Envoy s'exécutant avec une application, une passerelle virtuelle est 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 à l'ensemble de la configuration App Mesh pour les ressources qui se trouvent à l'intérieur du maillage. La configuration de gestion des demandes entrantes sur la passerelle virtuelle est spécifiée à l'aide de Gateway Routes.

Important

Une passerelle virtuelle dotée d'un écouteur HTTP ou HTTP2 réécrit le nom d'hôte de la demande entrante dans le nom du service virtuel cible de Gateway Route, et le préfixe correspondant de la Gateway Route est réécrit/, par défaut. Par exemple, si vous avez configuré la route Gateway, faites correspondre le préfixe à et/chapter, si la demande entrante l'est/chapter/1, la demande sera réécrite dans/1. Pour configurer les réécritures, reportez-vous à la section Création d'un itinéraire de passerelle à partir de Itinéraires de passerelle.

Lors de la création d'une passerelle virtuelle,proxyConfiguration elle neuser doit pas être configurée.

Pour effectuer une end-to-end procédure pas à pas, consultez la section Configuration de la passerelle entrante.

Création d'une passerelle virtuelle

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 des itinéraires de passerelle à la passerelle virtuelle créée.

AWS Management Console
Pour créer une passerelle virtuelle à l'aide de laAWS Management Console
  1. Ouvrez la console App Mesh à l'adresse https://console.aws.amazon.com/appmesh/.

  2. Choisissez le maillage dans lequel vous voulez créer la passerelle virtuelle. Tous les maillages que vous possédez et qui ont été partagés avec vous sont répertoriés.

  3. Choisissez Passerelles virtuelles dans le menu de navigation de gauche.

  4. Choisissez Créer une passerelle virtuelle.

  5. Pour Nom de passerelle virtuelle, entrez un nom pour votre passerelle virtuelle.

  6. (Facultatif, mais recommandé) Configurez les paramètres par défaut des politiques 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).

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

    3. 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 plus d'informations, veuillez consulter Exigences du certificat.

      • AWS Private Certificate Authorityhé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 locaux : 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é.

    4. (Facultatif) Saisissez un autre nom pour le message. Pour ajouter des réseaux SAN supplémentaires, sélectionnez Ajouter un réseau SAN. Les réseaux SAN doivent être au format FQDN ou URI.

    5. (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 App Mesh Mutual TLS Authentication.

      • 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 locaux : 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 présentation complète du déploiement d'un maillage end-to-end à l'aide d'un exemple d'application utilisant le chiffrement de fichiers locaux, voir Configuration du protocole TLS avec des certificats TLS fournis par des fichiers activés GitHub.

  7. (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 le/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.

  8. 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 des websockets. Vous pouvez cliquer sur Ajouter un écouteur pour ajouter plusieurs écouteurs. Le bouton Supprimer supprimera cet écouteur.

    2. (Facultatif) Activer le pool de connexions

      Une passerelle virtuelle est un regroupement de connexions est limité le nombre de connexions que l'Envoy de passerelle virtuelle peut établir simultanément. Il est conçu pour protéger votre instance Envoy contre le débordement de connexions et vous permet d'ajuster la gestion 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 une valeur infinie par défaut, ce qui simplifie la configuration du maillage.

      Note

      Les protocolesconnectionPool etconnectionPool PortMapping doivent être identiques. Si votre protocole d'écoute estgrpc ouhttp2, spécifiezmaxRequests uniquement. Si votre protocole d'écoute l'esthttp, vous pouvez spécifier à la foismaxConnections etmaxPendingRequests.

      • Pour Nombre maximal de connexions, spécifiez le nombre maximum de connexions sortantes.

      • Pour le champ Nombre maximal de demandes, spécifiez le nombre maximal de demandes parallel pouvant être établies avec l'Envoy de passerelle virtuelle.

      • (Facultatif) Pour le nombre maximal de demandes en attente, spécifiez le nombre de demandes débordantes après le nombre maximal de connexions mises en file d'attente par un Envoy. La valeur par défaut est 2147483647.

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

      Une politique de bilan de Health est facultative, mais si vous spécifiez des valeurs pour une politique de Health, vous devez spécifier des valeurs pour le seuil sain, l'intervalle de contrôle de santé, le protocole de contrôle de santé, le délai d'expiration et le seuil d'insalubrité.

      • Pour Protocole de vérification de l'état, choisissez un protocole. Si vous sélectionnez GRPC, votre service doit être conforme au protocole de vérification de l'Health GRPC.

      • 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 de bilan de Health esthttp ouhttp2. La valeur est ignorée pour les autres protocoles.

      • Pour Délai d'attente, spécifiez le temps d'attente avant de recevoir une réponse de la vérification de l'état en millisecondes.

      • 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.

    4. (Facultatif) Si vous souhaitez spécifier si les clients communiquent avec cette passerelle virtuelle via TLS, sélectionnez Activer la terminaison TLS.

      • Dans Mode, sélectionnez le mode pour lequel vous souhaitez configurer le protocole TLS 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 plus d'informations, veuillez consulter Exigences du certificat.

        • AWS Certificate Managerhé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 locaux : 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 App Mesh Mutual TLS Authentication.

        • 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 locaux : 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) Saisissez un autre nom pour le message. Pour ajouter des réseaux SAN supplémentaires, sélectionnez Ajouter un réseau SAN. Les réseaux SAN doivent être au format FQDN ou URI.

  9. Choisissez Créer une passerelle virtuelle pour terminer.

AWS CLI

Pour créer une passerelle virtuelle à l'aide duAWS CLI.

Créez une passerelle virtuelle à l'aide de la commande suivante et saisissez JSON (remplacez les valeurs rouges 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
  2. Contenu de l'exemple create-virtual-gateway .json :

    { "spec": { "listeners": [ { "portMapping": { "port": 9080, "protocol": "http" } } ] } }
  3. 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 à l'aide duAWS CLI for App Mesh, consultez la create-virtual-gatewaycommande dans laAWS CLI référence.

Déploiement une passerelle virtuelle

Déployez un service Amazon ECS ou Kubernetes contenant uniquement le conteneur Envoy. Vous pouvez également déployer le conteneur Envoy sur une instance Amazon EC2. Pour de plus amples informations, veuillez consulter Mise en route avec App Mesh et Amazon EC2. Pour plus d'informations sur la façon de déployer sur Amazon ECS, consultez la section Mise en route avec App Mesh et Amazon ECS ou Prise en main d'AWSApp Mesh et Kubernetes pour le déploiement sur Kubernetes. Vous devez définir la variable d'APPMESH_RESOURCE_ARNenvironnement surmesh/mesh-name/virtualGateway/virtual-gateway-name et vous ne devez pas spécifier de 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 de services de l'équilibreur de charge est le nom que vous souhaitez que les services externes utilisent pour accéder aux ressources du maillage, telles que myapp.example.com. Pour plus d'informations, consultez Création d'un Network Load Balancer (Amazon ECS), Création d'un Load Balancer externe (Kubernetes) ou Tutoriel : Augmenter la disponibilité de votre application sur Amazon EC2. Vous pouvez également trouver d'autres exemples et procédures pas à pas dans nos exemples d'App Mesh.

Activez l'autorisation par proxy pour Envoy. Pour plus d'informations, veuillez consulter Autormation du proxy Envoy.

Supprimer une passerelle virtuelle

AWS Management Console
Pour supprimer une passerelle virtuelle à l'aide de laAWS Management Console
  1. Ouvrez la console App Mesh à l'adresse https://console.aws.amazon.com/appmesh/.

  2. Choisissez le maillage dont vous souhaitez supprimer une passerelle virtuelle. Tous les maillages que vous possédez et qui ont été partagés avec vous sont répertoriés.

  3. Choisissez Passerelles virtuelles dans le menu de navigation de gauche.

  4. Choisissez la passerelle virtuelle que vous souhaitez supprimer et sélectionnez Supprimer. Vous ne pouvez pas supprimer une passerelle virtuelle si des routes de passerelle lui sont associées. Vous devez d'abord supprimer toutes les routes de passerelle associées. Vous pouvez uniquement supprimer une passerelle virtuelle lorsque votre compte est répertorié en tant que propriétaire de la ressource.

  5. Dans la zone de confirmation, tapezdelete puis sélectionnez Supprimer.

AWS CLI
Pour supprimer une passerelle virtuelle à l'aide de laAWS CLI
  1. Utilisez la commande suivante pour supprimer votre passerelle virtuelle (remplacez les valeurs rouges par les vôtres) :

    aws appmesh delete-virtual-gateway \ --mesh-name meshName \ --virtual-gateway-name virtualGatewayName
  2. 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 duAWS CLI for App Mesh, consultez la delete-virtual-gatewaycommande dans laAWS CLI référence.