Qu'est-ce qu'AWS App Mesh ? - 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.

Qu'est-ce qu'AWS App Mesh ?

AWS App Meshest un maillage de service qui permet de surveiller et de contrôler facilement les services. Un maillage de services est une couche d'infrastructure dédiée à service-to-service la gestion des communications, généralement via un ensemble de proxys réseau légers déployés parallèlement au code de l'application. App Mesh normalise la façon dont vos services communiquent, vous end-to-end donnant et contribuant à garantir la haute disponibilité de vos applications. App Mesh vous fournit une visibilité constante ainsi que des contrôles de trafic réseau pour chaque service dans une application.

Ajouter App Mesh à un exemple d'application

Prenons l'exemple d'application simple suivant qui n'utilise pas App Mesh. Les deux services peuvent être exécutés surAWS Fargate Amazon Elastic Container Service (Amazon ECS), Amazon Elastic Kubernetes Service (Amazon EKS), Kubernetes sur des instances Amazon Elastic Compute Cloud (Amazon EC2) ou sur des instances Amazon EC2 avec Docker.

Dans cette illustration, les deuxserviceA etserviceB sont détectables via l'espace deapps.local noms. Supposons, par exemple, que vous décidiez de déployer une nouvelle version deserviceb.apps.local namedservicebv2.apps.local. Ensuite, vous souhaitez diriger un pourcentage du trafic deservicea.apps.local versserviceb.apps.local et un pourcentage versservicebv2.apps.local. Lorsque vous êtes sûrservicebv2 que cela fonctionne bien, vous souhaitez y envoyer 100 % du trafic.

App Mesh peut vous aider à le faire sans modifier le code de l'application ou les noms de service enregistrés. Si vous utilisez App Mesh avec cet exemple d'application, votre maillage peut ressembler à l'illustration suivante.

Dans cette configuration, les services ne communiquent plus directement entre eux. Au lieu de cela, ils communiquent entre eux via un proxy. Le proxy déployé avec leservicea.apps.local service lit la configuration App Mesh et envoie le trafic versserviceb.apps.local ouservicebv2.apps.local en fonction de la configuration.

Composants de l'App Mesh

App Mesh est constitué des composants suivants, illustrés dans l'exemple précédent :

  • Service Mesh : un maillage de service est une limite logique pour le trafic réseau entre les services qui résident dans celui-ci. Dans cet exemple, le maillage est nomméapps et contient toutes les autres ressources du maillage. Pour plus d'informations, veuillez consulter Mailles de service.

  • Services virtuels : un service virtuel est une abstraction d'un service réel qui est fournie directement ou indirectement par un nœud virtuel, via un routeur virtuel. Dans l'illustration, deux services virtuels représentent les deux services réels. Les noms des services virtuels sont les noms détectables des services réels. Lorsqu'un service virtuel et un service réel portent le même nom, plusieurs services peuvent communiquer entre eux en utilisant les mêmes noms que ceux qu'ils utilisaient avant la mise en œuvre d'App Mesh. Pour plus d'informations, veuillez consulter Services virtuels.

  • Nœuds virtuels : un nœud virtuel agit comme pointeur logique vers un service détectable, comme Amazon ECS ou Kubernetes. Pour chaque service virtuel, vous aurez au moins un nœud virtuel. Dans l'illustration, le serviceservicea.apps.local virtuel obtient des informations de configuration pour le nœud virtuel nomméserviceA. Le nœudserviceA virtuel est configuré avec leservicea.apps.local nom pour la découverte de services. Le serviceserviceb.apps.local virtuel est configuré pour acheminer le trafic vers les nœudsserviceBv2 virtuelsserviceB et via un routeur virtuel nomméserviceB. Pour plus d'informations, veuillez consulter Nœuds virtuels.

  • Routeurs et itinéraires virtuels : les routeurs virtuels gèrent le trafic pour un ou plusieurs services virtuels au sein de votre mesh. Un itinéraire est associé à un routeur virtuel. La route est utilisée pour faire correspondre les demandes destinées au routeur virtuel et pour distribuer le trafic à ses nœuds virtuels associés. Dans l'illustration précédente, le routeurserviceB virtuel possède une route qui dirige un pourcentage du trafic vers le nœudserviceB virtuel et un pourcentage du trafic vers le nœudserviceBv2 virtuel. Vous pouvez définir le pourcentage de trafic acheminé vers un nœud virtuel particulier et le modifier au fil du temps. Vous pouvez acheminer le trafic en fonction de critères tels que les en-têtes HTTP, les chemins d'URL ou les noms de services et de méthodes gRPC. Vous pouvez configurer des politiques de nouvelle tentative pour réessayer de vous connecter en cas d'erreur dans la réponse. Par exemple, dans l'illustration, la politique de nouvelle tentative pour l'itinéraire peut spécifier qu'une connexion àserviceb.apps.local est réessayée cinq fois, avec un intervalle de dix secondes entre les tentatives, si elleserviceb.apps.local renvoie des types d'erreurs spécifiques. Pour plus d'informations, consultez Routeurs virtuels et Acheminements.

  • Proxy : vous configurez vos services pour utiliser le proxy après avoir créé votre maillage et ses ressources. Le proxy lit la configuration App Mesh et dirige le trafic de manière appropriée. Dans l'illustration, toutes les communications entreservicea.apps.local etserviceb.apps.local passent par le proxy déployé avec chaque service. Les services communiquent entre eux en utilisant les mêmes noms de découverte de services que ceux qu'ils utilisaient avant le lancement d'App Mesh. Comme le proxy lit la configuration App Mesh, vous pouvez contrôler la façon dont les deux services communiquent entre eux. Lorsque vous souhaitez modifier la configuration de l'App Mesh, vous n'avez pas besoin de modifier ou de redéployer les services eux-mêmes ou les proxys. Pour plus d'informations, veuillez consulter Image de l'envoyé.

Comment démarrer

Pour utiliser App MeshAWS Fargate, vous devez disposer d'un service existant exécuté sur Amazon ECS, Amazon EKS, Kubernetes sur Amazon EC2 ou Amazon EC2 avec Docker.

Pour commencer à utiliser App Mesh, consultez l'un des guides suivants :

Accès à App Mesh

Vous pouvez utiliser les App Mesh comme suit :

AWS Management Console

La console est une interface basée sur un navigateur que vous pouvez utiliser pour gérer les ressources App Mesh. Vous pouvez ouvrir la console App Mesh à l'adresse https://console.aws.amazon.com/appmesh/.

AWS CLI

Fournit des commandes pour une large gamme de produits AWS et est prise en charge par Windows, Mac et Linux/UNIX. Consultez AWS Command Line Interface Guide de l'utilisateur pour démarrer. Pour de plus amples informations sur les commandes pour App Mesh, voir appMesh dans la Référence de l'AWS CLIApp Mesh.

AWS Tools for Windows PowerShell

Fournit des commandes pour une large gamme deAWS produits à ceux qui écrivent des scripts dans l' PowerShell environnement. Consultez le AWS Tools for Windows PowerShell Guide de l'utilisateur pour démarrer. Pour plus d'informations sur les applets de commande pour App Mesh, consultez App Mesh dans le manuel de référenceAWS des outils pour les PowerShell cmdlets.

AWS CloudFormation

Vous permet de créer un modèle qui décrit toutes lesAWS ressources que vous souhaitez utiliser. À l'aide du modèle,AWS CloudFormation provisionnez et configurez les ressources pour vous. Consultez le Guide de l'utilisateur AWS CloudFormation pour démarrer. Pour plus d'informations sur les types de ressources App Mesh, consultez la section Référence des types de ressources App Mesh dans la référence desAWS CloudFormation modèles.

Kits de développement logiciel (SDK) AWS

Nous fournissons également des kits SDK qui vous permettent d'accéder à App Mesh à partir de différents langages de programmation. Les SDK prennent automatiquement en charge des tâches telles que :

  • Signature cryptographique des requêtes de service

  • Nouvelles tentatives de requête

  • Gestion des réponses d'erreur

Pour plus d'informations sur les kits SDK disponibles, consultez Outils pour Amazon Web Services.

Pour de plus amples informations sur les API Mesh API Mesh, veuillez consulter la RéférenceAWS App Mesh d'API Mesh.