

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.

# Verbinden Sie Amazon ECS-Services mit einem Gateway
<a name="gateway-connect-service"></a>

Sie können einen Amazon ECS-Service mit einem Gateway verbinden, indem Sie einen Gateway-Connector konfigurieren, wenn Sie den Service erstellen oder aktualisieren. Ein Gateway-Connector identifiziert den benannten Container-Port, der Datenverkehr empfängt. Sie können auch Integritätsprüfungen konfigurieren und angeben, welche Gateway-Zugriffstypen der Dienst verwenden kann.

Amazon ECS verbindet den Service mit kompatiblen Gateways, die seinem Cluster zugeordnet sind. Für jede Verbindung erstellt Amazon ECS eine Gateway-Route und stellt einen eindeutigen HTTPS-Hostnamen bereit.

## Voraussetzungen
<a name="gateway-connect-prerequisites"></a>

Bevor Sie einem Service einen Gateway-Connector hinzufügen, stellen Sie sicher, dass Sie über Folgendes verfügen:
+ Ein Gateway ist dem ECS-Cluster Ihres Dienstes zugeordnet, und die Zuordnung ist AKTIV. Wenn kein Gateway verknüpft ist, lehnt Amazon ECS die Anfrage ab, sodass Sie dies sofort herausfinden, anstatt auf einen Service zu warten, der ohne URL bereitgestellt wird.
+ Ihr Service hat eine Aufgabendefinition, die verwendet `awsvpc` Netzwerkmodus und definiert einen benannten Port auf dem Container, der Datenverkehr empfangen soll. Weitere Informationen finden Sie unter [Netzwerkoptionen für Amazon ECS-Aufgaben](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/networking-networkmode.html).
+ Mindestens ein Gateway im Cluster ist mit Ihrem Service kompatibel. Ein Gateway ist kompatibel, wenn es sich in derselben VPC wie die Subnetze Ihres Dienstes befindet, Ihrem Zugriffstypfilter entspricht und jede Availability Zone abdeckt, in der Ihr Service ausgeführt wird.

## Verbinden Sie einen Dienst mit einem Gateway
<a name="gateway-connect-add-connector"></a>

Fügen Sie dem Dienst einen Gateway-Connector hinzu und legen Sie fest `portName` an den Container-Port in Ihrer Aufgabendefinition, der Datenverkehr empfangen soll.

**Um einen Dienst mit einem Gateway zu verbinden**

```
aws ecs update-service \
    --cluster my-cluster \
    --service my-service \
    --gateway-connectors '[{"portName": "web"}]'
```

Während der Bereitstellung wählt Amazon ECS die kompatiblen Gateways aus, stellt die erforderliche Eingangsinfrastruktur bereit oder verwendet sie erneut, erstellt das Zertifikat, den Hostnamen, die Listener-Regeln und die Zielgruppen und erstellt eine Gateway-Route für jede Verbindung. Jede Route hat ihren eigenen HTTPS-Hostnamen. Wenn mehr als ein Gateway kompatibel ist, stellt der Dienst eine Verbindung zu allen her. Ein Dienst hat höchstens einen Gateway-Connector.

## Passen Sie einen Gateway-Connector an
<a name="gateway-configure-connectors"></a>

Der `portName` ist erforderlich. Es bezieht sich auf einen benannten Port in Ihrer Aufgabendefinition. Amazon ECS verwendet die Nummer, das Protokoll und die Protokollversion dieses Ports, um die Zielgruppe zu konfigurieren. Wenn der Name nicht mit einem Port in der Aufgabendefinition übereinstimmt, die Ihr Service verwendet, schlägt die Anfrage fehl. Die Einstellungen für die Integritätsprüfung und ein Zugriffstypfilter sind optional.

### Filter für den Zugriffstyp
<a name="gateway-connector-access-type-filter"></a>

Der `filters.accessTypes` schränkt die Gateways ein, mit denen Ihr Dienst eine Verbindung herstellt. Setze es auf `PUBLIC`, `PRIVATE`, oder beides, und lass es weg, um eines zu akzeptieren. EIN `PUBLIC` Das Gateway ist über das Internet erreichbar. EIN `PRIVATE` Ein Gateway ist nur von einem Netzwerk aus erreichbar, das seinen internen Load Balancer erreichen kann, sodass eine Anfrage aus dem Internet nicht eintrifft. Der Filter steuert nur die Gateway-Auswahl. Er konfiguriert keine Verkehrs- oder Sicherheitsregeln.

**Um nur eine Verbindung zu privaten Gateways herzustellen**

```
aws ecs update-service \
    --cluster my-cluster \
    --service my-service \
    --gateway-connectors '[{
        "portName": "web",
        "filters": { "accessTypes": ["PRIVATE"] }
    }]'
```

Die Eingrenzung des Filters wirkt sich auf die Bereitstellung aus, die gestartet wird. Ihr Service unterbricht seine Verbindungen zu den Gateways, die nicht mehr übereinstimmen, und ihre URLs funktionieren nicht mehr.

**Wichtig**  
Ein Dienst, der niemals über das Internet erreichbar sein sollte, muss nach filtern `PRIVATE`. Ohne den Filter wird der Dienst später bei seiner nächsten Bereitstellung verfügbar gemacht, wenn dem Cluster ein Gateway mit Internetanschluss zugeordnet wird.

### Health checks (Zustandsprüfungen)
<a name="gateway-connector-health-checks"></a>

Amazon ECS konfiguriert Zustandsprüfungen für die Zielgruppe, die es für jede Gateway-Route erstellt, und leitet den Datenverkehr nur an Ziele weiter, die die Route bestehen. Standardmäßig sendet ein Gateway eine HTTP-Anfrage an `/` auf dem Port, der `portName` benennt, alle 30 Sekunden, und erwartet eine `200` Antwort innerhalb von 5 Sekunden. Ein Service, der antwortet `200` beim `/` benötigt keine Konfiguration für den Gesundheitscheck.

Stellen Sie einen anderen Pfad ein, wenn `/` ist langsam oder erledigt echte Arbeit, z. B. das Abfragen einer Datenbank oder das Rendern einer ganzen Seite. Eine Systemdiagnose wird für jedes Ziel alle 30 Sekunden wiederholt. Eine langsame Antwort kann das Timeout der Systemdiagnose überschreiten und ein fehlerfreies Ziel als fehlerhaft markieren. Ein leichter Endpunkt wie `/health` vermeidet beides.

**Um einen Pfad für die Integritätsprüfung festzulegen**

```
aws ecs update-service \
    --cluster my-cluster \
    --service my-service \
    --gateway-connectors '[{
        "portName": "web",
        "healthCheck": { "healthCheckPath": "/health" }
    }]'
```

Informationen darüber, was die einzelnen Einstellungen steuern, finden Sie unter [Zustandsprüfungen für Application Load Balancer-Zielgruppen](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html) in der *Application Load Balancers — Benutzerhandbuch*.

**Wichtig**  
Eine Änderung des Gesundheitschecks ersetzt die Zielgruppe, sodass Sie bei einem Dienst, der die `ROLLING` Bereitstellungsstrategie. Die Anforderung schlägt mit `Target group properties cannot be changed with ROLLING deployment strategy` fehl. Verwenden Sie eine `BLUE_GREEN` oder `CANARY` Bereitstellungsstrategie für den Dienst oder legen Sie die Konfiguration der Integritätsprüfung fest, wenn Sie den Dienst zum ersten Mal verbinden.

## Wie wählt Amazon ECS kompatible Gateways aus
<a name="gateway-select-compatible"></a>

Während einer Servicebereitstellung bewertet Amazon ECS die mit dem Service-Cluster verknüpften Gateways (bis zu 5 pro Cluster) und grenzt diese Kandidaten ein. Es ignoriert die Gateways, die nicht übereinstimmen, und Ihre Bereitstellung schlägt fehl.

Amazon ECS passt in drei Dimensionen an:


| Dimension | Wie Amazon ECS die Eignung feststellt | 
| --- | --- | 
| Access type (Art des Zugriffs) | Das Gateway entspricht dem des Gateway-Connectors filters.accessTypes. Wenn Sie den Filter weglassen, beide PUBLIC und PRIVATE Gateways sind teilnahmeberechtigt. | 
| VPC | Das Gateway befindet sich in derselben VPC wie die Subnetze Ihres Dienstes. Ein Gateway in einer anderen VPC ist nicht berechtigt. | 
| Availability Zone | Das Gateway muss über konfigurierte Subnetze in jeder Availability Zone verfügen, die von den konfigurierten Subnetzen des Dienstes verwendet wird. Ein Gateway, das sich nur mit einigen Availability Zones überschneidet, ist nicht geeignet. | 

Amazon ECS verbindet den Service mit jedem berechtigten Gateway. Ein inkompatibles Gateway allein führt nicht zum Scheitern der Bereitstellung, sofern ein anderes zugehöriges Gateway in Frage kommt. Wenn kein geeignetes Gateway mehr vorhanden ist, schlägt die Anfrage fehl, da der Dienst keine Gateway-Verbindung herstellen kann.

Die Availability Zone-Abdeckung muss vollständig und nicht teilweise sein. Ein Gateway erreicht nur die Availability Zones, in denen es Subnetze hat. Eine Aufgabe, die in einer Availability Zone gestartet wird, die das Gateway nicht abdeckt, besteht nie ihre Zustandsprüfungen, und Amazon ECS ersetzt sie. Die vollständige Availability Zone-Abdeckung stellt sicher, dass Aufgaben, die in einer der konfigurierten Availability Zones des Services gestartet werden, bei intakten Zielen hinter dem verbundenen Gateway registriert werden können.

Stellen Sie sich beispielsweise zwei Gateways vor, Gateway 1 (GW1) und Gateway 2 (GW2), und einen Service (S1) in derselben VPC:


| Ressource | Konfigurierte Verfügbarkeitszonen | Für den Service in Frage | 
| --- | --- | --- | 
| GW1 | us-west-2a, us-west-2b, us-west-2c | Ja. Es deckt beide Verfügbarkeitszonen des Dienstes ab. | 
| GW2 | us-west-2a, us-west-2b | Nein. Es deckt nicht us-west-2c. | 
| S1 | us-west-2b, us-west-2c |  | 

Unter der Annahme, dass der Zugriffstypfilter ebenfalls übereinstimmt, verbindet Amazon ECS den Service nur mit Gateway 1. Gateway 1 deckt beide ab `us-west-2b` und `us-west-2c`, während Gateway 2 nicht abdeckt `us-west-2c`. Wenn Sie den Dienst mit Gateway 2 verbinden, können Aufgaben gestartet werden `us-west-2c` um den Load Balancer-Integritätstest nicht bestanden zu haben und ersetzt zu werden.

**Wichtig**  
Ein Gateway-Connector wählt ein einzelnes Gateway nicht nach Namen oder ARN aus. Der Dienst stellt eine Verbindung zu jedem Gateway im Cluster her, das die drei Prüfungen besteht. Ein Gateway, das mehr Availability Zones umfasst, als Ihr Service benötigt, ist die sicherere Konfiguration. Um einen Dienst mit einem bestimmten Gateway zu verbinden, konfigurieren Sie dieses Gateway so, dass es jede Availability Zone abdeckt, in der die Aufgaben des Dienstes ausgeführt werden. Stimmen Sie Änderungen an den Clusterzuordnungen mit Ihrem Plattformteam ab, da sie sich auf mehrere Dienste auswirken können.

## Verstehen Sie die Servicebereitstellung
<a name="gateway-service-deployment"></a>

Durch das Erstellen oder Aktualisieren eines Dienstes mit einem Gateway Connector wird eine Bereitstellung gestartet. Amazon ECS erstellt die Gateway-Route und ihre dienstspezifischen Ressourcen während dieser Bereitstellung. Die erste Verbindung zu einem Gateway kann länger dauern, da Amazon ECS möglicherweise einen gemeinsamen Application Load Balancer erstellen muss, bevor es die Ressourcen Ihres Services erstellen kann. Später verwenden Dienste diesen Load Balancer, seinen Listener und seine Sicherheitsgruppe wieder.

Wenn Sie einen Gateway-Connector aktualisieren oder den Service bereitstellen, nachdem sich eine Cluster-Zuordnung geändert hat, bewertet Amazon ECS erneut, welche Gateways in Frage kommen. Die Bereitstellung richtet Routen zu neu infrage kommenden Gateways ein und entfernt Verbindungen, die nicht mehr übereinstimmen.

### Wie erreicht der Testverkehr eine neue Revision
<a name="gateway-test-traffic-new-revision"></a>

Während einer progressiven Bereitstellung erreichen Anfragen, die den Test-Traffic-Header und -Wert des Gateways enthalten, die neue Service-Revision, während alles andere weiterhin die aktuelle Version erreicht. Das Plattformteam legt diesen Header auf dem Gateway fest, nicht auf Ihrem Service, sodass jeder Dienst hinter dem Gateway denselben verwendet. Fragen Sie sie, was es ist.

Eine Änderung am Header erreicht Ihren Service erst bei der nächsten Bereitstellung, sodass Ihr Service immer noch mit einem vorherigen Header übereinstimmt. Weitere Informationen finden Sie unter [Konfigurieren Sie die Regeln für den Testverkehr](gateway-managing.md#gateway-test-traffic-rules).

## Überprüfen Sie die Verbindung und suchen Sie die Service-URL
<a name="gateway-find-service-url"></a>

Jedes berechtigte Gateway stellt eine separate Verbindung und einen eigenen HTTPS-Hostnamen her. Diese Verbindungen gehören zu einer Service-Revision. Ein Aufruf gibt also jede Verbindung mit der von Ihnen benannten Revision zurück, zusammen mit der URL, dem Zugriffstyp und dem Status jeder Verbindung. Während einer Bereitstellung gibt es mehr als eine Revision, und jede hat ihre eigenen Verbindungen.

Sie erhalten einen Revision-ARN aus der Bereitstellung des Dienstes. `describe-service-deployments` gibt den ARN der Revision zurück, zu der eine Bereitstellung verschoben wird, und zwar unter `targetServiceRevision.arn`. Weitere Informationen finden Sie unter [Revisionsdetails für den Amazon ECS-Service anzeigen](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/view-service-revision.html).

**Um eine Verbindung zu überprüfen und die Service-URL abzurufen**

```
aws ecs describe-service-revisions \
    --service-revision-arns arn:aws:ecs:us-west-2:123456789012:service-revision/my-cluster/my-service/1234567890123456789 \
    --query 'serviceRevisions[0].ecsManagedResources.gatewayConnections'
```

Jede Verbindung führt `serviceUrl`, den HTTPS-Hostnamen, an den der Datenverkehr gesendet werden soll, sowie `accessType`, der Ihnen sagt, wie weit dieser Hostname reicht, und `status`. Ein Hostname hat die Form `https://<unique-id>.ecs.<region>.on.aws`. Die Domain variiert von AWS Partition. Die Kennung des Hostnamens ist zufällig. Er wird nicht von Ihrem Dienstnamen abgeleitet, daher erhält ein Dienst, den Sie löschen und unter demselben Namen neu erstellen, eine andere URL.

Lesen `status` bei jeder Verbindung und warte, bis eine Verbindung gemeldet wird `ACTIVE` bevor Sie den Client-Verkehr zu seiner URL weiterleiten. `status` Berichte `CREATE_IN_PROGRESS` während Amazon ECS Bestimmungen bereitstellt und `ACTIVE` Sobald diese Verbindung bereit ist, führen Sie den Befehl erneut aus, bis die Verbindungen, die Sie benötigen, gemeldet werden `ACTIVE`. Ein Dienst, der mit zwei Gateways verbunden ist, muss zwei Verbindungen überprüfen. Eine Verbindung, die meldet `CREATE_FAILED` bedeutet eher, dass die Bereitstellung fehlgeschlagen ist, als dass sie immer noch läuft und ein längeres Warten nichts daran ändert. Weitere Informationen finden Sie unter [Der Hostname des Dienstes reagiert nicht](gateway-troubleshooting.md#gateway-ts-url-no-response).

Die Gateway-Einstellungen erscheinen in `DescribeServiceRevisions`, weil sich Connectors zwischen Bereitstellungen ändern und eine Revision aufzeichnet, was bei der Bereitstellung konfiguriert wurde. Informationen zum Routenstatus, zur Ressourceninspektion und zum Durchlaufen einer Route durch jede Ressource auf ihrem Pfad finden Sie unter [Überwachen Sie Gateway-Routen](gateway-monitoring.md#gateway-inspect-routes).

## Migrieren Sie einen Dienst
<a name="gateway-update-migrate-service"></a>

**Um einen Service zu migrieren, der bereits über einen eigenen Load Balancer verfügt,** fügen Sie ihm einen Gateway-Connector hinzu. Amazon ECS stellt eine Gateway-Route und einen neuen Hostnamen bereit. Ihre bestehende Load Balancer-Konfiguration wird dadurch weder entfernt noch geändert. Beide Eingangspfade bedienen den Datenverkehr gleichzeitig, sodass Sie die Gateway-URL überprüfen können, bevor Sie Ihren eigenen Load Balancer in einem späteren Update entfernen.

**Um einen Service von einem Gateway auf ein anderes zu verschieben,** stimmen Sie sich mit Ihrem Plattformteam ab. Da der Connector keinen Gateway-ARN angibt, wird eine Migration über Clusterzuordnungen und Zugriffstypfilter gesteuert. Aus diesem Grund kann auch eine auf einem Gateway festgelegte Einstellung, wie z. B. das Schema, die Subnetze, der Listener-Port oder das Protokoll, nicht geändert werden. Nur durch das Erstellen eines Ersatz-Gateways und das Verschieben von Diensten auf dieses Gateway wird ein anderer Wert erzielt.

1. Erstellen Sie das Ziel-Gateway und ordnen Sie es zu. Vergewissern Sie sich, dass der Zugriffstyp und die VPC mit dem Dienst übereinstimmen und dass seine Subnetze jede Availability Zone abdecken, in der die Aufgaben des Dienstes ausgeführt werden. Ein Gateway, das nur einige davon abdeckt, ist nicht berechtigt und der Dienst stellt keine Verbindung zu diesem Gateway her.

1. Stellen Sie den Dienst erneut bereit, sodass er eine Verbindung zum Ziel-Gateway herstellt. Wenn das ursprüngliche Gateway weiterhin in Frage kommt, können beide Routen während des Übergangs nebeneinander existieren.

1. Vergewissern Sie sich, dass die Verbindung des Dienstes zum Ziel-Gateway gemeldet wird `ACTIVE`und aktualisieren Sie dann die Clients, die den alten Hostnamen adressieren.

1. Lassen Sie das Plattformteam das alte Gateway trennen, wenn es nicht mehr benötigt wird. Stellen Sie die betroffenen Dienste erneut bereit, um die alten Routen zu entfernen.

**Wichtig**  
Die Trennung eines Gateways wirkt sich auf alle Dienste aus, die diese Clusterzuordnung verwenden. Planen Sie die Änderung zusammen mit anderen Anwendungsteams. Der alte generierte Hostname funktioniert nicht mehr, nachdem seine Gateway-Route entfernt wurde.

## Trennen Sie einen Dienst von den Gateways
<a name="gateway-disconnect-service"></a>

**Um einen Dienst von allen Gateways zu trennen**

```
aws ecs update-service \
    --cluster my-cluster \
    --service my-service \
    --gateway-connectors '[]'
```

Um nur bestimmte Gateway-Zugriffstypen beizubehalten, aktualisieren Sie `filters.accessTypes` stattdessen. Bei der nächsten Bereitstellung entfernt Amazon ECS die Routen für Gateways, die nicht mehr übereinstimmen. Sie können einen Zugriffstypfilter nicht verwenden, um ein bestimmtes Gateway zu entfernen und gleichzeitig ein anderes berechtigtes Gateway desselben Zugriffstyps beizubehalten.

Wenn ein Service die Verbindung trennt, entfernt Amazon ECS seine Gateway-Routen und servicespezifischen Eingangsressourcen. Das Gateway und seine Cluster-Zuordnungen bleiben für andere Services verfügbar. Durch das Löschen eines verbundenen Amazon ECS-Service werden auch seine Gateway-Verbindungen entfernt. Wenn auf einem verwalteten Load Balancer keine Dienste mehr vorhanden sind, entfernt Amazon ECS diesen Load Balancer. Eine Clusterzuordnung verbleibt in der `DISASSOCIATING` Status, bis jede Gateway-Route auf diesem Cluster entfernt wird und Amazon ECS dann die Verknüpfung entfernt. Weitere Informationen finden Sie unter [Trennen Sie ein Gateway von einem Cluster](gateway-managing.md#gateway-disassociate-cluster).

Das Trennen der Verbindung wirkt sich auf die begonnene Bereitstellung aus, sodass der Service den Datenverkehr über das Gateway weiterleitet, bis die Bereitstellung abgeschlossen ist.

**Wichtig**  
Wenn der Gateway Connector entfernt wird, kann über seine Gateway-Hostnamen nicht mehr auf den Dienst zugegriffen werden, nachdem die entsprechenden Routen entfernt wurden. Stellen Sie sicher, dass der Dienst über einen anderen Eingangspfad verfügt, falls er weiterhin zugänglich sein muss.