Virtuelle Gateways - AWS App Mesh

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Virtuelle Gateways

Wichtig

Hinweis zum Ende des Supports: Am 30. September 2026 AWS wird der Support für eingestellt. AWS App Mesh Nach dem 30. September 2026 können Sie nicht mehr auf die AWS App Mesh Konsole oder die Ressourcen zugreifen. AWS App Mesh Weitere Informationen finden Sie in diesem Blogbeitrag Migration von AWS App Mesh zu Amazon ECS Service Connect.

Ein virtuelles Gateway ermöglicht es Ressourcen, die sich außerhalb Ihres Meshs befinden, mit Ressourcen innerhalb Ihres Meshs zu kommunizieren. Das virtuelle Gateway stellt einen Envoy-Proxy dar, der in einem ECS Amazon-Service, in einem Kubernetes-Service oder auf einer Amazon-Instance ausgeführt wird. EC2 Im Gegensatz zu einem virtuellen Knoten, bei dem Envoy mit einer Anwendung ausgeführt wird, steht ein virtuelles Gateway für Envoy, das von ihm selbst bereitgestellt wird.

Externe Ressourcen müssen in der Lage sein, einen DNS Namen in eine IP-Adresse aufzulösen, die dem Dienst oder der Instanz zugewiesen ist, auf der Envoy ausgeführt wird. Envoy kann dann auf die gesamte App Mesh Mesh-Konfiguration für Ressourcen zugreifen, die sich innerhalb des Meshs befinden. Die Konfiguration für die Bearbeitung der eingehenden Anfragen am Virtual Gateway wird mithilfe von Gateway-Routen festgelegt.

Wichtig

Ein virtuelles Gateway mit einem HTTP HTTP2 Oder-Listener schreibt den Hostnamen der eingehenden Anfrage in den Namen des virtuellen Zieldienstes der Gateway-Route um, und das entsprechende Präfix aus der Gateway-Route wird standardmäßig neu geschrieben. / Wenn Sie beispielsweise das Gateway-Route-Match-Präfix auf konfiguriert haben/chapter, und wenn die eingehende Anfrage dies ist/chapter/1, würde die Anfrage umgeschrieben werden. /1 Informationen zur Konfiguration von Umschreibungen finden Sie im Abschnitt Gateway-Routen erstellen.

Wenn ein virtuelles Gateway erstellt wird proxyConfiguration und nicht konfiguriert werden user sollte.

Eine vollständige end-to-end Anleitung finden Sie unter Konfiguration des Inbound-Gateways.

Ein virtuelles Gateway erstellen

Anmerkung

Beim Erstellen eines virtuellen Gateways müssen Sie einen Namespace-Selektor mit einer Bezeichnung hinzufügen, um die Liste der Namespaces zu identifizieren, denen Gateway-Routen dem erstellten virtuellen Gateway zugeordnet werden sollen.

AWS Management Console
Um ein virtuelles Gateway mit dem zu erstellen AWS Management Console
  1. Öffnen Sie die App Mesh Mesh-Konsole unter https://console.aws.amazon.com/appmesh/.

  2. Wählen Sie das Mesh aus, in dem Sie das virtuelle Gateway erstellen möchten. Alle Meshes, die Sie besitzen und die mit Ihnen geteilt wurden, werden aufgelistet.

  3. Wählen Sie in der linken Navigationsleiste Virtuelle Gateways aus.

  4. Wählen Sie Virtuelles Gateway erstellen.

  5. Geben Sie unter Name des virtuellen Gateways einen Namen für Ihr virtuelles Gateway ein.

  6. (Optional, aber empfohlen) Konfigurieren Sie die Standardeinstellungen für Client-Richtlinien.

    1. (Optional) Wählen Sie Erzwingen aus, TLS wenn das Gateway nur über Transport Layer Security (TLS) mit virtuellen Diensten kommunizieren soll.

    2. (Optional) Geben Sie für Ports einen oder mehrere Ports an, auf denen Sie die TLS Kommunikation mit virtuellen Diensten erzwingen möchten.

    3. Wählen Sie als Validierungsmethode eine der folgenden Optionen aus. Das von Ihnen angegebene Zertifikat muss bereits vorhanden sein und bestimmte Anforderungen erfüllen. Weitere Informationen finden Sie unter Zertifikatanforderungen.

      • AWS Private Certificate AuthorityHosting — Wählen Sie ein oder mehrere vorhandene Zertifikate aus.

      • Hosting durch den Envoy Secret Discovery Service (SDS) — Geben Sie den Namen des Geheimnisses ein, das Envoy mit dem Secret Discovery Service abruft.

      • Lokales Datei-Hosting — Geben Sie den Pfad zur Zertifikatskettendatei auf dem Dateisystem an, auf dem Envoy bereitgestellt wird.

    4. (Optional) Geben Sie einen alternativen Namen für den Betreff ein. Um weitere hinzuzufügenSANs, wählen Sie Hinzufügen ausSAN. SANsmuss FQDN oder URI formatiert sein.

    5. (Optional) Wählen Sie Clientzertifikat bereitstellen und eine der folgenden Optionen aus, um ein Client-Zertifikat bereitzustellen, wenn ein Server es anfordert, und um die gegenseitige TLS Authentifizierung zu aktivieren. Weitere Informationen zu Mutual TLS finden Sie in den Dokumenten zur App Mesh Mutual TLS Authentication.

      • Hosting des Envoy Secret Discovery Service (SDS) — Geben Sie den Namen des Geheimnisses ein, das Envoy mithilfe des Secret Discovery Service abruft.

      • Lokales Datei-Hosting — Geben Sie den Pfad zur Zertifikatskettendatei sowie den privaten Schlüssel auf dem Dateisystem an, auf dem Envoy bereitgestellt wird. Eine vollständige Anleitung zur Bereitstellung eines Meshs mit einer Beispielanwendung, end-to-end die Verschlüsselung mit lokalen Dateien verwendet, finden Sie unter Konfiguration TLS mit von der Datei bereitgestellten TLS Zertifikaten. GitHub

  7. (Optional) Um die Protokollierung zu konfigurieren, wählen Sie Logging aus. Geben Sie den Pfad für die HTTP Zugriffsprotokolle ein, den Envoy verwenden soll. Wir empfehlen den /dev/stdout Pfad, damit Sie Docker-Protokolltreiber verwenden können, um Ihre Envoy-Protokolle in einen Service wie Amazon CloudWatch Logs zu exportieren.

    Anmerkung

    Die Protokolle müssen noch von einem Agenten in Ihrer Anwendung übernommen und an ein Ziel gesendet werden. Dieser Dateipfad teilt Envoy nur mit, wohin die Protokolle gesendet werden sollen.

  8. Konfigurieren Sie den Listener.

    1. Wählen Sie ein Protokoll aus und geben Sie den Port an, auf dem Envoy den Datenverkehr überwacht. Der HTTP-Listener ermöglicht den Verbindungsübergang zu Websockets. Sie können auf Listener hinzufügen klicken, um mehrere Listener hinzuzufügen. Mit der Schaltfläche Entfernen wird dieser Listener entfernt.

    2. (Optional) Aktivieren Sie den Verbindungspool

      Das Verbindungspooling begrenzt die Anzahl der Verbindungen, die der Virtual Gateway Envoy gleichzeitig herstellen kann. Es soll Ihre Envoy-Instanz vor einer Überlastung durch Verbindungen schützen und ermöglicht es Ihnen, das Traffic-Shaping an die Bedürfnisse Ihrer Anwendungen anzupassen.

      Sie können zielseitige Verbindungspool-Einstellungen für einen virtuellen Gateway-Listener konfigurieren. App Mesh setzt die clientseitigen Verbindungspool-Einstellungen standardmäßig auf unendlich, was die Mesh-Konfiguration vereinfacht.

      Anmerkung

      Die connectionPool portMapping Protokolle connectionPool und müssen identisch sein. Wenn Ihr Listener-Protokoll grpc oder isthttp2, geben Sie maxRequests nur an. Wenn Ihr Listener-Protokoll isthttp, können Sie sowohl als auch maxConnections angeben. maxPendingRequests

      • Geben Sie für Maximale Anzahl an Verbindungen die maximale Anzahl ausgehender Verbindungen an.

      • Geben Sie für Maximale Anfragen die maximale Anzahl parallel Anfragen an, die mit dem Virtual Gateway Envoy eingerichtet werden können.

      • (Optional) Geben Sie für Maximale Anzahl ausstehender Anfragen die Anzahl der überlaufenden Anfragen hinter Maximale Anzahl an Verbindungen an, die ein Envoy in die Warteschlange stellt. Der Standardwert ist 2147483647.

    3. (Optional) Wenn Sie eine Integritätsprüfung für Ihren Listener konfigurieren möchten, wählen Sie Integritätsprüfung aktivieren aus.

      Eine Integritätsprüfungsrichtlinie ist optional. Wenn Sie jedoch Werte für eine Integritätsrichtlinie angeben, müssen Sie Werte für den Schwellenwert „Fehlerfrei“, das Intervall für die Integritätsprüfung, das Protokoll für die Integritätsprüfung, den Zeitraum für die Zeitüberschreitung und den Schwellenwert für fehlerhafte Daten angeben.

      • Wählen Sie für Health Check Protocol ein Protokoll aus. Wenn Sie grpc auswählen, muss Ihr Dienst dem GRPCHealth Checking Protocol entsprechen.

      • Geben Sie unter Health check port (Zustandsprüfungsport) den Port an, auf dem die Zustandsprüfung ausgeführt werden soll.

      • Geben Sie für Healthy threshold (Schwellenwert für fehlerfreien Zustand) die Anzahl der fortlaufenden erfolgreichen Zustandsprüfungen an, die auftreten müssen, damit der Listener als fehlerfrei deklariert wird.

      • Geben Sie für Health check interval (Zustandsprüfungsintervall) den Zeitraum in Millisekunden zwischen den einzelnen Zustandsprüfungen an.

      • Geben Sie unter Path (Pfad) den Zielpfad für die Zustandsprüfungsanforderung an. Dieser Wert wird nur verwendet, wenn das Health Check-Protokoll http oder isthttp2. Der Wert wird für andere Protokolle ignoriert.

      • Geben Sie für Timeout period die Wartezeit in Millisekunden an, bis Sie eine Antwort von der Integritätsprüfung erhalten.

      • Geben Sie unter Unhealthy threshold (Schwellenwert für fehlerhaften Zustand) die Anzahl der fortlaufenden fehlgeschlagenen Zustandsprüfungen an, die auftreten müssen, damit der Listener als fehlerhaft deklariert wird.

    4. (Optional) Wenn Sie angeben möchten, ob Clients mit diesem virtuellen Gateway kommunizierenTLS, wählen Sie Terminierung aktivieren aus. TLS

      • Wählen Sie unter Modus den Modus aus, für den Sie auf dem Listener konfiguriert werden möchtenTLS.

      • Wählen Sie für Certificate method eine der folgenden Optionen aus. Das Zertifikat muss bestimmte Anforderungen erfüllen. Weitere Informationen finden Sie unter Zertifikatanforderungen.

        • AWS Certificate Manager Hosting — Wählen Sie ein vorhandenes Zertifikat aus.

        • Hosting durch den Envoy Secret Discovery Service (SDS) — Geben Sie den Namen des Geheimnisses ein, das Envoy mithilfe des Secret Discovery Service abruft.

        • Lokales Datei-Hosting — Geben Sie den Pfad zur Zertifikatskette und zu privaten Schlüsseldateien auf dem Dateisystem an, auf dem Envoy bereitgestellt wird.

      • (Optional) Wählen Sie Client-Zertifikat erforderlich und eine der folgenden Optionen aus, um die gegenseitige TLS Authentifizierung zu aktivieren, wenn der Client ein Zertifikat bereitstellt. Weitere Informationen zu Mutual TLS finden Sie in den Dokumenten zur App Mesh Mutual TLS Authentication.

        • Hosting des Envoy Secret Discovery Service (SDS) — Geben Sie den Namen des Geheimnisses ein, das Envoy mithilfe des Secret Discovery Service abruft.

        • Lokales Datei-Hosting — Geben Sie den Pfad zur Zertifikatskettendatei auf dem Dateisystem an, auf dem Envoy bereitgestellt wird.

      • (Optional) Geben Sie einen alternativen Namen für den Betreff ein. Um weitere hinzuzufügenSANs, wählen Sie Hinzufügen ausSAN. SANsmuss FQDN oder URI formatiert sein.

  9. Wählen Sie Create virtual gateway, um den Vorgang abzuschließen.

AWS CLI

Um ein virtuelles Gateway mit dem zu erstellen AWS CLI.

Erstellen Sie ein virtuelles Gateway mit dem folgenden Befehl und der folgenden Eingabe JSON (ersetzen Sie red Werte durch Ihre eigenen):

  1. aws appmesh create-virtual-gateway \ --mesh-name meshName \ --virtual-gateway-name virtualGatewayName \ --cli-input-json file://create-virtual-gateway.json
  2. Inhalt des Beispiels create-virtual-gateway .json:

    { "spec": { "listeners": [ { "portMapping": { "port": 9080, "protocol": "http" } } ] } }
  3. Beispielausgabe:

    { "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" } }

Weitere Informationen zum Erstellen eines virtuellen Gateways mit dem AWS CLI for App Mesh finden Sie im create-virtual-gatewayBefehl in der AWS CLI Referenz.

Stellen Sie ein virtuelles Gateway bereit

Stellen Sie einen Amazon ECS - oder Kubernetes-Service bereit, der nur den Envoy-Container enthält. Sie können den Envoy-Container auch auf einer EC2 Amazon-Instance bereitstellen. Weitere Informationen finden Sie unter Erste Schritte mit App Mesh und Amazon EC2. Weitere Informationen zur Bereitstellung auf Amazon ECS finden Sie unter Erste Schritte mit App Mesh und Amazon ECS oder Erste Schritte mit AWS App Mesh und Kubernetes zur Bereitstellung auf Kubernetes. Sie müssen die APPMESH_RESOURCE_ARN Umgebungsvariable auf setzen mesh/mesh-name/virtualGateway/virtual-gateway-name und Sie dürfen keine Proxykonfiguration angeben, damit der Datenverkehr des Proxys nicht zu sich selbst umgeleitet wird. Standardmäßig verwendet App Mesh den Namen der Ressource, die Sie in APPMESH_RESOURCE_ARN angegeben haben, wenn sich Envoy in Metriken und Ablaufverfolgungen auf sich selbst bezieht. Sie können dieses Verhalten übergehen, indem Sie die APPMESH_RESOURCE_CLUSTER -Umgebungsvariable mit Ihrem eigenen Namen festlegen.

Wir empfehlen, dass Sie mehrere Instances des Containers bereitstellen und einen Network Load Balancer einrichten, um den Datenverkehr auf die Instances zu verteilen. Der Service Discovery-Name des Load Balancers ist der Name, den externe Dienste für den Zugriff auf Ressourcen verwenden sollen, die sich im Mesh befinden, wie z. B. myapp.example.com. Weitere Informationen finden Sie unter Erstellen eines Network Load Balancer (AmazonECS), Erstellen eines externen Load Balancers (Kubernetes) oder Tutorial: Erhöhen Sie die Verfügbarkeit Ihrer Anwendung bei Amazon. EC2 Weitere Beispiele und Komplettlösungen finden Sie auch in unseren App Mesh Mesh-Beispielen.

Aktivieren Sie die Proxy-Autorisierung für Envoy. Weitere Informationen finden Sie unter Envoy Proxy-Autorisierung.

Löschen eines virtuellen Gateways

AWS Management Console
Um ein virtuelles Gateway mit dem zu löschen AWS Management Console
  1. Öffnen Sie die App Mesh Mesh-Konsole unter https://console.aws.amazon.com/appmesh/.

  2. Wählen Sie das Mesh aus, aus dem Sie ein virtuelles Gateway löschen möchten. Alle Meshes, die Sie besitzen und die mit Ihnen geteilt wurden, werden aufgelistet.

  3. Wählen Sie in der linken Navigationsleiste Virtuelle Gateways aus.

  4. Wählen Sie das virtuelle Gateway aus, das Sie löschen möchten, und wählen Sie Löschen aus. Sie können ein virtuelles Gateway nicht löschen, wenn ihm Gateway-Routen zugeordnet sind. Sie müssen zuerst alle zugehörigen Gateway-Routen löschen. Sie können nur ein virtuelles Gateway löschen, bei dem Ihr Konto als Ressourcenbesitzer aufgeführt ist.

  5. Geben Sie im Bestätigungsfeld den Text ein delete und wählen Sie dann Löschen aus.

AWS CLI
Um ein virtuelles Gateway mit dem zu löschen AWS CLI
  1. Verwenden Sie den folgenden Befehl, um Ihr virtuelles Gateway zu löschen (ersetzen Sie den red Werte durch Ihre eigenen):

    aws appmesh delete-virtual-gateway \ --mesh-name meshName \ --virtual-gateway-name virtualGatewayName
  2. Beispielausgabe:

    { "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" } }

Weitere Informationen zum Löschen eines virtuellen Gateways mit dem AWS CLI for App Mesh finden Sie im delete-virtual-gatewayBefehl in der AWS CLI Referenz.