Questions d'ordre général

Q : Qu'est-ce qu'AWS App Mesh ?

R : AWS App Mesh facilite la surveillance, le contrôle et le débogage des communications entre les services. App Mesh utilise Envoy, un proxy de maillage des services open source déployé en parallèle des conteneurs de microservices. App Mesh est intégré aux services AWS de surveillance et de traçabilité et fonctionne avec de nombreux outils tiers populaires. Il est possible d'utiliser App Mesh avec les conteneurs de microservices gérés par Amazon ECS, Amazon EKS, AWS Fargate, Kubernetes fonctionnant sur AWS et sur les services exécutés sur Amazon EC2.

Q : Pourquoi utiliser App Mesh ?

R : Grâce à App Mesh, vous bénéficiez d'une meilleure visibilité, d’une meilleure sécurité et d'un meilleur contrôle sur les communications entre vos services sans avoir à écrire un nouveau code ou à exécuter des infrastructures AWS supplémentaires. En utilisant App Mesh, vous pouvez standardiser la manière dont vos services communiquent, mettre en place des règles de communication entre les services et capturer des métriques, des journaux et des traces directement dans les services AWS et les outils tiers de votre choix.

Q : Comment fonctionne App Mesh ?

R : App Mesh configure et gère un maillage de services pour vos services. Pour ce faire, vous exécutez le proxy Envoy open source en parallèle de chaque service et App Mesh configure le proxy pour gérer l'ensemble des communications à l'intérieur et à l'extérieur de chaque conteneur. App Mesh collecte des métriques telles que les taux d'erreurs et les connexions par seconde, qui peuvent ensuite être exportées vers Amazon CloudWatch à l'aide d'un collecteur StatsD. Grâce aux API App Mesh, vous pouvez acheminer le trafic selon le parcours ou les poids vers les versions spécifiques du service.

Q : En quoi consiste un maillage de services ?

R : Un maillage de services est une nouvelle couche de logiciels qui gère l'ensemble des communications entre les services. Il fournit de nouvelles fonctionnalités pour connecter et gérer les connexions entre les services et est indépendant du code de chaque service. Ainsi, il peut fonctionner à travers les limites des réseaux et avec plusieurs systèmes de gestion des services.

Intégrations

Q : Comment App Mesh fonctionne-t-il avec Amazon Elastic Container Services (ECS) et AWS Fargate ?

R : App Mesh fournit de nouvelles fonctionnalités de communication, d'observation et de gestion aux applications gérées par Amazon ECS et AWS Fargate. Vous ajoutez l'image de proxy Envoy à la définition de tâche. App Mesh gère la configuration Envoy pour fournir les fonctionnalités de maillage de services. App Mesh exporte les métriques, les journaux et les traces vers les points de terminaison spécifiés dans la configuration bootstrap Envoy fournie. App Mesh fournit une API pour configurer les routes de trafic et d'autres contrôles entre les microservices pour lesquels le maillage est activé.

Q : Comment App Mesh fonctionne-t-il avec Amazon Elastic Container Service for Kubernetes ?

R : Utilisez le contrôleur AWS App Mesh open source et le contrôleur d'admission webhook en mutation. Ces contrôleurs connectent vos services Kubernetes à App Mesh et assurent que le proxy Envoy est ajouté à vos modules. App Mesh exporte les métriques, les journaux et les traces vers les points de terminaison spécifiés dans la configuration bootstrap Envoy fournie. App Mesh fournit une API pour configurer les routes de trafic et d'autres contrôles entre les microservices pour lesquels le maillage est activé.

Q : Comment App Mesh fonctionne-t-il avec les services s'exécutant sur Amazon EC2 ?

R : Exécutez le proxy Envoy en tant que conteneur ou processus sur votre instance EC2. Utilisez le conteneur de démarrage de proxy fourni par AWS ou exécutez votre propre script pour rediriger le trafic réseau sur l'instance via le proxy. App Mesh gère la configuration Envoy pour fournir les fonctionnalités de maillage de services. App Mesh exporte les métriques, les journaux et les traces vers les points de terminaison spécifiés dans la configuration bootstrap Envoy fournie. App Mesh fournit une API pour configurer les routes de trafic et d'autres contrôles entre les microservices pour lesquels le maillage est activé.

Q : Pourquoi utiliser App Mesh au lieu de programmes AWS Elastic Load Balancer ?

R : Nous vous recommandons d'utiliser AWS Elastic Load Balancing pour gérer l'ensemble du trafic Internet et du trafic des clients ne faisant pas partie de vos limites de confiance. Pour les services internes qui se connectent à d'autres services au sein d'une région AWS, App Mesh apporte flexibilité, cohérence et un niveau de contrôle et de surveillance plus important des communications de services.

Surveillance, journalisation et traçage

Q : Quel type de fonctionnalités de surveillance App Mesh fournit-il ?

R : Avec App Mesh, vous bénéficiez de métriques et de journaux cohérents pour chaque saut entre services. Ces journaux et métriques comprennent des métadonnées telles que les noms de service et les identifiants de requête. Grâce à ces métadonnées, vous pouvez rassembler, filtrer et consulter des tableaux de bord graphiques de communications service à service en utilisant des outils comme Amazon CloudWatch. Les tableaux de bord courants peuvent inclure des taux d'erreur et des codes d'erreur entre votre service et des services dépendants. App Mesh collecte automatiquement des traces de chaque service et permet de visualiser facilement une carte des services contenant des informations sur l'ensemble des appels d'API de service. Ces fonctionnalités facilitent le débogage et l'identification des causes racines des problèmes de communication entre vos microservices.

Q : Puis-je utiliser des outils non-AWS pour surveiller, journaliser ou tracer avec App Mesh ? Oui.

R : Oui. App Mesh prend en charge tous les outils tiers compatibles avec Envoy. Ces outils incluent Splunk, Prometheus Jaeger, Flagger et Grafana, ainsi que les solutions de traçage ouvert comme Zipkin et LightStep.

Contrôle du trafic

Q : Quel type de contrôles du trafic App Mesh fournit-il ?

R : App Mesh vous fournit un ensemble de contrôles côté client en ce qui concerne le routage du trafic. App Mesh fournit des API pour acheminer le trafic entre vos applications en fonction des noms et des versions du service. Ces fonctionnalités facilitent le déploiement des nouvelles versions de vos microservices.

Authentification de service à service

Q : Comment App Mesh prend en charge l’identité d’application ?

L’authentification mutuelle TLS (mTLS) fournit un moyen de mettre en place l’identité d’application à la couche de transport et d’autoriser ou refuser les connexions clients en fonction du certificat présenté. AWS App Mesh prend en charge la mise en place de l’identité d’application client avec les certificats X.509, soit l’authentification mutuelle TLS ou mTLS. Pour configurer mTLS, vous devez préparer le client pour fournir un certificat au service de serveur lors du lancement de la demande faisant partie de la négociation de la session TLS. Ce certificat est utilisé par le serveur pour identifier et authentifier le client, qui vérifie que le certificat est valide et a été émis par une autorité de certification de confiance et identifie le client à l’aide du SAN présent sur le certificat.

Q : Pourquoi utiliser mTLS avec AWS App Mesh ?

Les microservices ont aussi des besoins de sécurité particuliers, tels que le chiffrement du trafic de bout en bout et le contrôle des accès aux services flexible, auxquels il est possible de répondre avec un maillage de service. Cette implémentation de mTLS AWS App Mesh permet à vos applications clients de vérifier vos serveurs et fournit un chiffrement du trafic. L’authentification mutuelle TLS offre une authentification des pairs utilisée pour l’authentification de service à service. Cela ajoute une couche de sécurité sur TLS qui permet à vos services de vérifier le client effectuant la connexion. Segmenter une application monolithique en microservices et les exécuter dans un maillage de services offre divers avantages tels qu’une meilleure visibilité et un routage du trafic intelligent.