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

Ein virtuelles Gateway ermöglicht Ressourcen innerhalb des Netzes mit innerhalb des Netzes mit innerhalb des Netzes mit innerhalb des Netzes mit innerhalb des Netzes mit innerhalb des Netzes mit innerhalb des Netzes mit innerhalb des Netzes Das virtuelle Gateway stellt einen Envoy-Proxy dar, der in einem Amazon ECS-Dienst, in einem Kubernetes-Service oder auf einer Amazon EC2 EC2-Instance ausgeführt wird. Im Gegensatz zu einem virtuellen Knoten, der ein mit einer Anwendung ausgeführter Envoy ist, ist ein virtuelles Gateway ein selbst bereitgestellter Envoy.

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- oder HTTP2-Listener schreibt den Hostnamen der eingehenden Anfrage in den Namen des virtuellen Gateway-Route-Zieldienstes um, und das passende Präfix der Gateway-Route wird standardmäßig in das umgeschrieben./ Wenn Sie beispielsweise das Gateway-Routenübereinstimmungspräfix für konfiguriert haben/chapter, und wenn die eingehende Anfrage lautet/chapter/1, würde die Anforderung umgeschrieben/1. Informationen zum Konfigurieren von Rewrites finden Sie im Abschnitt Erstellen einer Gateway-Route unter Gateway-Routen.

Beim Erstellen eines virtuellen GatewaysproxyConfiguration unduser sollte nicht konfiguriert werden.

Eine end-to-end Komplettlösung finden Sie unter Configuring Inbound Gateway.

Virtuelles Gateway erstellen

Anmerkung

Wenn Sie ein virtuelles Gateway erstellen, 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
So erstellen Sie ein virtuelles Gateway mit derAWS Management Console
  1. Öffnen Sie die App Mesh Mesh-Konsole unter https://console.aws.amazon.com/appmesh/.

  2. Wählen Sie das Netz aus, in dem Sie das virtuelle Gateway erstellen möchten. Alle Netze, 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 für Virtual Gateway Name einen Namen für Ihr virtuelles Gateway ein.

  6. (Optional, aber empfohlen) Konfigurieren Sie die Standardeinstellungen der Client-Richtlinien.

    1. (Optional) Wählen Sie TLS erzwingen aus, wenn das Gateway mithilfe von Transport Layer Security (TLS) nur 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 für Validierungsmethode eine der folgenden Optionen. 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 des Envoy Secret Discovery Service (SDS) — Geben Sie den Namen des Geheimnisses ein, das der Envoy mithilfe des Secret Discovery Service abruft.

      • Lokales Dateihosting — Geben Sie den Pfad zur Zertifikatskettendatei auf dem Dateisystem an, in dem Envoy bereitgestellt wird.

    4. (Optional) Geben Sie einen alternativen Betreff ein. Um weitere SANs hinzuzufügen, wählen Sie SAN hinzufügen aus. SANs müssen mit FQDN oder URI formatiert sein.

    5. (Optional) Wählen Sie Client-Zertifikat 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 gegenseitigem TLS finden Sie in den Dokumenten zur gegenseitigen TLS-Authentifizierung von App Mesh.

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

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

  7. (Optional) Wählen Sie Protokollierung aus, um die Protokollierung zu konfigurieren. Geben Sie den Pfad der HTTP-Zugriffsprotokolle ein, den Envoy verwenden soll. Wir empfehlen den/dev/stdout Pfad, damit Sie Docker-Protokolltreiber verwenden können, um Ihre Envoy-Protokolle an einen Dienst 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) Verbindungspool aktivieren

      Das Verbindungspool begrenzt die Anzahl der Verbindungen, die der Virtual Gateway Envoy gleichzeitig herstellen kann. Es soll Ihre Envoy-Instanz davor schützen, mit Verbindungen überfordert zu werden, und ermöglicht es Ihnen, das Traffic-Shaping an die Bedürfnisse Ihrer Anwendungen anzupassen.

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

      Anmerkung

      Das ProtokollconnectionPool und dasconnectionPool PortMapping-Protokoll müssen identisch sein. Wenn Ihr Listener-Protokollgrpc oder isthttp2, geben Sie esmaxRequests nur an. Wenn Ihr Listener-Protokoll isthttp, können SiemaxConnections sowohl als auch angebenmaxPendingRequests.

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

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

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

    3. (Optional) Wenn Sie einen Gesundheitscheck für Ihren Listener konfigurieren möchten, wählen Sie Health Check aktivieren aus.

      Eine Zustandsprüfungsrichtlinie ist optional. Wenn Sie jedoch Werte für eine Integritätsrichtlinie angeben, müssen Sie Werte für den Schwellenwert für den Zustand, 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 fehlerhaft angeben.

      • Wählen Sie für das Health Check-Protokoll ein Protokoll aus. Wenn Sie grpc auswählen, muss Ihr Service mit dem GRPC Health Checking Protocol konform sein.

      • 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-Protokollhttp oder isthttp2. Für andere Protokolle wird der Wert ignoriert.

      • Geben Sie für Timeout-Zeitraum die Wartezeit in Millisekunden ein, bis eine Antwort von der Zustandsprüfung eingeht.

      • 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 über TLS mit diesem virtuellen Gateway kommunizieren, wählen Sie TLS-Terminierung aktivieren aus.

      • Wählen Sie unter Modus den Modus aus, für den TLS auf dem Listener konfiguriert werden soll.

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

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

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

        • Lokales Dateihosting — Geben Sie den Pfad zur Zertifikatskette und den privaten Schlüsseldateien auf dem Dateisystem an, in dem Envoy bereitgestellt wird.

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

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

        • Lokales Dateihosting — Geben Sie den Pfad zur Zertifikatskettendatei auf dem Dateisystem an, in dem Envoy bereitgestellt wird.

      • (Optional) Geben Sie einen alternativen Betreff ein. Um weitere SANs hinzuzufügen, wählen Sie SAN hinzufügen aus. SANs müssen mit FQDN oder URI formatiert sein.

  9. Wählen Sie Virtuelles Gateway erstellen, um den Vorgang abzuschließen.

AWS CLI

Um ein virtuelles Gateway mit dem zu erstellenAWS CLI.

Erstellen Sie ein virtuelles Gateway mit dem folgenden Befehl und geben Sie JSON ein (ersetzen Sie die roten 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 demAWS CLI for App Mesh finden Sie im create-virtual-gatewayBefehl in derAWS CLI Referenz.

Virtuelles Gateway bereitstellen

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 Amazon EC2 EC2-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 mitAWS App Mesh und Kubernetes für die Bereitstellung auf Kubernetes. Sie müssen dieAPPMESH_RESOURCE_ARN Umgebungsvariable auf setzenmesh/mesh-name/virtualGateway/virtual-gateway-name und Sie dürfen die Proxykonfiguration nicht angeben, damit der Verkehr 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, mehrere Instances des Containers bereitzustellen und einen Network Load Balancer einzurichten, um den Traffic zu den Instances zu verteilen. Der Service Discovery-Name des Load Balancers ist der Name, den externe Dienste verwenden sollen, um auf Ressourcen zuzugreifen, die sich im Mesh befinden, z. B. myapp.example.com. Weitere Informationen finden Sie unter Erstellen eines Network Load Balancer (Amazon ECS), Erstellen eines externen Load Balancers (Kubernetes) oder Tutorial: Erhöhen Sie die Verfügbarkeit Ihrer Anwendung auf Amazon EC2. Weitere Beispiele und Komplettlösungen finden Sie auch in unseren App Mesh Beispielen.

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

Löschen eines virtuellen Netzes ein virtuelles Gateway

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

  2. Wählen Sie das Netz aus, aus dem Sie ein virtuelles Gateway löschen möchten. Alle Netze, 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 klicken Sie auf Löschen. Sie können ein virtuelles Gateway nicht löschen, wenn es über zugeordnete Gateway-Routen verfügt. 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 in das Bestätigungsfeld den Text eindelete und wählen Sie dann Löschen aus.

AWS CLI
So löschen Sie ein virtuelles Gateway mit derAWS CLI
  1. Verwenden Sie den folgenden Befehl, um Ihr virtuelles Gateway zu löschen (ersetzen Sie die roten 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 demAWS CLI for App Mesh finden Sie im delete-virtual-gatewayBefehl in derAWS CLI Referenz.