Allgemeines

F: Was ist AWS App Mesh?

A: AWS App Mesh macht es einfach, die Kommunikation zwischen Services zu überwachen, zu steuern und zu debuggen. App Mesh verwendet Envoy, einen Open-Source-Service-Mesh-Proxy, der zusammen mit Ihren Microservice-Containern eingesetzt wird. App Mesh ist in die AWS-Services für Überwachung und Nachverfolgung integriert und funktioniert mit vielen gängigen Tools von Drittanbietern. App Mesh kann mit Microservice-Containern verwendet werden, die von Amazon ECS, Amazon EKS, AWS Fargate, Kubernetes auf AWS und Services auf Amazon EC2 verwaltet werden.

F: Warum sollte ich App Mesh verwenden?

A: App Mesh erleichtert die Sichtbarkeit, Sicherheit und Kontrolle über die Kommunikation zwischen Ihren Services, ohne neuen Code zu schreiben oder zusätzliche AWS-Infrastrukturen auszuführen. Mit App Mesh können Sie die Kommunikation zwischen Services standardisieren, Regeln für die Kommunikation zwischen Services implementieren und Metriken, Protokolle und Ablaufverfolgungen direkt in AWS-Services und Tools von Drittanbietern Ihrer Wahl erfassen.

F: Wie funktioniert App Mesh?

A: App Mesh richtet ein Servicenetz für Ihre Services ein und verwaltet es. Dazu führen Sie den Open-Source-Envoy-Proxy neben jedem Service aus und App Mesh konfiguriert den Proxy so, dass er die gesamte Kommunikation in und aus jedem Container abwickelt. App Mesh sammelt Metriken wie Fehlerraten und Verbindungen pro Sekunde, die mit Hilfe eines Statistiksammlers nach Amazon CloudWatch exportiert werden können. Mithilfe von App Mesh-APIs können Sie den Datenverkehr basierend auf Pfad oder Gewichtung an bestimmte Serviceversionen weiterleiten.

F: Was ist ein Servicenetz?

A: Ein Servicenetz ist eine neue Softwareschicht, die die gesamte Kommunikation zwischen Services übernimmt. Es bietet neue Funktionen für den Aufbau und die Verwaltung von Verbindungen zwischen Services und ist unabhängig vom Code jedes Services, sodass es über Netzwerkgrenzen hinweg und mit mehreren Servicemanagementsystemen arbeiten kann.

Integrationen

F: Wie funktioniert App Mesh mit Amazon Elastic Container Services (ECS) und AWS Fargate?

A: App Mesh bietet neue Kommunikations-, Überwachungs- und Managementfunktionen für Anwendungen, die von Amazon ECS und AWS Fargate verwaltet werden. Sie fügen das Envoy-Proxy-Image einfach der Aufgabendefinition hinzu. App Mesh verwaltet die Envoy-Konfiguration, um Service-Mesh-Funktionen bereitzustellen. App Mesh exportiert Metriken und Protokolle und Verfolgungen zu den Endpunkten, die in der bereitgestellten Envoy Bootstrap-Konfiguration angegeben wurde. App Mesh stellt Ihnen eine API zum Konfigurieren von Datenverkehrsrouten und weiteren Steuerelementen zwischen Mesh-fähigen Microservices bereit.

F: Wie funktioniert App Mesh mit Amazon Elastic Container Service for Kubernetes (EKS)?

A: Verwenden Sie den AWS App Mesh-Controller (Open Source) und den mutierenden Webhook-Zugangscontroller. Diese Controller verbinden Ihre Kubernetes-Services mit App Mesh und stellen sicher, dass der Envoy-Proxy in Ihre Pods eingespeist wird. App Mesh exportiert Metriken und Protokolle und Verfolgungen zu den Endpunkten, die in der bereitgestellten Envoy Bootstrap-Konfiguration angegeben wurde. App Mesh stellt Ihnen eine API zum Konfigurieren von Datenverkehrsrouten und weiteren Steuerelementen zwischen mesh-fähigen Microservices bereit.

F: Wie funktioniert App Mesh mit Services, die auf Amazon EC2 ausgeführt werden?

A: Führen Sie den Envoy-Proxy als Container oder Prozess auf Ihrer EC2-Instance aus. Verwenden Sie den von AWS bereitgestellten Container-Proxy-Init-Container oder führen Sie Ihr eigenes Skript aus, um den Netzwerkverkehr auf der Instance über den Proxy umzuleiten. App Mesh verwaltet die Envoy-Konfiguration, um Service-Mesh-Funktionen bereitzustellen. App Mesh exportiert Metriken und Protokolle und Verfolgungen zu den Endpunkten, die in der bereitgestellten Envoy Bootstrap-Konfiguration angegeben wurde. App Mesh stellt Ihnen eine API zum Konfigurieren von Datenverkehrsrouten und weiteren Steuerelementen zwischen Mesh-fähigen Microservices bereit.

F: Warum sollte ich App Mesh anstatt AWS Elastic Load Balancers verwenden?

A: Wir empfehlen die Verwendung von AWS Elastic Load Balancing, um den gesamten Internetverkehr und den Datenverkehr von Clients zu bewältigen, die nicht innerhalb Ihrer Vertrauensgrenze liegen. Für interne Services, die sich mit anderen Services innerhalb einer AWS-Region verbinden, bietet App Mesh Flexibilität, Konsistenz und ein höheres Maß an Kontrolle und Überwachung für die Servicekommunikation.

Überwachung, Protokollierung und Nachverfolgung

F: Welche Art von Überwachungsfunktionen bietet App Mesh?

A: Mit App Mesh erhalten Sie konsistente Metriken und Protokolle für jeden Wechsel zwischen den Services. Diese Protokolle und Metriken enthalten Metadaten wie Servicenamen und Anfrageidentifikatoren. Mit diesen können Sie grafische Dashboards der Service-to-Service-Kommunikation mit Tools wie Amazon CloudWatch aggregieren, filtern und anzeigen. Gängige Dashboards können Fehlerraten und Fehlercodes zwischen Ihrem Service und abhängigen Services enthalten. App Mesh sammelt automatisch Nachverfolgungen für jeden Service und macht es einfach, eine Servicezuordnung mit Details aller Service-API-Aufrufe zu visualisieren. Diese Funktionen erleichtern das Debuggen und Identifizieren der Grundursache von Kommunikationsproblemen zwischen Ihren Microservices.

F: Kann ich AWS-fremde Tools für die Überwachung, Protokollierung und Nachverfolgung in App Mesh verwenden? Ja.

A: Ja. App Mesh unterstützt jedes Drittanbieter-Tool, das mit Envoy funktioniert. Dazu gehören Splunk, Prometheus, Jaeger, Flagger und Grafana sowie Open-Tracing-Lösungen wie Zipkin und LightStep.

Datenverkehrskontrolle

F: Welche Arten von Datenverkehrskontrolle bietet App Mesh?

A: App Mesh bietet Ihnen eine Reihe von Client-seitigen Steuerelementen für die Datenverkehrleitung. App Mesh stellt APIs zur Verfügung, um den Datenverkehr zwischen Anwendungen basierend auf Servicenamen und Versionen weiterzuleiten. Diese Funktionen erleichtern die Bereitstellung neuer Versionen Ihrer Microservices.

Service-zu-Service-Authentifizierung

F: Wie unterstützt App Mesh die Anwendungsidentität?

Gegenseitiges TLS (mTLS) ermöglicht es, die Anwendungsidentität auf Transportebene zu erzwingen und Clientverbindungen basierend auf dem bereitgestellten Zertifikat zuzulassen oder zu verweigern. AWS App Mesh unterstützt die Durchsetzung der Clientanwendungsidentität mit X.509-Zertifikaten. Dies wird als mTLS (Mutual Transport Layer Security) bezeichnet. Um mTLS zu konfigurieren, müssen Sie den Client so einrichten, dass er dem Serverdienst während der Initiierung der Anforderung im Rahmen der TLS-Sitzungsaushandlung ein Zertifikat bereitstellt. Dieses Zertifikat wird vom Server verwendet, um den Client zu identifizieren und zu authentifizieren, um zu überprüfen, ob das Zertifikat gültig ist und von einer vertrauenswürdigen Zertifizierungsstelle ausgestellt wurde, und um mithilfe des alternativen Antragstellernamens (Subject Alternative Name, SAN) auf dem Zertifikat festzustellen, wer der Client ist.

F: Warum sollte ich mTLS mit AWS App Mesh verwenden?

Microservices haben auch besondere Sicherheitsanforderungen, z. B. End-to-End-Datenverkehrsverschlüsselung und flexible Servicezugriffskontrolle, die mit einem Service-Mesh adressiert werden können. Mit der mTLS-Implementierung von AWS App Mesh können Ihre Clientanwendungen die Server überprüfen und Datenverkehrsverschlüsselung bereitstellen. Das gegenseitige TLS ermöglicht eine Peer-Authentifizierung, die für die Service-zu-Service-Authentifizierung verwendet wird. Es wird eine Sicherheitsebene über TLS hinzugefügt, mit der Ihre Services den Client überprüfen können, der die Verbindung herstellt. Die Aufteilung einer monolithischen Anwendung in Microservices und deren Ausführung in einem Service-Mesh bietet verschiedene Vorteile, darunter eine bessere Sichtbarkeit und intelligente Datenverkehrsweiterleitung.