

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.

# Amazon-ECS-Services verbinden
<a name="interconnecting-services"></a>

Anwendungen, die in Amazon-ECS-Aufgaben ausgeführt werden, müssen häufig Verbindungen aus dem Internet empfangen oder eine Verbindung zu anderen Anwendungen, die in Amazon-ECS-Services ausgeführt werden, herstellen. Wenn Sie externe Verbindungen aus dem Internet benötigen, empfehlen wir die Verwendung von Elastic Load Balancing. Weitere Informationen zu integriertem Load Balancing finden Sie unter [Verwenden von Load Balancing für die Verteilung des Service-Datenverkehrs in Amazon ECS](service-load-balancing.md).

Wenn Sie eine Anwendung benötigen, um eine Verbindung zu anderen Anwendungen herzustellen, die in Amazon-ECS-Services ausgeführt werden, bietet Amazon ECS die folgenden Möglichkeiten, dies ohne einen Load Balancer zu tun:
+ *Amazon ECS Service Connect*

  Wir empfehlen Service Connect, das eine Amazon-ECS-Konfiguration für Serviceerkennung, Konnektivität und Verkehrsüberwachung bietet. Mit Service Connect können Ihre Anwendungen Kurznamen und Standardports verwenden, um eine Verbindung zu Amazon ECS-Services im selben Cluster, anderen Clustern, einschließlich Across VPCs im selben, herzustellen AWS-Region.

  Wenn Sie Service Connect verwenden, verwaltet Amazon ECS alle Teile der Serviceerkennung: die Erstellung der Namen, die erkannt werden können, die dynamische Verwaltung von Einträgen für jede Aufgabe, wenn die Aufgaben gestartet und beendet werden, das Ausführen eines Agenten in jeder Aufgabe, der für die Erkennung der Namen konfiguriert ist. Ihre Anwendung kann die Namen mithilfe der Standardfunktionen für DNS-Namen und das Herstellen von Verbindungen nachschlagen. Wenn Ihre Anwendung dies bereits tut, müssen Sie Ihre Anwendung nicht ändern, um Service Connect zu verwenden.

  Sie stellen die vollständige Konfiguration in jedem Service und jeder Aufgabendefinition bereit. Amazon ECS verwaltet Änderungen an dieser Konfiguration in jeder Servicebereitstellung, um sicherzustellen, dass sich alle Aufgaben in einer Bereitstellung auf die gleiche Weise verhalten. Ein häufiges Problem bei DNS als Serviceerkennung ist beispielsweise die Steuerung einer Migration. Wenn Sie einen DNS-Namen so ändern, dass er auf die neuen Ersatz-IP-Adressen verweist, kann es die maximale TTL-Zeit dauern, bis alle Clients den neuen Service verwenden. Mit Service Connect aktualisiert die Client-Bereitstellung die Konfiguration, indem sie die Client-Aufgaben ersetzt. Sie können den Bereitstellungs-Schutzschalter und andere Bereitstellungskonfigurationen so konfigurieren, dass sie Service-Connect-Änderungen genauso beeinflussen wie jede andere Bereitstellung.

  Weitere Informationen finden Sie unter [Verwenden von Service Connect, um Amazon-ECS-Services mit Kurznamen zu verbinden](service-connect.md).
+ *Amazon-ECS-Serviceerkennung*

  Ein weiterer service-to-service Kommunikationsansatz ist die direkte Kommunikation mithilfe von Service Discovery. Bei diesem Ansatz können Sie die Integration der AWS Cloud Map -Serviceerkennung mit Amazon ECS verwenden. Mithilfe von Service Discovery synchronisiert Amazon ECS die Liste der gestarteten Aufgaben mit AWS Cloud Map, das einen DNS-Hostnamen verwaltet, der in die internen IP-Adressen einer oder mehrerer Aufgaben von diesem bestimmten Service aufgelöst wird. Andere Services in der Amazon VPC können diesen DNS-Hostnamen verwenden, um Datenverkehr unter Verwendung der internen IP-Adresse direkt an einen anderen Container zu senden. 

  Dieser service-to-service Kommunikationsansatz bietet eine geringe Latenz. Zwischen den Containern befinden sich keine zusätzlichen Komponenten. Der Datenverkehr wird direkt von einem Container zum anderen Container geleitet.

  Dieser Ansatz eignet sich für den `awsvpc`-Netzwerkmodus, in dem jede Aufgabe ihre eigene eindeutige IP-Adresse hat. Die meiste Software unterstützt nur die Verwendung von DNS-`A`-Einträgen, die direkt in IP-Adressen aufgelöst werden. Bei Verwendung des `awsvpc`-Netzwerkmodus handelt es sich bei den IP-Adressen für jede Aufgabe um einen `A`-Datensatz. Wenn Sie jedoch den `bridge`-Netzwerkmodus verwenden, können sich mehrere Container dieselbe IP-Adresse teilen. Darüber hinaus führen dynamische Port-Zuordnungen dazu, dass den Containern nach dem Zufallsprinzip Port-Nummern für diese einzelne IP-Adresse zugewiesen werden. Zu diesem Zeitpunkt reicht ein `A`-Datensatz für die Serviceerkennung nicht mehr aus. Sie müssen auch einen `SRV`-Datensatz verwenden. Dieser Datensatztyp kann sowohl IP-Adressen als auch Port-Nummern nachverfolgen, erfordert jedoch, dass Sie die Anwendungen entsprechend konfigurieren. Einige vorgefertigte Anwendungen, die Sie verwenden, unterstützen möglicherweise keine `SRV`-Datensätze.

  Ein weiterer Vorteil des `awsvpc`-Netzwerkmodus besteht darin, dass Sie für jeden Service eine eigene Sicherheitsgruppe haben. Sie können diese Sicherheitsgruppe so konfigurieren, dass eingehende Verbindungen nur von den spezifischen vorgelagerten Services zugelassen werden, die mit diesem Service kommunizieren müssen.

  Der Hauptnachteil der direkten service-to-service Kommunikation mithilfe der Diensterkennung besteht darin, dass Sie zusätzliche Logik implementieren müssen, um Wiederholungsversuche durchzuführen und Verbindungsfehler zu beheben. DNS-Einträge haben einen Zeitraum time-to-live (TTL), der bestimmt, wie lange sie zwischengespeichert werden. Es dauert einige Zeit, bis der DNS-Datensatz aktualisiert ist und der Cache abläuft, sodass Ihre Anwendungen die neueste Version des DNS-Datensatz abrufen können. Es kann also sein, dass Ihre Anwendung den DNS-Datensatz so auflöst, dass er auf einen anderen Container verweist, der nicht mehr vorhanden ist. Ihre Anwendung muss Wiederholungsversuche verarbeiten und über eine Logik verfügen, um fehlerhafte Backends zu ignorieren.

  Weitere Informationen finden Sie unter [Die Serviceerkennung verwenden, um Amazon-ECS-Services mithilfe von DNS-Namen zu verbinden](service-discovery.md).
+ *Amazon VPC Lattice*

  Amazon VPC Lattice ist ein verwalteter Anwendungsnetzwerkservice, mit dem Amazon ECS-Kunden Anwendungen beobachten, sichern und überwachen können, die auf AWS Rechendiensten und Konten basieren VPCs, ohne ihren Code ändern zu müssen.

  VPC Lattice verwendet Zielgruppen, bei denen es sich um eine Sammlung von Rechenressourcen handelt. Diese Ziele führen Ihre Anwendung oder Ihren Service aus und können Amazon EC2 EC2-Instances, IP-Adressen, Lambda-Funktionen und Application Load Balancer sein. Durch die Zuordnung ihrer Amazon ECS-Services zu einer VPC Lattice-Zielgruppe können Kunden jetzt Amazon ECS-Aufgaben als IP-Ziele in VPC Lattice aktivieren. Amazon ECS registriert Aufgaben automatisch für die Zielgruppe von VPC Lattice, wenn Aufgaben für den registrierten Service gestartet werden.

  Weitere Informationen finden Sie unter [Verwenden Sie Amazon VPC Lattice, um Ihre Amazon ECS-Services zu verbinden, zu beobachten und zu sichern](ecs-vpc-lattice.md).

## Kompatibilitätstabelle für den Netzwerkmodus
<a name="interconnect-network-mode-compatibility-table"></a>

In der folgenden Tabelle wird die Kompatibilität zwischen diesen Optionen und den Aufgaben-Netzwerkmodi beschrieben. In der Tabelle bezieht sich „Client“ auf die Anwendung, die die Verbindungen innerhalb einer Amazon-ECS-Aufgabe herstellt.


****  

| Verbindungsoptionen | Überbrückt | `awsvpc` | Host | 
| --- | --- | --- | --- | 
| Serviceerkennung | Ja, setzt jedoch voraus, dass Clients die SRV-Einträge im DNS ohne hostPort kennen. | Ja | Ja, setzt jedoch voraus, dass Clients die SRV-Einträge im DNS ohne hostPort kennen. | 
| Service Connect | Ja | Ja | Nein | 
| VPC-Gitter | Ja | Ja | Ja | 

# Verwenden von Service Connect, um Amazon-ECS-Services mit Kurznamen zu verbinden
<a name="service-connect"></a>

Amazon ECS Service Connect ermöglicht die Verwaltung der service-to-service Kommunikation als Amazon ECS-Konfiguration. Es erstellt sowohl die Serviceerkennung, als auch ein Service Mesh in Amazon ECS. Dies stellt die vollständige Konfiguration in jedem Service bereit, den Sie mithilfe von Servicebereitstellungen verwalten, eine einheitliche Methode zum Verweisen auf Ihre Services in Namespaces, die nicht von der VPC-DNS-Konfiguration abhängt, sowie standardisierte Metriken und Protokolle zur Überwachung aller Ihrer Anwendungen. Service Connect verbindet nur Services miteinander.

Das folgende Diagramm zeigt ein Beispiel für ein Service-Connect-Netzwerk mit 2 Subnetzen in der VPC und 2 Services. Ein Client-Service, der WordPress mit einer Aufgabe in jedem Subnetz ausgeführt wird. Ein Serverservice, der MySQL mit 1 Aufgabe in jedem Subnetz ausführt. Beide Services sind hochverfügbar und widerstandsfähig gegenüber Aufgaben- und Availability-Zone-Problemen, da jeder Service mehrere Aufgaben ausführt, die auf zwei Subnetze verteilt sind. Die durchgezogenen Pfeile zeigen eine Verbindung von WordPress zu MySQL. Zum Beispiel ein `mysql --host=mysql` CLI-Befehl, der innerhalb des WordPress Containers in der Aufgabe mit der IP-Adresse ausgeführt wird`172.31.16.1`. Der Befehl verwendet den Kurznamen `mysql` auf dem Standardport für MySQL. Dieser Name und dieser Port stellen eine Verbindung zum Service-Connect-Proxy in derselben Aufgabe her. Der Proxy in der WordPress Aufgabe verwendet Round-Robin-Load Balancing und alle früheren Fehlerinformationen bei der Ausreißererkennung, um auszuwählen, zu welcher MySQL-Aufgabe eine Verbindung hergestellt werden soll. Wie die ausgefüllten Pfeile im Diagramm zeigen, stellt der Proxy eine Verbindung mit dem zweiten Proxy in der MySQL-Aufgabe mit der IP-Adresse `172.31.16.2` her. Der zweite Proxy stellt in derselben Aufgabe eine Verbindung zum lokalen MySQL-Server her. Beide Proxys melden die Verbindungsleistung, die in Diagrammen in den Amazon ECS- und CloudWatch Amazon-Konsolen sichtbar ist, sodass Sie Leistungskennzahlen von allen Arten von Anwendungen auf dieselbe Weise abrufen können.

![\[Beispiel für ein Service-Connect-Netzwerk mit minimalen HA-Services\]](http://docs.aws.amazon.com/de_de/AmazonECS/latest/developerguide/images/serviceconnect.png)


Die folgenden Begriffe werden mit Service Connect verwendet.

**Port-Name**  
Die Konfiguration der Amazon-ECS-Aufgabendefinition, die einer bestimmten Portzuordnung einen Namen zuweist. Diese Konfiguration wird nur von Amazon ECS Service Connect verwendet.

**Client-Alias**  
Die Amazon-ECS-Service-Konfiguration, die die im Endpunkt verwendete Portnummer zuweist. Darüber hinaus kann der Client-Alias den DNS-Namen des Endpunkts zuweisen und den Erkennungsnamen überschreiben. Wenn im Amazon-ECS-Service kein Erkennungsname angegeben ist, überschreibt der Client-Aliasname den Portnamen als Endpunktnamen. Beispiele für Endpunkte finden Sie in der Definition von *Endpunkt*. Einem Amazon-ECS-Service können mehrere Client-Aliase zugewiesen werden. Diese Konfiguration wird nur von Amazon ECS Service Connect verwendet.

**Erkennungsname**  
Der optionale Zwischenname, den Sie für einen bestimmten Port aus der Aufgabendefinition erstellen können. Dieser Name wird verwendet, um einen AWS Cloud Map Service zu erstellen. Wenn dieser Name nicht angegeben wird, wird der Portname aus der Aufgabendefinition verwendet. Einem bestimmten Port und Amazon-ECS-Service können mehrere Erkennungsnamen zugewiesen werden. Diese Konfiguration wird nur von Amazon ECS Service Connect verwendet.  
AWS Cloud Map Dienstnamen müssen innerhalb eines Namespaces eindeutig sein. Aufgrund dieser Einschränkung können Sie für eine bestimmte Aufgabendefinition in jedem Namespace nur eine Service-Connect-Konfiguration ohne Erkennungsnamen haben.

**Endpunkt**  
Die URL zum Herstellen einer Verbindung mit einer API oder Website. Die URL enthält das Protokoll, einen DNS-Namen und den Port. Für weitere Informationen über Endpunkte im Allgemeinen siehe [Endpunkt](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html#endpoint) im *AWS -Glossary* in der Allgemeine Amazon Web Services-Referenz.  
Service Connect erstellt Endpunkte, die eine Verbindung zu Amazon-ECS-Services herstellen, und konfiguriert die Aufgaben in Amazon-ECS-Services, um eine Verbindung zu den Endpunkten herzustellen. Die URL enthält das Protokoll, einen DNS-Namen und den Port. Sie wählen das Protokoll und den Portnamen in der Aufgabendefinition aus, da der Port mit der Anwendung übereinstimmen muss, die sich im Container-Image befindet. Im Service wählen Sie jeden Port nach Namen aus und können den DNS-Namen zuweisen. Wenn Sie in der Amazon-ECS-Servicekonfiguration keinen DNS-Namen angeben, wird standardmäßig der Portname aus der Aufgabendefinition verwendet. Ein Service-Connect-Endpunkt könnte beispielsweise `http://blog:80`, `grpc://checkout:8080` oder `http://_db.production.internal:99` sein.

**Service-Connect-Service**  
Die Konfiguration eines einzelnen Endpunkts in einem Amazon-ECS-Service. Dies ist ein Teil der Service Connect-Konfiguration, bestehend aus einer einzelnen Zeile in der **Service Connect and discovery name configuration** (Service-Connect- und Erkennungsnamen-Konfiguration) in der Konsole oder einem Objekt in der `services`-Liste in der JSON-Konfiguration eines Amazon ECS-Service. Diese Konfiguration wird nur von Amazon ECS Service Connect verwendet.  
Weitere Informationen finden Sie [ServiceConnectService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ServiceConnectService.html)in der Amazon Elastic Container Service API-Referenz.

**Namespace**  
Der Kurzname oder der vollständige Amazon Resource Name (ARN) des AWS Cloud Map Namespaces zur Verwendung mit Service Connect. Der Namespace muss mit dem Amazon ECS-Service und -Cluster identisch AWS-Region sein. Der Typ des AWS Cloud Map Namespaces in hat keinen Einfluss auf Service Connect. Bei dem Namespace kann es sich um einen Namespace handeln, der AWS-Konto mit AWS Resource Access Manager Ihnen gemeinsam genutzt AWS RAM wird und in AWS-Regionen verfügbar AWS RAM ist. Weitere Informationen über geteilte Namespaces finden Sie unter [Kontoübergreifende Freigabe von AWS Cloud Map -Namespaces](https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html) im *Entwicklerhandbuch für AWS Cloud Map *.  
Service Connect verwendet den AWS Cloud Map Namespace als logische Gruppierung von Amazon ECS-Aufgaben, die miteinander kommunizieren. Jeder Amazon-ECS-Service kann nur einem Namespace angehören. Die Services innerhalb eines Namespaces können auf verschiedene Amazon-ECS-Cluster innerhalb derselben AWS-Region verteilt werden. Wenn es sich bei dem Namespace um einen gemeinsam genutzten Namespace handelt, können die Services auf die AWS-Konten des Namespace-Besitzers und des Namespace-Verbrauchers verteilt werden. Sie können Services nach beliebigen Kriterien frei organisieren.

**Client-Service**  
Ein Service, der eine Netzwerk-Client-Anwendung ausführt. Für diesen Service muss ein Namespace konfiguriert sein. Jede Aufgabe im Service kann alle Endpunkte im Namespace über einen Service-Connect-Proxy-Container erkennen und eine Verbindung zu diesen herstellen.  
Wenn einer Ihrer Container in der Aufgabe sich mit dem Endpunkt eines Services in einem Namespace verbinden muss, wählen Sie einen Client-Service. Wenn eine Frontend-, Reverse-Proxy- oder Load-Balancer-Anwendung externen Datenverkehr über andere Methoden empfängt, z. B. von Elastic Load Balancing, könnte sie diese Art von Service-Connect-Konfiguration verwenden.

**Client-Server-Service**  
Ein Amazon-ECS-Service, der eine Netzwerk- oder Webservice-Anwendung ausführt. Für diesen Service müssen ein Namespace und mindestens ein Endpunkt konfiguriert sein. Jede Aufgabe im Service ist über die Endpunkte erreichbar. Der Service-Connect-Proxy-Container überwacht den Namen und Port des Endpunkts, um Datenverkehr an die App-Container in der Aufgabe weiterzuleiten.  
Wenn einer der Container einen Port für Netzwerkdatenverkehr bereitstellt und überwacht, wählen Sie einen Client-Server-Service aus. Diese Anwendungen müssen keine Verbindung zu anderen Client-Server-Services im selben Namespace herstellen, aber die Client-Konfiguration ist erforderlich. Ein Backend, eine Middleware, eine Unternehmensebene oder die meisten Microservices würden diesen Typ von Service-Connect-Konfiguration verwenden. Wenn Sie möchten, dass eine Frontend-, Reverse Proxy- oder Load-Balancer-Anwendung Datenverkehr von anderen Services empfängt, die mit Service Connect im selben Namespace konfiguriert sind, sollten diese Services diese Art der Service-Connect-Konfiguration verwenden.

Das Service-Connect-Feature erstellt ein virtuelles Netzwerk verwandter Services. Die gleiche Service-Konfiguration kann über mehrere verschiedene Namespaces hinweg verwendet werden, um unabhängige, aber identische Anwendungssätze auszuführen. Service Connect definiert den Proxy-Container im Amazon-ECS-Service. Auf diese Weise kann dieselbe Aufgabendefinition verwendet werden, um identische Anwendungen in unterschiedlichen Namespaces mit unterschiedlichen Service-Connect-Konfigurationen auszuführen. Jede Aufgabe, die der Service erstellt, führt in der Aufgabe einen Proxy-Container aus.

Service Connect ist für Verbindungen zwischen Amazon-ECS-Services innerhalb desselben Namespaces geeignet. Für die folgenden Anwendungen müssen Sie eine zusätzliche Verbindungsmethode verwenden, um eine Verbindung zu einem Amazon-ECS-Service herzustellen, der mit Service Connect konfiguriert ist:
+ Aufgaben, die in anderen Namespaces konfiguriert sind
+ Aufgaben, die nicht für Service Connect konfiguriert sind
+ Andere Anwendungen außerhalb von Amazon ECS

Diese Anwendungen können eine Verbindung über den Service-Connect-Proxy herstellen, aber keine Service-Connect-Endpunktnamen auflösen.

Damit diese Anwendungen die IP-Adressen von Amazon-ECS-Aufgaben auflösen können, müssen Sie eine andere Verbindungsmethode verwenden. 

**Topics**
+ [Preisgestaltung](#service-connect-pricing)
+ [Komponenten von Amazon ECS Service Connect](service-connect-concepts-deploy.md)
+ [Überblick über die Konfiguration von Amazon ECS Service Connect](service-connect-concepts.md)
+ [Amazon ECS Service Connect mit gemeinsam genutzten AWS Cloud Map Namespaces](service-connect-shared-namespaces.md)
+ [Amazon ECS Service Connect-Zugriffsprotokolle](service-connect-envoy-access-logs.md)
+ [Datenverkehr von Amazon ECS Service Connect verschlüsseln](service-connect-tls.md)
+ [Konfiguration von Amazon ECS Service Connect mit dem AWS CLI](create-service-connect.md)

## Preisgestaltung
<a name="service-connect-pricing"></a>
+ Die Preise für Amazon ECS Service Connect hängen davon ab, ob Sie Amazon EC2 EC2-Infrastruktur zum Hosten Ihrer containerisierten Workloads verwenden AWS Fargate . Bei Verwendung von Amazon ECS auf AWS Outposts folgt die Preisgestaltung demselben Modell, das verwendet wird, wenn Sie Amazon EC2 direkt verwenden. Weitere Informationen finden Sie unter [Amazon-ECS-Preise](https://aws.amazon.com/ecs/pricing).
+ Für die Nutzung von Amazon ECS Service Connect fallen keine zusätzlichen Gebühren an.
+ Für die AWS Cloud Map Nutzung durch Service Connect fallen keine zusätzlichen Gebühren an.
+ Kunden zahlen für Rechenressourcen, die von Amazon ECS Service Connect genutzt werden, einschließlich vCPU und Arbeitsspeicher. Da der Agent von Amazon ECS Service Connect innerhalb einer Kundenaufgabe ausgeführt wird, fallen für dessen Ausführung keine zusätzlichen Gebühren an. Die Aufgabenressourcen werden zwischen dem Kunden-Workload und dem Agenten von Amazon ECS Service Connect aufgeteilt.
+ Bei der Nutzung der Datenverkehrsverschlüsselungsfunktion von Amazon ECS Service Connect zahlen Kunden für die von ihnen erstellte private Zertifizierungsstelle und für jedes ausgestellte TLS-Zertifikat. AWS Private CA Weitere Details finden Sie unter [AWS Private Certificate Authority -Preise](https://aws.amazon.com/private-ca/pricing/). Um die monatlichen Kosten von TLS-Zertifikaten abzuschätzen, müssen Kunden die Anzahl der Amazon-ECS-Services kennen, für die TLS aktiviert ist, diese Zahl mit den Zertifikatskosten multiplizieren und dann mit sechs multiplizieren. Da Amazon ECS Service Connect TLS-Zertifikate automatisch alle fünf Tage rotiert, werden pro Amazon-ECS-Service im Durchschnitt sechs Zertifikate pro Monat ausgestellt.

# Komponenten von Amazon ECS Service Connect
<a name="service-connect-concepts-deploy"></a>

Bei der Verwendung von Amazon ECS Service Connect konfigurieren Sie jeden Amazon-ECS-Service entweder so, dass er eine Serveranwendung ausführt, die Netzwerkanfragen empfängt (Client-Server-Service), oder dass er eine Client-Anwendung ausführt, die die Anfragen stellt (Client-Service).

Wenn Sie sich auf die Verwendung von Service Connect vorbereiten, beginnen Sie mit einem Client-Server-Service. Sie können eine Service-Connect-Konfiguration zu einem neuen Service oder einem vorhandenen Service hinzufügen. Amazon ECS erstellt einen Service-Connect-Endpunkt im Namespace. Amazon ECS erstellt außerdem eine neue Bereitstellung im Service, um die derzeit ausgeführten Aufgaben zu ersetzen.

Vorhandene Aufgaben und andere Anwendungen können weiterhin eine Verbindung zu vorhandenen Endpunkten und externen Anwendungen herstellen. Wenn ein Client-Server-Service Aufgaben durch Aufskalieren hinzufügt, werden neue Verbindungen von Clients sofort zwischen allen Aufgaben verteilt. Wenn ein Client-Server-Service aktualisiert wird, werden neue Verbindungen von Clients sofort zwischen allen Aufgaben der neuen Version verteilt.

Vorhandene Aufgaben können nicht aufgelöst werden und keine Verbindung zum neuen Endpunkt herstellen. Nur neue Aufgaben, die über eine Service-Connect-Konfiguration im selben Namespace verfügen und die nach dieser Bereitstellung ausgeführt werden, können diesen Endpunkt auflösen und eine Verbindung zu ihm herstellen. 

Das bedeutet, dass der Betreiber der Client-Anwendung bestimmt, wann sich die Konfiguration seiner Anwendung ändert. Allerdings kann der Betreiber der Server-Anwendung seine Konfiguration jederzeit ändern. Die Liste der Endpunkte im Namespace kann sich jedes Mal ändern, wenn ein Service im Namespace bereitgestellt wird. Bestehende Aufgaben und Ersatzaufgaben verhalten sich weiterhin genauso wie nach der letzten Bereitstellung.

Betrachten Sie die folgenden Beispiele:

Gehen Sie zunächst davon aus, dass Sie eine Anwendung erstellen, die in einer einzigen AWS CloudFormation Vorlage und einem einzigen CloudFormation Stapel für das öffentliche Internet verfügbar ist. Die öffentliche Erkennung und Erreichbarkeit sollte zuletzt erstellt werden CloudFormation, einschließlich des Frontend-Client-Dienstes. Die Services müssen in dieser Reihenfolge erstellt werden, um einen Zeitraum zu verhindern, in dem der Frontend-Client-Service ausgeführt wird und öffentlich verfügbar ist, ein Backend jedoch nicht. Dadurch wird verhindert, dass während dieses Zeitraums Fehlermeldungen an die Öffentlichkeit gesendet werden. In müssen Sie das verwenden AWS CloudFormation, `dependsOn` um darauf hinzuweisen CloudFormation , dass mehrere Amazon ECS-Services nicht parallel oder gleichzeitig ausgeführt werden können. Sie sollten das `dependsOn` zum Frontend-Client-Service für jeden Backend-Client-Server-Service hinzufügen, mit dem die Client-Aufgaben eine Verbindung herstellen.

Nehmen Sie zweitens an, dass ein Frontend-Service ohne Service-Connect-Konfiguration vorhanden ist. Die Aufgaben stellen eine Verbindung zu einem vorhandenen Backend-Service her. Fügen Sie dem Backend-Service zuerst eine Client-Server-Service-Connect-Konfiguration hinzu, und verwenden Sie denselben Namen im **DNS** oder `clientAlias`, den das Frontend verwendet. Dadurch wird eine neue Bereitstellung erstellt, d. h. alle Bereitstellungs-Rollback-Erkennung oder andere Methoden AWS-Managementkonsole AWS CLI, AWS SDKs um den Backend-Service rückgängig zu machen und auf die vorherige Bereitstellung und Konfiguration zurückzusetzen. Wenn Sie mit der Leistung und dem Verhalten des Backend-Service zufrieden sind, fügen Sie dem Frontend-Service eine Client- oder Client-Server-Service-Connect-Konfiguration hinzu. Nur die Aufgaben in der neuen Bereitstellung verwenden den Service-Connect-Proxy, der diesen neuen Aufgaben hinzugefügt wurde. Wenn Sie Probleme mit dieser Konfiguration haben, können Sie ein Rollback durchführen und zu Ihrer vorherigen Konfiguration zurückkehren, indem Sie die Rollback-Erkennung für die Bereitstellung oder AWS-Managementkonsole, AWS SDKs und andere Methoden verwenden AWS CLI, um den Back-End-Dienst rückgängig zu machen und auf die vorherige Bereitstellung und Konfiguration zurückzusetzen. Wenn Sie anstelle von Service Connect ein anderes Serviceerkennungssystem verwenden, das auf DNS basiert, beginnen alle Frontend- oder Client-Anwendungen mit der Verwendung neuer Endpunkte und geänderter Endpunktkonfigurationen, nachdem der lokale DNS-Cache abgelaufen ist, was normalerweise mehrere Stunden dauert.

## Netzwerk
<a name="service-connect-concepts-network"></a>

In der Standardkonfiguration lauscht der Service-Connect-Proxy auf dem `containerPort` aus der Port-Zuordnung in der Aufgabendefinition. Ihre Sicherheitsgruppenregeln müssen eingehenden (ingress) Datenverkehr zu diesem Port von den Subnetzen zulassen, in denen Clients ausgeführt werden.

Auch wenn Sie in der Service-Connect-Service-Konfiguration eine Portnummer festlegen, ändert sich dadurch nicht der Port für den Client-Server-Service, den der Service-Connect-Proxy überwacht. Wenn Sie diese Portnummer festlegen, ändert Amazon ECS den Port des Endpunkts, mit dem die Client-Services eine Verbindung herstellen, auf dem Service-Connect-Proxy innerhalb dieser Aufgaben. Der Proxy im Client-Service stellt über den `containerPort` eine Verbindung mit dem Proxy im Client-Server-Service her.

Wenn Sie den Port ändern möchten, den der Service-Connect-Proxy überwacht, ändern Sie den `ingressPortOverride` in der Service-Connect-Konfiguration des Client-Server-Service. Wenn Sie diese Portnummer ändern, müssen Sie eingehenden Datenverkehr auf diesem Port zulassen, der vom Datenverkehr zu diesem Service verwendet wird.

Datenverkehr, den Ihre Anwendungen an Amazon-ECS-Services senden, die für Service Connect konfiguriert sind, erfordern, dass die Amazon VPC und die Subnetze über Routing-Tabellenregeln und Netzwerk-ACL-Regeln verfügen, die die von Ihnen verwendeten `containerPort`- und `ingressPortOverride`-Portnummern zulassen.

 Sie können Service Connect verwenden, um Datenverkehr zwischen diesen zu senden VPCs. Für beide gelten dieselben Anforderungen für Routingtabellen ACLs, Regeln, Netzwerk und Sicherheitsgruppen VPCs.

Beispielsweise erstellen zwei Cluster Aufgaben auf unterschiedlichen Ebenen VPCs. Ein Service in jedem Cluster ist so konfiguriert, dass er denselben Namespace verwendet. Die Anwendungen in diesen beiden Services können jeden Endpunkt im Namespace ohne VPC-DNS-Konfiguration auflösen. Die Proxys können jedoch keine Verbindung herstellen, es sei denn, die VPC-Peering-, VPC- oder Subnetz-Routentabellen und das VPC-Netzwerk ACLs lassen den Verkehr auf den und den Portnummern zu. `containerPort` `ingressPortOverride`

Für Aufgaben, die den `bridge`-Netzwerkmodus verwenden, müssen Sie eine Sicherheitsgruppe mit einer Regel für eingehenden Datenverkehr erstellen, die Datenverkehr im oberen dynamischen Portbereich zulässt. Weisen Sie dann die Sicherheitsgruppe allen EC2-Instances im Service-Connect-Cluster zu.

## Service-Connect-Proxy
<a name="service-connect-concepts-proxy"></a>

Wenn Sie einen Service mit Service-Connect-Konfiguration erstellen oder aktualisieren, fügt Amazon ECS jeder neuen Aufgabe einen neuen Container hinzu, wenn diese gestartet wird. Dieses Nutzungsmuster eines separaten Containers wird als `sidecar` bezeichnet. Dieser Container ist in der Aufgabendefinition nicht enthalten und Sie können ihn nicht konfigurieren. Amazon ECS verwaltet die Konfiguration dieses Containers im Service. Dadurch können Sie dieselben Aufgabendefinitionen für mehrere Services, Namespaces und Aufgaben ohne Service Connect wiederverwenden.

**Proxyressourcen**
+ Für Aufgabendefinitionen müssen Sie die Parameter für CPU und Arbeitsspeicher festlegen. 

  Wir empfehlen, die Aufgaben-CPU und den Arbeitsspeicher für den Service-Connect-Proxy-Container um 256 CPU-Einheiten und mindestens 64 MiB Arbeitsspeicher zu erweitern. Auf AWS -Fargate beträgt die niedrigste Speichermenge, die Sie einstellen können, 512 MB Speicher. In Amazon EC2 ist Arbeitsspeicher für die Aufgabendefinition erforderlich.
+ Für den Service legen Sie die Protokollkonfiguration in der Service-Connect-Konfiguration fest.
+ Wenn Sie erwarten, dass die Aufgaben in diesem Service bei ihrer Spitzenlast mehr als 500 Anfragen pro Sekunde erhalten, empfehlen wir, Ihre Aufgaben-CPU in dieser Aufgabendefinition für den Service-Connect-Proxy-Container um 512 CPU-Einheiten zu erweitern.
+ Wenn Sie mehr als 100 Service-Connect-Services im Namespace oder insgesamt 2 000 Aufgaben für alle Amazon-ECS-Services im Namespace erstellen möchten, empfehlen wir, den Aufgabenspeicher für den Service-Connect-Proxy-Container um 128 MiB zu erweitern. Sie sollten dies in jeder Aufgabendefinition tun, die von allen Amazon-ECS-Services im Namespace verwendet wird.

**Proxykonfiguration**  
Ihre Anwendungen verbinden sich mit dem Proxy im Beiwagen-Container in derselben Aufgabe, in der sich die Anwendung befindet. Amazon ECS konfiguriert die Aufgabe und die Container so, dass Anwendungen nur dann eine Verbindung zum Proxy herstellen, wenn die Anwendung mit den Endpunktnamen im selben Namespace verbunden ist. Der gesamte verbleibende Datenverkehr verwendet den Proxy nicht. Der andere Datenverkehr umfasst IP-Adressen in derselben VPC, AWS Dienstendpunkte und externen Datenverkehr.

**Lastausgleich**  
Service Connect konfiguriert den Proxy so, dass er die Round-Robin-Strategie für das Load Balancing zwischen den Aufgaben in einem Service-Connect-Endpunkt verwendet. Der lokale Proxy, der sich in der Aufgabe befindet, von der die Verbindung stammt, wählt eine der Aufgaben im Client-Server-Service aus, der den Endpunkt bereitstellt.  
*Stellen Sie sich zum Beispiel eine Aufgabe vor, die WordPress in einem Dienst ausgeführt wird, der als *Client-Dienst* in einem Namespace namens local konfiguriert ist.* Es gibt einen weiteren Service mit 2 Aufgaben, die die MySQL-Datenbank ausführen. Dieser Service ist so konfiguriert, dass er einen Endpunkt namens `mysql` bereitstellt, der über Service Connect im selben Namespace aufgerufen wird. In der WordPress Aufgabe stellt die WordPress Anwendung mithilfe des Endpunktnamens eine Verbindung zur Datenbank her. Verbindungen zu diesem Namen werden an den Proxy weitergeleitet, der in einem Sidecar-Container in derselben Aufgabe ausgeführt wird. Anschließend kann der Proxy mithilfe der Round-Robin-Strategie eine Verbindung zu einer der MySQL-Aufgaben herstellen.  
Strategien für das Load Balancing: Round-Robin

**Ausreißererkennung**  
Dieses Feature verwendet Daten, die dem Proxy über frühere fehlgeschlagene Verbindungen vorliegen, um zu verhindern, dass neue Verbindungen an die Hosts gesendet werden, bei denen Verbindungen fehlgeschlagen sind. Service Connect konfiguriert das Feature zur Erkennung von Ausreißern des Proxys für passive Zustandsprüfungen.  
Anhand des vorigen Beispiels kann der Proxy eine Verbindung zu beiden der MySQL-Aufgaben herstellen. Wenn der Proxy mehrere Verbindungen zu einer bestimmten MySQL-Aufgabe hergestellt hat und 5 oder mehr der Verbindungen in den letzten 30 Sekunden fehlgeschlagen sind, vermeidet der Proxy diese MySQL-Aufgabe für 30 bis 300 Sekunden.

**Erneute Versuche**  
Service Connect konfiguriert den Proxy so, dass Verbindungen, die den Proxy passieren und fehlschlagen, erneut versucht werden, und beim zweiten Versuch wird vermieden, den Host der vorherigen Verbindung zu verwenden. Dadurch wird sichergestellt, dass jede Verbindung über Service Connect nicht aus einmaligen Gründen fehlschlägt.  
Anzahl der Wiederholungen: 2

**Zeitüberschreitung**  
Service Connect konfiguriert den Proxy so, dass er eine maximale Zeitspanne auf die Antwort Ihrer Client-Server-Anwendungen wartet. Der Standardwert für das Timeout beträgt 15 Sekunden, kann jedoch aktualisiert werden.  
Optionale Parameter  
**idleTimeout** – Die Zeit in Sekunden, für die eine Verbindung aktiv bleibt, wenn sie sich im Leerlauf befindet. Ein Wert von `0` deaktiviert `idleTimeout`.  
Der Standard-`idleTimeout` für `HTTP`/`HTTP2`/`GRPC` beträgt 5 Minuten.  
Der Standard-`idleTimeout` für `TCP` beträgt 1 Stunde.  
**perRequestTimeout**‐ Die Wartezeit, bis der Upstream pro Anfrage mit einer vollständigen Antwort antwortet. Ein Wert von `0` schaltet `perRequestTimeout` aus. Dies kann nur festgelegt werden, wenn das `appProtocol` für Anwendungs-Container `HTTP`/`HTTP2`/`GRPC` ist. Die Standardeinstellung ist 15 Sekunden.  
Wenn `idleTimeout` auf eine Zeit festgelegt ist, die kürzer als `perRequestTimeout` ist, wird die Verbindung geschlossen, wenn `idleTimeout` und nicht `perRequestTimeout` erreicht ist.

## Überlegungen
<a name="service-connect-considerations"></a>

Beachten Sie Folgendes, wenn Sie Service Connect verwenden.
+ Aufgaben, die in Fargate ausgeführt werden, müssen Fargate Linux Plattformversion `1.4.0` oder höher verwenden, um Service Connect verwenden zu können.
+ Die Amazon-ECS-Agentenversion auf der Container-Instance muss `1.67.2` oder höher sein.
+ Container Instances müssen die Amazon-ECS-optimierte AMI-Version für Amazon Linux 2023 `20230428` oder höher oder die Amazon-ECS-optimierte AMI-Version für Amazon Linux 2 `2.0.20221115` ausführen, um Service Connect nutzen zu können. Diese Versionen verfügen zusätzlich zum Amazon-ECS-Container-Agenten über den Service-Connect-Agenten. Weitere Informationen zum Service Connect-Agenten finden Sie unter [Amazon ECS Service Connect Agent](https://github.com/aws/amazon-ecs-service-connect-agent) unter GitHub.
+ Container-Instances müssen über die `ecs:Poll`-Berechtigung für die Ressource `arn:aws:ecs:region:0123456789012:task-set/cluster/*` verfügen. Wenn Sie die `ecsInstanceRole` verwenden, müssen Sie keine zusätzlichen Berechtigungen hinzufügen. Die `AmazonEC2ContainerServiceforEC2Role`-verwaltete Richtlinie verfügt über die erforderlichen Berechtigungen. Weitere Informationen finden Sie unter [IAM-Rolle für Amazon-ECS-Container-Instance](instance_IAM_role.md).
+ Aufgaben, die den `bridge`-Netzwerkmodus verwenden und Service Connect verwenden, unterstützen den Container-Definitionsparameter `hostname` nicht.
+ Aufgabendefinitionen müssen das zu verwendende Speicherlimit für Service Connect festlegen. Weitere Informationen finden Sie unter [Service-Connect-Proxy](#service-connect-concepts-proxy).
+ Aufgabendefinitionen, die Container-Speicherlimits festlegen, werden nicht unterstützt.

  Sie können Container-Speicherlimits für Ihre Container festlegen, aber Sie müssen das Aufgaben-Speicherlimit auf eine Zahl festlegen, die größer ist als die Summe der Container-Speicherlimits. Die zusätzliche CPU und der zusätzliche Arbeitsspeicher in den Aufgabenlimits, die nicht in den Containerlimits zugewiesen sind, werden vom Service-Connect-Proxy-Container und anderen Containern verwendet, die keine Containerlimits festlegen. Weitere Informationen finden Sie unter [Service-Connect-Proxy](#service-connect-concepts-proxy).
+ Sie können Service Connect so konfigurieren, dass jeder AWS Cloud Map Namespace in derselben Region verwendet wird, der sich entweder in derselben Region befindet AWS-Konto oder von Ihnen AWS-Konto gemeinsam genutzt wird. AWS Resource Access Manager Weitere Informationen zur Verwendung von geteilten Namespaces finden Sie unter [Amazon ECS Service Connect mit gemeinsam genutzten AWS Cloud Map Namespaces](service-connect-shared-namespaces.md).
+ Jeder Service kann nur zu einem Namespace gehören.
+ Nur die Aufgaben, die Services erstellen, werden unterstützt. 
+ Alle Endpunkte müssen innerhalb eines Namespace eindeutig sein.
+ Alle Erkennungsnamen müssen in einem Namespace eindeutig sein.
+ Sie müssen bestehende Services neu bereitstellen, bevor die Anwendungen neue Endpunkte auflösen können. Neue Endpunkte, die dem Namespace nach der letzten Bereitstellung hinzugefügt werden, werden nicht zur Aufgabenkonfiguration hinzugefügt. Weitere Informationen finden Sie unter [Komponenten von Amazon ECS Service Connect](#service-connect-concepts-deploy).
+ Service Connect löscht keine Namespaces, wenn Cluster gelöscht werden. Sie müssen Namespaces in löschen. AWS Cloud Map
+ Der Application-Load-Balancer-Datenverkehr wird standardmäßig im `awsvpc`-Netzwerkmodus über den Service-Connect-Agent weitergeleitet. Wenn Sie möchten, dass Datenverkehr, der nicht von Services stammt, den Service-Connect-Agenten umgeht, verwenden Sie den `[ingressPortOverride](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ServiceConnectService.html)`-Parameter in Ihrer Service-Konfiguration für Service-Connect.
+ Service Connect mit TLS unterstützt den `bridge`-Netzwerkmodus nicht. Nur der Netzwerkmodus `awsvpc` wird unterstützt.
+ Im `awsvpc` Modus leitet der Service Connect-Proxy den Datenverkehr `127.0.0.1` für Dienste in IPv4 Nur-Only- und Dual-Stack-Konfigurationen an den IPv4 Localhost weiter. Bei Diensten in der IPv6 Nur-Konfiguration leitet der Proxy den Datenverkehr an den Localhost weiter. IPv6 `::1` Wir empfehlen, Ihre Anwendungen so zu konfigurieren, dass beide Localhosts empfangen werden, um ein reibungsloses Erlebnis zu gewährleisten, wenn ein Dienst von der Konfiguration „Nur“ oder einer IPv4 Dual-Stack-Konfiguration auf „Nur“ aktualisiert wird. IPv6 Weitere Informationen erhalten Sie unter [Netzwerkoptionen für Amazon-ECS-Aufgaben für EC2](task-networking.md) und [Netzwerkoptionen für Amazon-ECS-Aufgaben für Fargate](fargate-task-networking.md).

**Service Connect unterstützt Folgendes nicht:**
+ Windows-Container
+ HTTP 1.0
+ Eigenständige Aufgaben
+ Dienste, die die Bereitstellungstypen „ blue/green Powered by“ und „Extern“ verwenden CodeDeploy 
+ `External`-Container-Instances für Amazon ECS Anywhere werden nicht in Service Connect unterstützt.
+ PPv2
+ FIPS-Modus

# Überblick über die Konfiguration von Amazon ECS Service Connect
<a name="service-connect-concepts"></a>

Wenn Sie Service Connect verwenden, müssen Sie Parameter in Ihren Ressourcen konfigurieren. 

Die folgende Tabelle beschreibt die Konfigurationsparameter für die Amazon-ECS-Ressourcen.


| Parameter-Speicherort | Anwendungstyp | Description | Erforderlich | 
| --- | --- | --- | --- | 
| Aufgabendefinition | Client | Für Service Connect in Client-Aufgabendefinitionen sind keine Änderungen verfügbar. | – | 
| Aufgabendefinition | Client-Server | Server müssen name-Felder zu Ports in den portMappings von Containern hinzufügen. Weitere Informationen finden Sie unter [portMappings](task_definition_parameters.md#ContainerDefinition-portMappings). | Ja | 
| Aufgabendefinition | Client-Server | Server können optional ein Anwendungsprotokoll (z. B. HTTP) bereitstellen, um protokollspezifische Metriken für ihre Serveranwendungen zu erhalten (z. B. HTTP 5xx). | Nein | 
| Service-Definition | Client | Client-Services müssen eine serviceConnectConfiguration hinzufügen, um den beizutretenden Namespace zu konfigurieren. Dieser Namespace muss alle Server-Services enthalten, die dieser Service erkennen muss. Weitere Informationen finden Sie unter [serviceConnectConfiguration](service_definition_parameters.md#Service-serviceConnectConfiguration). | Ja | 
| Service-Definition | Client-Server | Server-Services müssen eine serviceConnectConfiguration hinzufügen, um die DNS-Namen, Portnummern und den Namespace zu konfigurieren, über den der Service verfügbar ist. Weitere Informationen finden Sie unter [serviceConnectConfiguration](service_definition_parameters.md#Service-serviceConnectConfiguration). | Ja | 
| Cluster | Client | Cluster können einen standardmäßigen Service-Connect-Namespace hinzufügen. Neue Services im Cluster erben den Namespace, wenn Service Connect in einem Service konfiguriert ist.  | Nein | 
| Cluster | Client-Server | Für Service Connect in Clustern gibt es keine Änderungen, die sich auf Server-Services beziehen. Server-Aufgabendefinitionen und -Services müssen die entsprechende Konfiguration festlegen. | – | 

**Übersicht der Schritte zum Konfigurieren von Service Connect**  
 Die folgenden Schritte liefern einen Überblick über die Konfiguration von Service Connect.

**Wichtig**  
 Service Connect erstellt AWS Cloud Map Dienste in Ihrem Konto. Das Ändern dieser AWS Cloud Map Ressourcen durch manuelles Ändern von registering/deregistering Instanzen, Ändern von Instanzattributen oder Löschen eines Dienstes kann zu unerwartetem Verhalten bei Ihrem Anwendungsdatenverkehr oder nachfolgenden Bereitstellungen führen.
 Service Connect unterstützt keine Links in der Aufgabendefinition.

1. Fügen Sie Portnamen zu den Portzuordnungen in Ihren Aufgabendefinitionen hinzu. Außerdem können Sie das Layer-7-Protokoll der Anwendung identifizieren, um zusätzliche Metriken zu erhalten.

1. Erstellen Sie einen Cluster mit einem AWS Cloud Map Namespace, verwenden Sie einen gemeinsam genutzten Namespace oder erstellen Sie den Namespace separat. Für eine einfache Organisation erstellen Sie einen Cluster mit dem Namen, den Sie für den Namespace möchten, und geben Sie den gleichen Namen für den Namespace an. In diesem Fall erstellt Amazon ECS einen neuen HTTP-Namespace mit der erforderlichen Konfiguration. Service Connect verwendet oder erstellt keine DNS-gehosteten Zonen in Amazon Route 53.

1. Konfigurieren Sie Services, um Service-Connect-Endpunkte innerhalb des Namespace zu erstellen.

1. Stellen Sie Services bereit, um die Endpunkte zu erstellen. Amazon ECS fügt jeder Aufgabe einen Service-Connect-Proxy-Container hinzu und erstellt die Service-Connect-Endpunkte in AWS Cloud Map. Dieser Container ist in der Aufgabendefinition nicht konfiguriert, und die Aufgabendefinition kann ohne Änderung wiederverwendet werden, um mehrere Services im selben Namespace oder in mehreren Namespaces zu erstellen.

1. Stellen Sie Client-Anwendungen als Services bereit, um eine Verbindung zu den Endpunkten herzustellen. Amazon ECS verbindet diese mit den Service-Connect-Endpunkten über den Service-Connect-Proxy in jeder Aufgabe.

   Anwendungen verwenden den Proxy nur, um sich mit Service-Connect-Endpunkten zu verbinden. Es gibt keine zusätzliche Konfiguration für die Verwendung des Proxys. Der Proxy führt Round-Robin-Load-Balancing, die Erkennung von Ausreißern und Wiederholungsversuche durch. Weitere Informationen zum Proxy finden Sie unter [Service-Connect-Proxy](service-connect-concepts-deploy.md#service-connect-concepts-proxy).

1. Überwachen Sie den Verkehr über den Service Connect-Proxy in Amazon CloudWatch.

## Cluster-Konfiguration
<a name="service-connect-concepts-cluster-defaults"></a>

Sie können einen Standard-Namespace für Service Connect festlegen wenn Sie den Cluster erstellen oder aktualisieren. Der Namespace-Name, den Sie standardmäßig angeben, kann sich entweder im selben AWS-Region AND-Konto oder im selben Namen befinden AWS-Region und von einem anderen AWS-Konto Benutzer gemeinsam genutzt werden. AWS Resource Access Manager

Wenn Sie einen Cluster erstellen und einen Standard-Service-Connect-Namespace angeben, wartet der Cluster im `PROVISIONING`-Status, während Amazon ECS den Namespace erstellt. Im Status des Clusters sehen Sie einen `attachment`, der den Status des Namespace anzeigt. Anlagen werden standardmäßig nicht in der angezeigt. Sie müssen sie hinzufügen AWS CLI, um sie `--include ATTACHMENTS` zu sehen.

Wenn Sie einen Namespace verwenden möchten, der mit Ihnen gemeinsam genutzt wird AWS RAM, geben Sie den Amazon-Ressourcennamen (ARN) des Namespaces in der Cluster-Konfiguration an. AWS-Konto Weitere Informationen zu gemeinsam genutzten AWS Cloud Map Namespaces finden Sie unter. [Amazon ECS Service Connect mit gemeinsam genutzten AWS Cloud Map Namespaces](service-connect-shared-namespaces.md)

## Service-Konfiguration
<a name="service-connect-concepts-config"></a>

Service Connect ist so konzipiert, dass nur ein Minimum an Konfiguration erforderlich ist. Sie müssen für jede Portzuordnung, die Sie mit Service Connect verwenden möchten, in der Aufgabendefinition einen Namen festlegen. Im Dienst müssen Sie Service Connect aktivieren und entweder einen Namespace in Ihrem AWS-Konto oder einen gemeinsam genutzten Namespace auswählen, um einen Client-Dienst einzurichten. Um einen Client-Server-Service zu erstellen, müssen Sie eine einzelne Service-Connect-Service-Konfiguration hinzufügen, die dem Namen einer der Portzuordnungen entspricht. Amazon ECS verwendet die Portnummer und den Portnamen aus der Aufgabendefinition erneut, um den Service-Connect-Service und -Endpunkt zu definieren. Um diese Werte zu überschreiben, können Sie die anderen Parameter **Discovery** (Erkennung), **DNS** und **Port** in der Konsole oder `discoveryName` bzw. `clientAliases` in der Amazon-ECS-API verwenden.

## Erstkonfiguration des Health Checks
<a name="service-connect-concepts-health-check"></a>

Service Connect stellt sicher, dass die Aufgaben ordnungsgemäß funktionieren, bevor der Datenverkehr an sie weitergeleitet wird. Wenn eine Aufgabe gestartet wird (während der Bereitstellung, Skalierung oder Ersetzung), überwacht Service Connect den Zustand Ihrer Aufgabe, um sicherzustellen, dass sie bereit ist, Datenverkehr anzunehmen. Sie müssen in Ihrer Aufgabendefinition Integritätsprüfungen für den Essential-Container definieren, um dieses Verhalten zu aktivieren.

Das Verhalten der ersten Zustandsprüfung berücksichtigt mögliche Verzögerungen beim Erreichen des Status, in dem eine Aufgabe bereit ist, Datenverkehr anzunehmen:
+ Wenn es sich bei einer Aufgabe um eine solche handelt`HEALTHY`, ist sie sofort für den Traffic verfügbar.
+ Wenn der Zustand einer Aufgabe zutrifft`UNKNOWN`, folgt Service Connect der Konfiguration der Container-Integritätsprüfung (siehe[Gesundheitscheck](task_definition_parameters.md#container_definition_healthcheck)) der wesentlichen Container der Aufgabe, um ein Timeout zu berechnen, bis zu`8 minutes`, bevor sie für den Verkehr verfügbar gemacht wird, auch wenn sie bestehen bleibt`UNKNOWN`.
+ Wenn es sich bei einer Aufgabe um eine Aufgabe handelt`UNHEALTHY`, kann Amazon ECS Ersatzaufgaben starten. Wenn keine fehlerfreien Aufgaben verfügbar sind, wird Ihre Bereitstellung je nach Konfiguration Ihres Dienstes möglicherweise zurückgesetzt.

Für den gesamten laufenden Verkehr verwendet Service Connect passive Zustandsprüfungen, die auf der Erkennung von Ausreißern basieren, um den Verkehr effizient weiterzuleiten.

# Amazon ECS Service Connect mit gemeinsam genutzten AWS Cloud Map Namespaces
<a name="service-connect-shared-namespaces"></a>

Amazon ECS Service Connect unterstützt die Verwendung gemeinsam genutzter AWS Cloud Map Namespaces für mehrere AWS-Konten innerhalb desselben. AWS-Region Mit dieser Funktion können Sie verteilte Anwendungen erstellen, in denen Dienste, die auf verschiedenen Geräten ausgeführt werden, sich gegenseitig erkennen und über Service Connect miteinander kommunizieren AWS-Konten können. Gemeinsam genutzte Namespaces werden mithilfe von AWS Resource Access Manager (AWS RAM) verwaltet, was eine sichere kontenübergreifende gemeinsame Nutzung von Ressourcen ermöglicht. *Weitere Informationen zu gemeinsam genutzten Namespaces finden Sie unter [Kontenübergreifende Namespaces Sharing im AWS Cloud Map Developer](https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html) Guide.AWS Cloud Map *

**Wichtig**  
Sie müssen die `AWSRAMPermissionCloudMapECSFullPermission`-verwaltete Berechtigung verwenden, um den Namespace gemeinsam zu nutzen, damit Service Connect ordnungsgemäß mit dem Namespace funktioniert.

Wenn Sie gemeinsam genutzte AWS Cloud Map Namespaces mit Service Connect verwenden, AWS-Konten können Dienste von mehreren am selben Dienstnamespace teilnehmen. Dies ist besonders nützlich für Organisationen mit mehreren Benutzern AWS-Konten , die die service-to-service Kommunikation über Kontogrenzen hinweg aufrechterhalten und gleichzeitig Sicherheit und Isolation wahren müssen.

**Anmerkung**  
Um mit Diensten zu kommunizieren, die sich in verschiedenen Versionen befinden VPCs, müssen Sie die Inter-VPC-Konnektivität konfigurieren. Dies kann mithilfe einer VPC-Peering-Verbindung erreicht werden. Weitere Informationen finden Sie unter [Erstellen oder Löschen einer VPC-Peering-Verbindung](https://docs.aws.amazon.com/vpc/latest/peering/create-vpc-peering-connection.html) im *VPC-Peering-Handbuch für Amazon Virtual Private Cloud*.

# Verwenden von gemeinsam genutzten AWS Cloud Map Namespaces mit Amazon ECS Service Connect
<a name="service-connect-shared-namespaces-setup"></a>

Das Einrichten von gemeinsam genutzten AWS Cloud Map Namespaces für Service Connect umfasst die folgenden Schritte: Namespace-Besitzer erstellt den Namespace, Besitzer teilt ihn über AWS Resource Access Manager (AWS RAM), Verbraucher akzeptiert die Ressourcenfreigabe und Consumer konfiguriert Service Connect für die Verwendung des gemeinsam genutzten Namespaces.

## Schritt 1: Erstellen Sie den Namespace AWS Cloud Map
<a name="service-connect-shared-namespaces-create"></a>

Der Namespace-Besitzer erstellt einen AWS Cloud Map Namespace, der mit anderen Konten geteilt wird.

**Um einen Namespace für die gemeinsame Nutzung mit dem zu erstellen AWS-Managementkonsole**

1. Öffnen Sie die AWS Cloud Map Konsole unter. [https://console.aws.amazon.com/cloudmap/](https://console.aws.amazon.com/cloudmap/)

1. Wählen Sie **Create namespace (Namespace erstellen)** aus.

1. Geben Sie einen **Namespace-Namen** ein. Dieser Name wird von den Services aller teilnehmenden Konten verwendet.

1. Wählen Sie für **Namespace-Typ** den für Ihren Anwendungsfall geeigneten Typ aus:
   + **API-Aufrufe** – HTTP-Namespaces für die Serviceerkennung ohne DNS-Funktionalität.
   + **API-Aufrufe und DNS-Abfragen in VPCs** ‐ Private DNS-Namespaces zur Serviceerkennung mit privaten DNS-Abfragen in einer VPC.
   + **API-Aufrufe und öffentliche DNS-Abfragen** – Öffentliche DNS-Namespaces für die Serviceerkennung mit öffentlichen DNS-Abfragen.

1.  Wählen Sie **Create namespace (Namespace erstellen)** aus.

## Schritt 2: Teilen Sie den Namespace mit AWS RAM
<a name="service-connect-shared-namespaces-share"></a>

Der Namespace-Besitzer verwendet AWS RAM , um den Namespace mit anderen zu teilen. AWS-Konten

**Um einen Namespace über die Konsole gemeinsam zu nutzen AWS RAM**

1. Öffnen Sie die AWS RAM Konsole unter. [https://console.aws.amazon.com/ram/](https://console.aws.amazon.com/ram/)

1. Wählen Sie **Create resource share (Ressourcenfreigabe erstellen)** aus.

1. Geben Sie für **Name** einen beschreibenden Namen für die Ressourcenfreigabe ein.

1. Gehen Sie im Abschnitt **Ressourcen** wie folgt vor:

   1. Wählen Sie für **Ressourcentyp** die Option **Cloud Map Namespaces** aus.

   1. Wählen Sie den Namespace aus, den Sie im vorherigen Schritt erstellt haben.

1. Geben Sie im Abschnitt **Verwaltete Berechtigungen** die Option **AWSRAMPermissionCloudMapECSFullPermission** an.
**Wichtig**  
Sie müssen die `AWSRAMPermissionCloudMapECSFullPermission`-verwaltete Berechtigung verwenden, um den Namespace gemeinsam zu nutzen, damit Service Connect ordnungsgemäß mit dem Namespace funktioniert.

1. Geben Sie im Abschnitt **Prinzipale** die AWS-Konten an, mit denen Sie den Namespace teilen möchten. Sie können ein Konto IDs oder eine Organisationseinheit eingeben IDs.

1. Wählen Sie **Create resource share (Ressourcenfreigabe erstellen)** aus.

## Schritt 3: Die Ressourcenfreigabe akzeptieren
<a name="service-connect-shared-namespaces-accept"></a>

Namespace-Verbraucherkonten müssen die Einladung zur Ressourcenfreigabe annehmen, um den gemeinsam genutzten Namespace verwenden zu können.

**Um eine Einladung zur gemeinsamen Nutzung von Ressourcen über die AWS RAM Konsole anzunehmen**

1. Öffnen Sie im Kundenkonto die AWS RAM Konsole unter [https://console.aws.amazon.com/ram/](https://console.aws.amazon.com/ram/).

1. Wählen Sie im Navigationsbereich **Für mich freigegeben** und dann **Ressourcenfreigaben**.

1. Wählen Sie die Einladung zur Ressourcenfreigabe aus und dann **Ressourcenfreigabe akzeptieren**.

1. Notieren Sie sich nach dem Akzeptieren den gemeinsamen Namespace-ARN aus den Ressourcendetails. Sie verwenden diesen ARN bei der Konfiguration von Service-Connect-Services.

## Schritt 4: Konfigurieren Sie einen Amazon-ECS-Service mit dem gemeinsamen Namespace
<a name="service-connect-shared-namespaces-configure"></a>

Nachdem der Namespace-Verbraucher den gemeinsam genutzten Namespace akzeptiert hat, kann er Amazon-ECS-Services so konfigurieren, dass sie den gemeinsam genutzten Namespace verwenden. Die Konfiguration ähnelt der Verwendung eines regulären Namespaces, Sie müssen jedoch den Namespace-ARN anstelle des Namens angeben. Ein detailliertes Verfahren zur Service-Erstellung finden Sie unter [Erstellung einer Amazon-ECS-Bereitstellung mit fortlaufender Aktualisierung](create-service-console-v2.md).

**Um einen Dienst mit einem gemeinsamen Namespace zu erstellen, verwenden Sie AWS-Managementkonsole**

1. Öffnen Sie die Konsole auf [https://console.aws.amazon.com/ecs/Version 2.](https://console.aws.amazon.com/ecs/v2)

1. Wählen Sie auf der **Cluster**-Seite den Cluster aus, in dem Sie den Service erstellen möchten.

1. Wählen Sie unter **Services** die Option **Erstellen** aus.

1. Nachdem Sie je nach Arbeitslast weitere Details eingegeben haben, wählen Sie im Abschnitt **Service Connect** die Option **Service Connect verwenden** aus.

1. Geben Sie für **Namespace** den vollständigen ARN des gemeinsam genutzten Namespace ein.

   Das ARN-Format ist: `arn:aws:servicediscovery:region:account-id:namespace/namespace-id`

1. Konfigurieren Sie die übrigen Service Connect-Einstellungen nach Bedarf für Ihren Service-Typ (Client oder Client-Server).

1. Schließen Sie den Service-Erstellungsprozess ab.

Sie können Dienste auch mithilfe AWS SDKs von AWS CLI oder konfigurieren, indem Sie den gemeinsamen Namespace-ARN im `namespace` Parameter von angeben. `serviceConnectConfiguration`

```
aws ecs create-service \
    --cluster my-cluster \
    --service-name my-service \
    --task-definition my-task-def \
    --service-connect-configuration '{
        "enabled": true,
        "namespace": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-abcdef1234567890",
        "services": [{
            "portName": "web",
            "discoveryName": "my-service",
            "clientAliases": [{
                "port": 80,
                "dnsName": "my-service"
            }]
        }]
    }'
```

## Überlegungen
<a name="service-connect-shared-namespaces-considerations"></a>

Beachten Sie Folgendes, wenn Sie gemeinsam genutzte AWS Cloud Map Namespaces mit Service Connect verwenden:
+ AWS RAM muss an dem Ort verfügbar sein, AWS-Region an dem Sie den gemeinsam genutzten Namespace verwenden möchten.
+ Der gemeinsam genutzte Namespace muss sich in demselben befinden AWS-Region wie Ihre Amazon ECS-Services und -Cluster.
+ Sie müssen den Namespace-ARN und nicht die ID verwenden, wenn Sie Service Connect mit einem gemeinsam genutzten Namespace konfigurieren.
+ Alle Namespace-Typen werden unterstützt: HTTP-, Private DNS- und Öffentliche DNS-Namespaces.
+ Wenn der Zugriff auf einen gemeinsam genutzten Namespace gesperrt wird, schlagen Amazon-ECS-Vorgänge fehl, die eine Interaktion mit dem Namespace erfordern (wie `CreateService`, `UpdateService` und `ListServicesByNamespace`). Weitere Informationen zur Fehlerbehebung bei gemeinsam genutzten Namespaces finden Sie unter [Fehlerbehebung bei Amazon ECS Service Connect mit gemeinsam genutzten AWS Cloud Map Namespaces](service-connect-shared-namespaces-troubleshooting.md).
+ Informationen zur Serviceerkennung mithilfe von DNS-Abfragen in einem gemeinsam genutzten privaten DNS-Namespace:
  + Der Namespace-Besitzer muss `create-vpc-association-authorization` mit der ID der privaten gehosteten Zone, die dem Namespace zugeordnet ist, und der VPC des Verbrauchers aufrufen.

    ```
    aws route53 create-vpc-association-authorization --hosted-zone-id Z1234567890ABC --vpc VPCRegion=us-east-1,VPCId=vpc-12345678
    ```
  + Der Namespace-Besitzer muss `associate-vpc-with-hosted-zone` mit der ID der privaten gehosteten Zone aufrufen.

    ```
    aws route53 associate-vpc-with-hosted-zone --hosted-zone-id Z1234567890ABC --vpc VPCRegion=us-east-1,VPCId=vpc-12345678
    ```
+ Nur der Namespace-Besitzer kann die Ressourcenfreigabe verwalten.
+ Namespace-Benutzer können Services innerhalb des gemeinsam genutzten Namespaces erstellen und verwalten, den Namespace selbst jedoch nicht ändern.
+ Erkennungsnamen müssen innerhalb des gemeinsam genutzten Namespaces eindeutig sein, unabhängig davon, welches Konto den Service erstellt.
+ Dienste im gemeinsam genutzten Namespace können Dienste von anderen AWS Konten, die Zugriff auf den Namespace haben, erkennen und eine Verbindung zu ihnen herstellen.
+ Wenn TLS für Service Connect aktiviert und ein gemeinsam genutzter Namespace verwendet wird, ist die AWS Private CA Zertifizierungsstelle (CA) auf den Namespace beschränkt. Wenn der Zugriff auf den gemeinsam genutzten Namespace gesperrt wird, wird der Zugriff auf die CA gestoppt.
+ Bei der Arbeit mit einem gemeinsam genutzten Namespace haben Namespace-Besitzer und -Verbraucher standardmäßig keinen Zugriff auf kontoübergreifende CloudWatch Amazon-Metriken. Target-Metriken werden nur für Konten veröffentlicht, die Kundenservices besitzen. Ein Konto, dem Kundendienste gehören, hat keinen Zugriff auf Messwerte, die von einem Konto empfangen wurden, das Client-Server-Dienste besitzt, und umgekehrt. Um kontoübergreifenden Zugriff auf Messwerte zu ermöglichen, richten Sie die kontenübergreifende Beobachtbarkeit ein. CloudWatch *Weitere Informationen zur Konfiguration der kontoübergreifenden Observability finden Sie unter [CloudWatch Accountübergreifende Observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html) im Amazon-Benutzerhandbuch. CloudWatch * Weitere Informationen zu den CloudWatch Metriken für Service Connect finden Sie unter[Amazon CloudWatch ECS-Metriken](available-metrics.md).

# Fehlerbehebung bei Amazon ECS Service Connect mit gemeinsam genutzten AWS Cloud Map Namespaces
<a name="service-connect-shared-namespaces-troubleshooting"></a>

Verwenden Sie die folgenden Informationen, um Probleme mit gemeinsam genutzten AWS Cloud Map Namespaces und Service Connect zu beheben. Weitere Informationen zum Auffinden von Fehlermeldungen finden Sie unter [Amazon-ECS-Fehlerbehebung](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/troubleshooting.html).

Fehlermeldungen im Zusammenhang mit Berechtigungsproblemen werden angezeigt, wenn Berechtigungen fehlen oder der Zugriff auf den Namespace gesperrt wurde. 

**Wichtig**  
Sie müssen die `AWSRAMPermissionCloudMapECSFullPermission`-verwaltete Berechtigung verwenden, um den Namespace gemeinsam zu nutzen, damit Service Connect ordnungsgemäß mit dem Namespace funktioniert.

Die Fehlermeldung wird in einem der folgenden Formate angezeigt:

Beim Aufrufen der Operation < OperationName > ist ein Fehler aufgetreten (ClientException): Der Benutzer: arn:aws:iam: :user/ ist nicht berechtigt,: < > für die Ressource: < > auszuführen, da keine ressourcenbasierte Richtlinie die Aktion < > ActionName zulässt ResourceArn ActionName <account-id><user-name>

Die folgenden Szenarien können zu einer Fehlermeldung in diesem Format führen:

**Fehler bei der Cluster-Erstellung oder -aktualisierung**  
Diese Probleme treten auf, wenn Amazon ECS-Operationen aufgrund `UpdateCluster` fehlender AWS Cloud Map Berechtigungen fehlschlagen `CreateCluster` oder fehlschlagen. Für die Operationen sind Berechtigungen für die folgenden AWS Cloud Map Aktionen erforderlich:  
+ `servicediscovery:GetNamespace`
Stellen Sie sicher, dass die Einladung zur Ressourcenfreigabe im Verbraucherkonto akzeptiert wurde und dass der richtige Namespace-ARN in der Service-Connect-Konfiguration verwendet wird.

**Fehler bei der Service-Erstellung oder -Aktualisierung**  
Diese Probleme treten auf, wenn Amazon ECS-Operationen aufgrund `UpdateService` fehlender AWS Cloud Map Berechtigungen fehlschlagen `CreateService` oder fehlschlagen. Für die Operationen sind Berechtigungen für die folgenden AWS Cloud Map Aktionen erforderlich:  
+ `servicediscovery:CreateService`
+ `servicediscovery:GetNamespace`
+ `servicediscovery:GetOperation` (zum Erstellen eines neuen AWS Cloud Map -Service)
+ `servicediscovery:GetService` (wenn ein AWS Cloud Map -Service bereits existiert)
Stellen Sie sicher, dass die Einladung zur Ressourcenfreigabe im Verbraucherkonto akzeptiert wurde und dass der richtige Namespace-ARN in der Service-Connect-Konfiguration verwendet wird.

**`ListServicesByNamespace`-Vorgang schlägt fehl**  
Dieses Problem tritt auf, wenn der `ListServicesByNamespace`-Vorgang von Amazon ECS fehlschlägt. Der Vorgang erfordert Berechtigungen für die folgenden AWS Cloud Map -Aktionen:  
+ `servicediscovery:GetNamespace`
So beheben Sie dieses Problem  
+ Stellen Sie sicher, dass das Verbraucherkonto über die `servicediscovery:GetNamespace`-Berechtigung verfügt.
+ Verwenden Sie beim Aufrufen der API den Namespace-ARN, nicht den Namen.
+ Stellen Sie sicher, dass die Ressourcenfreigabe aktiv ist und die Einladung akzeptiert wurde.

Benutzer: ist nicht berechtigt,: < ActionName > auf der Ressource: < ResourceArn > mit einer ausdrücklichen Ablehnung in einer identitätsbasierten Richtlinie auszuführen. <iam-user>

Die folgenden Szenarien können zu einer Fehlermeldung in diesem Format führen:

**Das Löschen des Services schlägt fehl und bleibt im `DRAINING`-Status hängen**  
Dieses Problem tritt auf, wenn `DeleteService`-Vorgänge von Amazon ECS aufgrund fehlender `servicediscovery:DeleteService`-Berechtigungen fehlschlagen, wenn der Zugriff auf den Namespace gesperrt wird. Der Service scheint zunächst erfolgreich gelöscht zu werden, bleibt aber im `DRAINING`-Status hängen. Die Fehlermeldung wird als Amazon-ECS-Service-Ereignis angezeigt.  
Um dieses Problem zu lösen, muss der Namespace-Besitzer den Namespace mit dem Verbraucherkonto teilen, damit das Löschen des Services abgeschlossen werden kann.

**Aufgaben im Service können nicht ausgeführt werden**  
Dieses Problem tritt auf, wenn Aufgaben aufgrund fehlender Berechtigungen nicht gestartet werden können. Die Fehlermeldung wird als Aufgabe-Beendet-Fehler angezeigt. Weitere Informationen finden Sie unter [Aufgabe-Beendet-Fehler in Amazon ECS beheben](resolve-stopped-errors.md).  
Die folgenden AWS Cloud Map Aktionen sind für die Ausführung einer Aufgabe erforderlich:  
+ `servicediscovery:GetOperation`
+ `servicediscovery:RegisterInstance`
Stellen Sie sicher, dass das Verbraucherkonto über die erforderlichen Berechtigungen verfügt und dass auf den gemeinsam genutzten Namespace zugegriffen werden kann.

**Aufgaben können nicht ordnungsgemäß angehalten werden oder bleiben im `DEACTIVATING`- oder `DEPROVISIONING`-Status hängen**  
Dieses Problem tritt auf, wenn sich Aufgaben während des Herunterfahrens aufgrund fehlender Berechtigungen nicht vom AWS Cloud Map Dienst abmelden können. Der Fehler wird als `statusReason` im Aufgabenanhang angezeigt, der über die `DescribeTasks`-API abgerufen werden kann. Weitere Informationen finden Sie [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html)in der *Amazon Elastic Container Service API-Referenz*.  
Die folgenden AWS Cloud Map Aktionen sind erforderlich, um eine Aufgabe zu beenden:  
+ `servicediscovery:DeregisterInstance`
+ `servicediscovery:GetOperation`
Wenn der Zugriff auf den gemeinsam genutzten Namespace gesperrt wird, können Aufgaben im `DEACTIVATING`- oder `DEPROVISIONING`-Status verbleiben, bis der Namespace-Zugriff wiederhergestellt ist. Bitten Sie den Namespace-Besitzer, den Zugriff auf den Namespace wiederherzustellen.

# Amazon ECS Service Connect-Zugriffsprotokolle
<a name="service-connect-envoy-access-logs"></a>

Amazon ECS Service Connect unterstützt Zugriffsprotokolle, um detaillierte Telemetriedaten zu einzelnen Anfragen bereitzustellen, die vom Service Connect-Proxy verarbeitet werden. Zugriffsprotokolle ergänzen bestehende Anwendungsprotokolle, indem sie Verkehrsmetadaten pro Anfrage wie HTTP-Methoden, Pfade, Antwortcodes, Flags und Zeitinformationen erfassen. Dies ermöglicht eine tiefere Beobachtung von Verkehrsmustern und Serviceinteraktionen auf Anforderungsebene für eine effektive Fehlerbehebung und Überwachung.

Um Zugriffsprotokolle zu aktivieren, geben Sie sowohl die als auch die `logConfiguration` `accessLogConfiguration` Objekte im Objekt an. `serviceConnectConfiguration` Sie können das Format der Protokolle konfigurieren und festlegen, ob die Protokolle Abfrageparameter in der enthalten sollen`accessLogConfiguration`. Die Protokolle werden von dem im angegebenen Protokolltreiber an die Zielprotokollgruppe übermittelt. `logConfiguration`

```
{
    "serviceConnectConfiguration": {
        "enabled": true,
        "namespace": "myapp.namespace",
        "services": [
            ...
        ],
        "logConfiguration": {
            "logDriver": "awslogs",
            "options": {
                "awslogs-group": "my-envoy-log-group",
                "awslogs-region": "us-west-2",
                "awslogs-stream-prefix": "myapp-envoy-logs"
            }
        },
         "accessLogConfiguration": {
            "format": "TEXT",
            "includeQueryParameters": "ENABLED" 
        }
    }
}
```

## Überlegungen
<a name="service-connect-envoy-access-logs-considerations"></a>

Beachten Sie Folgendes, wenn Sie den Zugriff auf Zugriffsprotokolle aktivieren
+ Sowohl Zugriffs- als auch Anwendungsprotokolle werden geschrieben`/dev/stdout`. Um Zugriffsprotokolle von Anwendungsprotokollen zu trennen, empfehlen wir, den `awsfirelens` Protokolltreiber mit einer benutzerdefinierten Fluent Bit Fluentd Konfiguration zu verwenden.
+  Wir empfehlen, den `awslogs` Protokolltreiber zu verwenden, um Anwendungs- und Zugriffsprotokolle an dasselbe CloudWatch Ziel zu senden.
+ Zugriffsprotokolle werden auf Fargate-Diensten unterstützt, die eine Plattformversion `1.4.0` und höher verwenden.
+ Abfrageparameter wie Anforderungs-IDs und Token sind standardmäßig aus den Zugriffsprotokollen ausgeschlossen. Um Abfrageparameter in Zugriffsprotokolle aufzunehmen, legen Sie `includeQueryParameters` den Wert auf fest`"ENABLED"`.

## Formate für Zugriffsprotokolle
<a name="service-connect-envoy-access-logs-formats"></a>

Zugriffsprotokolle können entweder in Wörterbüchern im JSON-Format oder in Zeichenketten im Textformat formatiert werden, wobei sich die unterstützten Befehlsoperatoren für verschiedene Arten von Zugriffsprotokollen unterscheiden.

### HTTP-Zugriffsprotokolle
<a name="service-connect-envoy-access-logs-formats-http"></a>

Die folgenden Befehlsoperatoren sind standardmäßig für HTTP-Logs enthalten:

------
#### [ Text ]

```
[%START_TIME%] "%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%"
%RESPONSE_CODE% %BYTES_RECEIVED% %BYTES_SENT% %DURATION%
%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% "%REQ(X-FORWARDED-FOR)%" "%REQ(USER-AGENT)%"
"%REQ(X-REQUEST-ID)%" "%REQ(:AUTHORITY)%" "%UPSTREAM_HOST%"\n
```

------
#### [ JSON ]

```
{
  "start_time": "%START_TIME%",
  "method": "%REQ(:METHOD)%",
  "path": "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%",
  "protocol": "%PROTOCOL%",
  "response_code": "%RESPONSE_CODE%",
  "bytes_received": "%BYTES_RECEIVED%",
  "bytes_sent": "%BYTES_SENT%",
  "duration_ms": "%DURATION%",
  "upstream_service_time": "%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%",
  "forwarded_for": "%REQ(X-FORWARDED-FOR)%",
  "user_agent": "%REQ(USER-AGENT)%",
  "request_id": "%REQ(X-REQUEST-ID)%",
  "authority": "%REQ(:AUTHORITY)%",
  "upstream_host": "%UPSTREAM_HOST%"
}
```

------

### HTTP2 Zugriffs-Logs
<a name="service-connect-envoy-access-logs-formats-http2"></a>

Zusätzlich zu den Befehlsoperatoren, die für HTTP-Logs enthalten sind, enthalten HTTP2 Logs standardmäßig den `%STREAM_ID%` Operator.

------
#### [ Text ]

```
[%START_TIME%] "%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%"
%RESPONSE_CODE% %BYTES_RECEIVED% %BYTES_SENT% %DURATION%
%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% "%REQ(X-FORWARDED-FOR)%" "%REQ(USER-AGENT)%"
"%REQ(X-REQUEST-ID)%" "%REQ(:AUTHORITY)%" "%UPSTREAM_HOST%" "%STREAM_ID%"\n
```

------
#### [ JSON ]

```
{
  "start_time": "%START_TIME%",
  "method": "%REQ(:METHOD)%",
  "path": "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%",
  "protocol": "%PROTOCOL%",
  "response_code": "%RESPONSE_CODE%",
  "bytes_received": "%BYTES_RECEIVED%",
  "bytes_sent": "%BYTES_SENT%",
  "duration": "%DURATION%",
  "upstream_service_time": "%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%",
  "forwarded_for": "%REQ(X-FORWARDED-FOR)%",
  "user_agent": "%REQ(USER-AGENT)%",
  "request_id": "%REQ(X-REQUEST-ID)%",
  "authority": "%REQ(:AUTHORITY)%",
  "upstream_host": "%UPSTREAM_HOST%",
  "stream_id": "%STREAM_ID%"
}
```

------

### gRPC-Zugriffsprotokolle
<a name="service-connect-envoy-access-logs-formats-grpc"></a>

Zusätzlich zu den Befehlsoperatoren, die für HTTP-Protokolle enthalten sind gRPC gRPC-Zugriffsprotokolle standardmäßig den `%GRPC_STATUS()%` Operator `%STREAM_ID%` and.

------
#### [ Text ]

```
[%START_TIME%] "%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%"
%RESPONSE_CODE% %GRPC_STATUS()% %BYTES_RECEIVED% %BYTES_SENT% %DURATION%
%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% "%REQ(X-FORWARDED-FOR)%" "%REQ(USER-AGENT)%"
"%REQ(X-REQUEST-ID)%" "%REQ(:AUTHORITY)%" "%UPSTREAM_HOST%" "%STREAM_ID%"\n
```

------
#### [ JSON ]

```
{
  "start_time": "%START_TIME%",
  "method": "%REQ(:METHOD)%",
  "path": "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%",
  "protocol": "%PROTOCOL%",
  "response_code": "%RESPONSE_CODE%",
  "grpc_status": "%GRPC_STATUS()%",
  "bytes_received": "%BYTES_RECEIVED%",
  "bytes_sent": "%BYTES_SENT%",
  "duration": "%DURATION%",
  "upstream_service_time": "%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%",
  "forwarded_for": "%REQ(X-FORWARDED-FOR)%",
  "user_agent": "%REQ(USER-AGENT)%",
  "request_id": "%REQ(X-REQUEST-ID)%",
  "authority": "%REQ(:AUTHORITY)%",
  "upstream_host": "%UPSTREAM_HOST%",
  "stream_id": "%STREAM_ID%"
}
```

------

### TCP-Zugriffsprotokolle
<a name="service-connect-envoy-access-logs-formats-tcp"></a>

Die folgenden Befehlsoperatoren sind standardmäßig in TCP-Zugriffsprotokollen enthalten:

------
#### [ Text ]

```
[%START_TIME%] %DOWNSTREAM_REMOTE_ADDRESS% %DOWNSTREAM_REMOTE_PORT% 
%BYTES_RECEIVED% %BYTES_SENT% %DURATION%  
%CONNECTION_TERMINATION_DETAILS% %CONNECTION_ID%\n
```

------
#### [ JSON ]

```
{
  "start_time": "%START_TIME%",
  "downstream_remote_address": "%DOWNSTREAM_REMOTE_ADDRESS%",
  "downstream_remote_port": "%DOWNSTREAM_REMOTE_PORT%",s
  "bytes_received": "%BYTES_RECEIVED%",
  "bytes_sent": "%BYTES_SENT%",
  "duration": "%DURATION%",
  "connection_termination_details": "%CONNECTION_TERMINATION_DETAILS%",
  "connection_id": %CONNECTION_ID%
}
```

------

Weitere Informationen zu diesen Befehlsoperatoren finden Sie unter [Befehlsoperatoren](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators) in der Envoy-Dokumentation.

# Zugriffsprotokolle für Amazon ECS Service Connect aktivieren
<a name="service-connect-access-logs-configuration"></a>

Zugriffsprotokolle sind für Amazon ECS-Services, die Service Connect verwenden, standardmäßig nicht aktiviert. Sie können Zugriffsprotokolle auf folgende Weise aktivieren.

## Aktivieren Sie Zugriffsprotokolle mit dem AWS CLI
<a name="service-connect-access-logs-configure-cli"></a>

Der folgende Befehl zeigt, wie Sie Zugriffsprotokolle für einen Amazon ECS-Service aktivieren können, AWS CLI indem Sie `accessLogConfiguration` bei der Erstellung des Service a angeben:

```
aws ecs create-service \
    --cluster my-cluster \
    --service-name my-service \
    --task-definition my-task-def \
    --service-connect-configuration '{
        "enabled": true,
        "namespace": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-abcdef1234567890",
        "services": [{
            "portName": "web",
            "discoveryName": "my-service",
            "clientAliases": [{
                "port": 80,
                "dnsName": "my-service"
            }]
        }],
        "logConfiguration": {
            "logDriver": "awslogs",
            "options": {
                "awslogs-group": "my-envoy-log-group",
                "awslogs-region": "us-west-2",
                "awslogs-stream-prefix": "myapp-envoy-logs"
            }
        },
         "accessLogConfiguration": {
            "format": "TEXT",
            "includeQueryParameters": "ENABLED" 
        }
    }'
```

## Aktivieren Sie die Zugriffsprotokolle mithilfe der Konsole
<a name="service-connect-access-logs-configure-console"></a>

Ein detailliertes Verfahren zur Service-Erstellung finden Sie unter [Erstellung einer Amazon-ECS-Bereitstellung mit fortlaufender Aktualisierung](create-service-console-v2.md).

**Um einen Dienst mit einem gemeinsam genutzten Namespace zu erstellen, verwenden Sie AWS-Managementkonsole**

1. Öffnen Sie die Konsole auf [https://console.aws.amazon.com/ecs/Version 2.](https://console.aws.amazon.com/ecs/v2)

1. Wählen Sie auf der **Cluster**-Seite den Cluster aus, in dem Sie den Service erstellen möchten.

1. Wählen Sie unter **Services** die Option **Erstellen** aus.

1. Nachdem Sie je nach Arbeitslast weitere Details eingegeben haben, wählen Sie im Abschnitt **Service Connect** die Option **Service Connect verwenden** aus.

1. Konfigurieren Sie die Service Connect-Einstellungen nach Bedarf für Ihren Diensttyp (Client oder Client-Server).

1. Erweitern Sie die Konfiguration des **Zugriffsprotokolls**. Wählen Sie als **Format** entweder **JSON** oder`TEXT`.

1. Um Abfrageparameter in Zugriffsprotokolle aufzunehmen, wählen Sie **Abfrageparameter einbeziehen** aus.

1. Schließen Sie den Service-Erstellungsprozess ab.

# Datenverkehr von Amazon ECS Service Connect verschlüsseln
<a name="service-connect-tls"></a>

Amazon ECS Service Connect unterstützt die automatische Verschlüsselung des Datenverkehrs mit Transport Layer Security (TLS)-Zertifikaten für Amazon ECS-Services. Wenn Sie Ihre Amazon-ECS-Services auf ein [AWS Private Certificate Authority (AWS Private CA)](https://docs.aws.amazon.com/privateca/latest/userguide/PcaWelcome.html) verweisen, stellt Amazon ECS automatisch TLS-Zertifikate zur Verschlüsselung des Datenverkehrs zwischen Ihren Services von Amazon ECS Service Connect bereit. Amazon ECS generiert, rotiert und verteilt TLS-Zertifikate, die für die Verschlüsselung des Datenverkehrs verwendet werden.

Die automatische Datenverkehrsverschlüsselung mit Service Connect nutzt branchenführende Verschlüsselungsfunktionen, um Ihre serviceübergreifende Kommunikation zu sichern, sodass Sie Ihre Sicherheitsanforderungen erfüllen können. Es unterstützt AWS Private Certificate Authority TLS-Zertifikate mit `256-bit ECDSA` und `2048-bit RSA` Verschlüsselung. Sie haben auch die volle Kontrolle über private Zertifikate und Signaturschlüssel, um die Compliance-Anforderungen zu erfüllen. Standardmäßig wird TLS 1.3 unterstützt, TLS 1.0 bis 1.2 werden jedoch nicht unterstützt. Service Connect unterstützt TLS 1.3 mit den folgenden Chiffren:
+ `TLS_AES_128_GCM_SHA256`
+ `TLS_AES_256_GCM_SHA384`
+ `TLS_CHACHA20_POLY1305_SHA256`

**Anmerkung**  
Um TLS 1.3 verwenden zu können, müssen Sie es auf dem Listener auf dem Ziel aktivieren.  
Nur eingehender und ausgehender Datenverkehr, der den Amazon-ECS-Agenten passiert, wird verschlüsselt.

## Zustandsprüfungen für Service Connect und Application Load Balancer
<a name="service-connect-tls-alb-healthchecks"></a>

Sie können Service Connect mit Application-Load-Balancer-Zustandsprüfungen und TLS-1.3-Verschlüsselung verwenden. 

### Application-Load-Balancer-Konfiguration
<a name="service-connect-tls-alb-config"></a>

Konfigurieren Sie den Application Load Balancer mit den folgenden Einstellungen:
+ Konfigurieren Sie einen TLS-Listener mit einer TLS 1.3-Sicherheitsrichtlinie (z. B. `ELBSecurityPolicy- TLS13 -1-2-2021-06`). Weitere Informationen finden Sie unter [Sicherheitsrichtlinien für Ihren Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/describe-ssl-policies.html). 
+ Erstellen Sie eine Zielgruppe mit folgenden Einstellungen:
  + Stellen Sie das Protokoll auf HTTPS ein.
  + Hängen Sie die Zielgruppe an den TLS-Listener an.
  + Konfigurieren Sie den Zustandsprüfungs-Port so, dass er dem Container-Port Ihres Service-Connect-Services entspricht

### Service-Connect-Konfiguration
<a name="service-connect-tls-sc-config"></a>

Konfigurieren Sie einen Service mit den folgenden Einstellungen.
+ Konfigurieren Sie den Service so, dass er den `awsvpc`-Netzwerkmodus verwendet, da der `bridge`-Netzwerkmodus nicht unterstützt wird.
+ Aktivieren Sie Service Connect für den Service.
+ Richten Sie die Load-Balancer-Konfiguration mit den folgenden Einstellungen ein:
  + Geben Sie die Zielgruppe an, die Sie für Ihren Application Load Balancer konfiguriert haben
  + Stellen Sie den Container-Port so ein, dass er dem Container-Port des TLS-Services von Service Connect entspricht
+ Vermeiden Sie es, `ingressPortOverride` für den Service einzustellen. Weitere Informationen finden Sie [ServiceConnectService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ServiceConnectService.html)in der *Amazon Elastic Container Service API-Referenz*.

### Überlegungen
<a name="service-connect-tls-alb-considerations"></a>

Beachten Sie bei der Verwendung von Application Load Balancer, TLS und Service Connect Folgendes:
+ Verwenden Sie den `awsvpc`-Netzwerkmodus anstelle des `bridge`-Netzwerkmodus für HTTPS-Zustandsprüfungen, wenn Sie Service Connect mit TLS-Verschlüsselung verwenden. HTTP-Zustandsprüfungen funktionieren weiterhin im `bridge`-Modus.
+ Konfigurieren Sie den Port für die Zustandsprüfung der Zielgruppe so, dass er dem Container-Port des Service-Connect-Services entspricht, nicht dem Standard-HTTPS-Port (443).

## AWS Private Certificate Authority Zertifikate und Service Connect
<a name="service-connect-tls-certificates"></a>

Sie benötigen die IAM-Rolle für die Infrastruktur. Weitere Informationen zu dieser Rolle finden Sie unter [Infrastruktur-IAM-Rolle für Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html                     ).

**AWS Private Certificate Authority Modi für Service Connect**

AWS Private Certificate Authority kann in zwei Modi ausgeführt werden: allgemein und kurzlebig.
+ Allzweck – Zertifikate, die mit einem beliebigen Ablaufdatum konfiguriert werden können.
+ Kurzlebig – Zertifikate mit einer maximalen Gültigkeitsdauer von sieben Tagen.

Amazon ECS unterstützt zwar beide Modi, wir empfehlen jedoch, kurzlebige Zertifikate zu verwenden. Standardmäßig rotieren Zertifikate alle fünf Tage, und der Betrieb im kurzlebigen Modus bietet erhebliche Kosteneinsparungen im Vergleich zu Allzweck-Zertifikaten.

Service Connect unterstützt den Widerruf von Zertifikaten nicht und nutzt stattdessen kurzlebige Zertifikate mit häufiger Zertifikatsrotation. Sie haben die Befugnis, die Rotationsfrequenz zu ändern und die Geheimnisse mithilfe der [verwalteten Rotation](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_managed.html) im [Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) zu deaktivieren oder zu löschen. Dies kann jedoch die folgenden möglichen Konsequenzen haben.
+ Kürzere Rotationsfrequenz ‐ Eine kürzere Rotationsfrequenz verursacht höhere Kosten AWS Private CA, da Secrets Manager AWS KMS und Auto Scaling einen erhöhten Arbeitsaufwand für die Rotation aufweisen.
+ Längere Rotationsfrequenz – Die Kommunikation Ihrer Anwendungen schlägt fehl, wenn die Rotationsfrequenz **sieben** Tage überschreitet.
+ Löschung des Geheimnisses – Das Löschen des Geheimnisses führt zu einem Fehler bei der Rotation und beeinträchtigt die Kommunikation mit den Kundenanwendungen.

Falls Ihre Geheimnisrotation fehlschlägt, wird ein `RotationFailed`-Ereignis in [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) veröffentlicht. Sie können auch einen [CloudWatchAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) für `RotationFailed` einrichten.

**Wichtig**  
Fügen Sie keine Replikatregionen zu Geheimnissen hinzu. Dadurch wird verhindert, dass Amazon ECS das Geheimnis löscht, da Amazon ECS nicht berechtigt ist, Regionen aus der Replikation zu entfernen. Wenn Sie die Replikation bereits hinzugefügt haben, führen Sie den folgenden Befehl aus.  

```
aws secretsmanager remove-regions-from-replication \
 --secret-id SecretId \
 --remove-replica-regions region-name
```

**Untergeordnete Zertifizierungsstellen**  
Sie können alle AWS Private CA, ob Stamm- oder untergeordnetes System, zu Service Connect TLS hinzufügen, um Endentitätszertifikate für die Dienste auszustellen. Der angegebene Emittent wird überall als Unterzeichner und Vertrauensanker behandelt. Sie können Endentitätszertifikate für verschiedene Teile Ihrer Anwendung von verschiedenen untergeordneten Stellen ausstellen. CAs Wenn Sie den verwenden AWS CLI, geben Sie den Amazon-Ressourcennamen (ARN) der Zertifizierungsstelle an, um die Vertrauenskette einzurichten.

**On-Premises-Zertifizierungsstellen**  
Um Ihre On-Premises-Zertifizierungsstelle zu verwenden, erstellen und konfigurieren Sie eine untergeordnete Zertifizierungsstelle in AWS Private Certificate Authority. Dadurch wird sichergestellt, dass alle TLS-Zertifikate, die für Ihre Amazon-ECS-Workloads ausgestellt wurden, die Vertrauenskette mit den Workloads teilen, die Sie On-Premises ausführen, und dass sie eine sichere Verbindung herstellen können.

**Wichtig**  
Fügen Sie das **erforderliche** Tag `AmazonECSManaged : true` zu Ihrem hinzu AWS Private CA. 

**Infrastructure as Code**  
Wenn Sie Service Connect TLS mit Infrastructure as Code (IaC)-Tools verwenden, ist es wichtig, dass Sie Ihre Abhängigkeiten korrekt konfigurieren, um Probleme zu vermeiden, z. B. wenn Services in der Entlastung hängen bleiben. Ihr AWS KMS Schlüssel, falls angegeben, Ihre IAM-Rolle und Ihre AWS Private CA Abhängigkeiten sollten nach Ihrem Amazon ECS-Service gelöscht werden.

Wenn der für Service Connect verwendete Namespace ein gemeinsam genutzter Namespace ist, können Sie wählen, ob Sie eine gemeinsam genutzte AWS Private CA Ressource verwenden möchten. Weitere Informationen finden Sie unter [Eine Richtlinie für den kontoübergreifenden Zugriff anhängen](https://docs.aws.amazon.com/privateca/latest/userguide/pca-ram.html) im *Benutzerhandbuch für AWS Private Certificate Authority *.

## Service Connect und Secrets Manager
<a name="service-connect-asm"></a>

**Bei Verwendung von Amazon ECS Service Connect mit TLS-Verschlüsselung interagiert der Service auf folgende Weise mit Secrets Manager:**  
Service Connect verwendet die bereitgestellte Infrastruktur-Rolle, um Geheimnisse in Secrets Manager zu erstellen. Diese Geheimnisse werden verwendet, um die zugehörigen privaten Schlüssel für Ihre TLS-Zertifikate zur Verschlüsselung des Datenverkehrs zwischen Ihren Service-Connect-Services zu speichern.

**Warnung**  
Die automatische Erstellung und Verwaltung dieser Geheimnisse durch Service Connect optimiert den Prozess der Implementierung der TLS-Verschlüsselung für Ihre Services. Es ist jedoch wichtig, sich der möglichen Sicherheitsauswirkungen bewusst zu sein. Andere IAM-Rollen, die Lesezugriff auf Secrets Manager haben, können möglicherweise auf diese automatisch erstellten Geheimnisse zugreifen. Dadurch könnte vertrauliches kryptografisches Material unbefugten Parteien zugänglich gemacht werden, wenn die Zugriffskontrollen nicht ordnungsgemäß konfiguriert sind.  
Befolgen Sie die folgenden bewährten Methoden, um dieses Risiko zu minimieren:  
Verwalten und beschränken Sie den Zugriff auf Secrets Manager sorgfältig, insbesondere für Geheimnisse, die von Service Connect erstellt wurden.
Prüfen Sie regelmäßig die IAM-Rollen und ihre Berechtigungen, um sicherzustellen, dass das Prinzip der geringsten Berechtigungen eingehalten wird.

Wenn Sie Secrets Manager Lesezugriff gewähren, sollten Sie erwägen, die von Service Connect erstellten privaten TLS-Schlüssel auszuschließen. Sie können dies tun, indem Sie in Ihren IAM-Richtlinien eine Bedingung verwenden, um Geheimnisse auszuschließen ARNs , die dem Muster entsprechen:

```
"arn:aws:secretsmanager:::secret:ecs-sc!"
```

Ein Beispiel für eine IAM-Richtlinie, die die `GetSecretValue`-Aktion allen Geheimnissen mit dem Präfix `ecs-sc!` verweigert:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "secretsmanager:GetSecretValue",
            "Resource": "arn:aws:secretsmanager:*:*:secret:ecs-sc!*"
        }
    ]
}
```

------

**Anmerkung**  
Dies ist ein allgemeines Beispiel, das möglicherweise an Ihren spezifischen Anwendungsfall und Ihre AWS Kontokonfiguration angepasst werden muss. Testen Sie Ihre IAM-Richtlinien immer gründlich, um sicherzustellen, dass sie den beabsichtigten Zugriff ermöglichen und gleichzeitig die Sicherheit gewährleisten.

Wenn Sie verstehen, wie Service Connect mit Secrets Manager interagiert, können Sie die Sicherheit Ihrer Amazon-ECS-Services besser verwalten und gleichzeitig die Vorteile der automatischen TLS-Verschlüsselung nutzen.

## Service Connect und AWS Key Management Service
<a name="service-connect-kms"></a>

Sie können [AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)damit Ihre Service Connect-Ressourcen ver- und entschlüsseln. AWS KMS ist ein von ihm verwalteter Dienst AWS , mit dem Sie kryptografische Schlüssel zum Schutz Ihrer Daten erstellen und verwalten können.

Bei der Verwendung AWS KMS mit Service Connect können Sie entweder einen AWS eigenen Schlüssel verwenden, der für Sie AWS verwaltet wird, oder Sie können einen vorhandenen AWS KMS Schlüssel wählen. Sie können auch [einen neuen AWS KMS Schlüssel zur Verwendung erstellen](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk).

**Verwendung Ihrer eigenen Verschlüsselungsschlüssel**  
Sie können Ihre eigenen Schlüsselmaterialien bereitstellen oder einen externen Schlüsselspeicher verwenden, indem Sie Ihren eigenen Schlüssel AWS Key Management Service importieren in AWS KMS verwenden und dann den Amazon-Ressourcennamen (ARN) dieses Schlüssels in Amazon ECS Service Connect angeben.

Im Folgenden finden Sie ein Beispiel AWS KMS für eine Richtlinie. Ersetzen Sie die *user input* Werte durch Ihre eigenen.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "id",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/role-name"
      },
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:GenerateDataKey",
        "kms:GenerateDataKeyPair"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Weitere Informationen finden über Schlüsselrichtlinien Sie unter [Erstellen einer Schlüsselrichtlinie](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html) im *Entwicklerhandbuch für AWS Key Management Service *.

**Anmerkung**  
Service Connect unterstützt nur symmetrische AWS KMS Verschlüsselungsschlüssel. Sie können keine andere Art von AWS KMS Schlüssel verwenden, um Ihre Service Connect-Ressourcen zu verschlüsseln. Hilfe bei der Bestimmung, ob es sich bei einem AWS KMS Schlüssel um einen symmetrischen Verschlüsselungsschlüssel handelt, finden Sie unter [Identifizieren asymmetrischer](https://docs.aws.amazon.com/kms/latest/developerguide/identify-key-types.html#identify-asymm-keys) KMS-Schlüssel.

*Weitere Informationen zu AWS Key Management Service symmetrischen Verschlüsselungsschlüsseln finden Sie unter [Symmetrische AWS KMS Verschlüsselungsschlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks) im Entwicklerhandbuch.AWS Key Management Service *

# Aktivieren von TLS für Amazon ECS Service Connect
<a name="enable-service-connect-tls"></a>

Sie aktivieren die Datenverkehrsverschlüsselung, wenn Sie einen Service-Connect-Service erstellen oder aktualisieren.

**Um die Verkehrsverschlüsselung für einen Dienst in einem vorhandenen Namespace zu aktivieren, verwenden Sie AWS-Managementkonsole**

1. Sie benötigen die IAM-Rolle für die Infrastruktur. Weitere Informationen zu dieser Rolle finden Sie unter [Infrastruktur-IAM-Rolle für Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html                     ).

1. Öffnen Sie die Konsole auf [https://console.aws.amazon.com/ecs/Version 2.](https://console.aws.amazon.com/ecs/v2)

1. Wählen Sie im Navigationsbereich **Namespaces** aus.

1. Wählen Sie den **Namespace** mit dem **Service** aus, für den Sie die Datenverkehrsverschlüsselung aktivieren möchten.

1. Wählen Sie den **Service** aus, für den Sie die Datenverkehrsverschlüsselung aktivieren möchten.

1. Wählen Sie in der oberen rechten Ecke **Service aktualisieren** und scrollen Sie nach unten zum Abschnitt Service Connect.

1. Wählen Sie unter Ihren Service-Informationen die Option **Datenverkehrsverschlüsselung aktivieren** aus, um TLS zu aktivieren.

1. Wählen Sie für die **TLS-Rolle für Service Connect** eine vorhandene Infrastruktur-IAM-Rolle aus oder erstellen Sie eine neue.

1. Wählen Sie für **Unterzeichnende Zertifizierungsstelle** eine bestehende Zertifizierungsstelle aus oder erstellen Sie eine neue.

   Weitere Informationen hierzu finden Sie unter [AWS Private Certificate Authority Zertifikate und Service Connect](service-connect-tls.md#service-connect-tls-certificates).

1. **Wählen Sie unter AWS KMS key Wählen** Sie einen AWS eigenen und verwalteten Schlüssel aus, oder Sie können einen anderen Schlüssel wählen. Sie können auch einen neuen Schlüssel erstellen.

Ein Beispiel für die Verwendung von AWS CLI zur Konfiguration von TLS für Ihren Dienst finden Sie unter[Konfiguration von Amazon ECS Service Connect mit dem AWS CLI](create-service-connect.md).

# Überprüfen, ob TLS für Amazon ECS Service Connect aktiviert ist
<a name="verify-tls-enabled"></a>

Service Connect initiiert TLS auf dem Service-Connect-Agenten und beendet es auf dem Zielagenten. Infolgedessen sieht der Anwendungscode niemals TLS-Interaktionen. Führen Sie die folgenden Schritte aus, um zu überprüfen, ob TLS aktiviert ist.

1. Fügen Sie die `openssl`-CLI in Ihr Anwendungs-Image ein.

1. Aktivieren Sie [ECS Exec](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html) auf Ihren Services, um über SSM eine Verbindung zu Ihren Aufgaben herzustellen. Sie können auch eine Amazon-EC2-Instance in derselben Amazon-VPC wie der Service starten.

1. Rufen Sie die IP und den Port einer Aufgabe von einem Service ab, den Sie verifizieren möchten. Sie können die IP-Adresse der Aufgabe in der AWS Cloud Map Konsole abrufen. Die Informationen befinden sich auf der Seite mit den Service-Details für den Namespace. 

1. Melden Sie sich wie im folgenden Beispiel mit `execute-command` bei einer Ihrer Aufgaben an. Melden Sie sich alternativ bei der in **Schritt** 2 erstellten Amazon-EC2-Instance an.

   ```
   $ aws ecs execute-command --cluster cluster-name \
       --task task-id  \
       --container container-name \
       --interactive \
       --command "/bin/sh"
   ```
**Anmerkung**  
Wenn Sie den DNS-Namen direkt aufrufen, wird das Zertifikat nicht angezeigt.

1. Verwenden Sie in der verbundenen Shell die `openssl`-CLI, um das an die Aufgabe angehängte Zertifikat zu überprüfen und anzuzeigen.

   Beispiel:

   ```
   openssl s_client -connect 10.0.147.43:6379 < /dev/null 2> /dev/null \ 
   | openssl x509 -noout -text
   ```

   Beispielantwort:

   ```
   Certificate:
       Data:
           Version: 3 (0x2)
           Serial Number:
               <serial-number>
           Signature Algorithm: ecdsa-with-SHA256
           Issuer: <issuer>
           Validity
               Not Before: Jan 23 21:38:12 2024 GMT
               Not After : Jan 30 22:38:12 2024 GMT
           Subject: <subject>
           Subject Public Key Info:
               Public Key Algorithm: id-ecPublicKey
                   Public-Key: (256 bit)
                   pub:
                       <pub>
                   ASN1 OID: prime256v1
                   NIST CURVE: P-256
           X509v3 extensions:
               X509v3 Subject Alternative Name:
                   DNS:redis.yelb-cftc
               X509v3 Basic Constraints:
                   CA:FALSE
               X509v3 Authority Key Identifier:
                   keyid:<key-id>
   
               X509v3 Subject Key Identifier:
                   1D:<id>
               X509v3 Key Usage: critical
                   Digital Signature, Key Encipherment
               X509v3 Extended Key Usage:
                   TLS Web Server Authentication, TLS Web Client Authentication
       Signature Algorithm: ecdsa-with-SHA256
           <hash>
   ```

# Konfiguration von Amazon ECS Service Connect mit dem AWS CLI
<a name="create-service-connect"></a>

Sie können mit der AWS CLI einen Amazon-ECS-Service mit einer Fargate-Aufgabe erstellen, die Service Connect verwendet.

**Anmerkung**  
Sie können Dual-Stack-Service-Endpunkte verwenden, um mit Amazon ECS über die AWS CLI SDKs, und die Amazon ECS-API sowohl über als auch IPv4 zu interagieren. IPv6 Weitere Informationen finden Sie unter [Verwenden von Dual-Stack-Endpunkten in Amazon ECS](dual-stack-endpoint.md).

## Voraussetzungen
<a name="create-service-connect-prereqs"></a>

Im Folgenden sind die Voraussetzungen für Service Connect aufgeführt:
+ Stellen Sie sicher, dass die neueste Version von installiert und konfiguriert AWS CLI ist. Weitere Informationen finden Sie unter [Installieren oder Aktualisierung auf die neueste Version der AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).
+ Ihr IAM-Benutzer besitzt die im [AmazonECS\$1 FullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonECS_FullAccess)-IAM-Richtlinienbeispiel angegebenen Berechtigungen.
+ Sie haben eine VPC, ein Subnetz, eine Routing-Tabelle und eine Sicherheitsgruppe zur Verwendung erstellt. Weitere Informationen finden Sie unter [Erstellen einer Virtual Private Cloud](get-set-up-for-amazon-ecs.md#create-a-vpc).
+ Sie verfügen über eine Aufgabenausführungsrolle mit dem Namen `ecsTaskExecutionRole` und die von `AmazonECSTaskExecutionRolePolicy` verwaltete Richtlinie ist der Rolle angefügt. Diese Rolle ermöglicht es Fargate, die NGINX-Anwendungsprotokolle und Service Connect-Proxyprotokolle in Amazon Logs zu schreiben. CloudWatch Weitere Informationen finden Sie unter [Erstellen der -Aufgabenausführungsrolle](task_execution_IAM_role.md#create-task-execution-role).

## Schritt 1: Cluster erstellen
<a name="create-service-connect-cluster"></a>

Führen Sie die folgenden Schritte aus, um Ihren Amazon-ECS-Cluster und -Namespace zu erstellen.

**Um den Amazon ECS-Cluster und den AWS Cloud Map Namespace zu erstellen**

1. Erstellen Sie einen zu verwendenden Amazon-ECS-Cluster mit dem Namen `tutorial`. Der Parameter `--service-connect-defaults` legt den Standard-Namespace des Clusters fest. In der Beispielausgabe ist in diesem Konto `service-connect` kein AWS Cloud Map Namespace mit dem Namen vorhanden AWS-Region, weshalb der Namespace von Amazon ECS erstellt wurde. Der Namespace wird in AWS Cloud Map im Konto erstellt und ist mit allen anderen Namespaces sichtbar. Verwenden Sie daher einen Namen, der den Zweck angibt.

   ```
   aws ecs create-cluster --cluster-name tutorial --service-connect-defaults namespace=service-connect
   ```

   Ausgabe:

   ```
   {
       "cluster": {
           "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/tutorial",
           "clusterName": "tutorial",
           "serviceConnectDefaults": {
               "namespace": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-EXAMPLE"
           },
           "status": "PROVISIONING",
           "registeredContainerInstancesCount": 0,
           "runningTasksCount": 0,
           "pendingTasksCount": 0,
           "activeServicesCount": 0,
           "statistics": [],
           "tags": [],
           "settings": [
               {
                   "name": "containerInsights",
                   "value": "disabled"
               }
           ],
           "capacityProviders": [],
           "defaultCapacityProviderStrategy": [],
           "attachments": [
               {
                   "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
                   "type": "sc",
                   "status": "ATTACHING",
                   "details": []
               }
           ],
           "attachmentsStatus": "UPDATE_IN_PROGRESS"
       }
   }
   }
   ```

1. Stellen Sie sicher, dass der Cluster erstellt wurde:

   ```
   aws ecs describe-clusters --clusters tutorial
   ```

   Ausgabe:

   ```
   {
       "clusters": [
           {
               "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/tutorial",
               "clusterName": "tutorial",
               "serviceConnectDefaults": {
                   "namespace": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-EXAMPLE"
               },
               "status": "ACTIVE",
               "registeredContainerInstancesCount": 0,
               "runningTasksCount": 0,
               "pendingTasksCount": 0,
               "activeServicesCount": 0,
               "statistics": [],
               "tags": [],
               "settings": [],
               "capacityProviders": [],
               "defaultCapacityProviderStrategy": []
           }
       ],
       "failures": []
   }
   ```

1. (Optional) Stellen Sie sicher, dass der Namespace in erstellt wurde. AWS Cloud Map Sie können die AWS-Managementkonsole oder die normale AWS CLI Konfiguration verwenden, in AWS Cloud Map der dieser erstellt wurde.

   Verwenden Sie beispielsweise die AWS CLI:

   ```
   aws servicediscovery get-namespace --id ns-EXAMPLE
   ```

   Ausgabe:

   ```
   {
       "Namespace": {
           "Id": "ns-EXAMPLE",
           "Arn": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-EXAMPLE",
           "Name": "service-connect",
           "Type": "HTTP",
           "Properties": {
               "DnsProperties": {
                   "SOA": {}
               },
               "HttpProperties": {
                   "HttpName": "service-connect"
               }
           },
           "CreateDate": 1661749852.422,
           "CreatorRequestId": "service-connect"
       }
   }
   ```

## Schritt 2: Erstellen des Service für den Server
<a name="create-service-connect-nginx-server"></a>

Das Service-Connect-Feature dient zum Verbinden mehrerer Anwendungen auf Amazon ECS. Mindestens eine dieser Anwendungen muss einen Web-Service bereitstellen, zu dem eine Verbindung hergestellt werden kann. In diesem Schritt erstellen Sie:
+ Die Aufgabendefinition, die das unveränderte offizielle Nginx-Container-Image verwendet und die Service-Connect-Konfiguration beinhaltet.
+ Die Amazon-ECS-Servicedefinition, die Service Connect konfiguriert, um Serviceerkennung und Service-Mesh-Proxy für Datenverkehr zu diesem Service bereitzustellen. Die Konfiguration verwendet den Standard-Namespace aus der Cluster-Konfiguration erneut, um den Umfang der Service-Konfiguration, die Sie für jeden Service vornehmen, zu reduzieren.
+ Der Amazon-ECS-Service. Er führt eine Aufgabe mithilfe der Aufgabendefinition aus und fügt einen zusätzlichen Container für den Service-Connect-Proxy ein. Der Proxy überwacht den Port aus der Container-Port-Zuordnung der Aufgabendefinition. In einer Client-Anwendung, die in Amazon ECS ausgeführt wird, wartet der Proxy in der Client-Aufgabe auf ausgehende Verbindungen mit dem Portnamen der Aufgabendefinition, dem Serviceerkennungsnamen oder dem Service-Client-Aliasnamen und der Portnummer des Client-Alias.

**So erstellen Sie den Webservice mit Service Connect**

1. Registrieren Sie eine Aufgabendefinition, die mit Fargate kompatibel ist und den `awsvpc`-Netzwerkmodus verwendet. Dazu gehen Sie wie folgt vor:

   1. Erstellen Sie eine Datei mit dem Namen `service-connect-nginx.json` mit dem Inhalt der folgenden Aufgabendefinition.

      Diese Aufgabendefinition konfiguriert Service Connect durch Hinzufügen von `name`- und `appProtocol`-Parametern zur Portzuordnung. Durch den Portnamen wird dieser Port in der Service-Konfiguration besser identifizierbar, wenn mehrere Ports verwendet werden. Der Portname wird standardmäßig auch als auffindbarer Name für andere Anwendungen im Namespace verwendet.

      Die Aufgabendefinition enthält die Aufgaben-IAM-Rolle, da für den Service ECS Exec aktiviert ist.
**Wichtig**  
Diese Aufgabendefinition verwendet a`logConfiguration`, um die Nginx-Ausgabe von `stdout` und an Amazon CloudWatch Logs `stderr` zu senden. Diese Rolle zur Aufgabenausführung verfügt nicht über die zusätzlichen Berechtigungen, die für die Erstellung der Protokollgruppe CloudWatch Logs erforderlich sind. Erstellen Sie die Protokollgruppe in CloudWatch Logs mithilfe von AWS-Managementkonsole oder AWS CLI. Wenn Sie die Nginx-Protokolle nicht an Logs senden möchten, CloudWatch können Sie die entfernen. `logConfiguration`  
Ersetzen Sie die AWS-Konto ID in der Rolle zur Aufgabenausführung durch Ihre AWS-Konto ID.

      ```
      {
          "family": "service-connect-nginx",
          "executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole",
          "taskRoleArn": "arn:aws:iam::123456789012:role/ecsTaskRole",
          "networkMode": "awsvpc",
          "containerDefinitions": [
              {
              "name": "webserver",
              "image": "public.ecr.aws/docker/library/nginx:latest",
              "cpu": 100,
              "portMappings": [
                  {
                      "name": "nginx",
                      "containerPort": 80,
                      "protocol": "tcp", 
                      "appProtocol": "http"
                  }
              ],
              "essential": true,
              "logConfiguration": {
                  "logDriver": "awslogs",
                  "options": {
                      "awslogs-group": "/ecs/service-connect-nginx",
                      "awslogs-region": "region", 
                      "awslogs-stream-prefix": "nginx"
                  }
              }
              }
          ],
          "cpu": "256",
          "memory": "512"
      }
      ```

   1. Registrieren Sie die Aufgabendefinition mit der `service-connect-nginx.json`-Datei:

      ```
      aws ecs register-task-definition --cli-input-json file://service-connect-nginx.json
      ```

1. Erstellen eines Services:

   1. Erstellen Sie eine Datei mit dem Namen `service-connect-nginx-service.json` mit dem Inhalt des Amazon-ECS-Service, den Sie erstellen. Dieses Beispiel verwendet die Aufgabendefinition, die im vorherigen Schritt erstellt wurde. Ein `awsvpcConfiguration` ist erforderlich, da die Beispiel-Aufgabendefinition den `awsvpc`-Netzwerkmodus verwendet.

      Wenn Sie den ECS-Service erstellen, geben Sie den Fargate und die `LATEST`-Plattformversion an, die Service Connect unterstützt. Die `securityGroups` und `subnets` müssen zu einer VPC gehören, die die Anforderungen für die Verwendung von Amazon ECS erfüllt. Sie können die Sicherheitsgruppe und das Subnetz IDs von der Amazon VPC-Konsole abrufen. 

      Dieser Service konfiguriert Service Connect durch Hinzufügen des `serviceConnectConfiguration`-Parameters. Der Namespace ist nicht erforderlich, da für den Cluster ein Standard-Namespace konfiguriert ist. Client-Anwendungen, die in ECS im Namespace ausgeführt werden, stellen eine Verbindung zu diesem Service her, indem sie den `portName` und den Port im `clientAliases` verwenden. Dieser Service ist beispielsweise über `http://nginx:80/` erreichbar, da Nginx eine Willkommensseite im Stammverzeichnis `/` bereitstellt. Externe Anwendungen, die nicht in Amazon ECS ausgeführt werden oder sich nicht im selben Namespace befinden, können diese Anwendung über den Service-Connect-Proxy erreichen, indem sie die IP-Adresse der Aufgabe und die Portnummer aus der Aufgabendefinition verwenden. Fügen Sie für Ihre `tls`-Konfiguration das Zertifikat `arn` für die `awsPcaAuthorityArn`, Ihren `kmsKey` und den `roleArn` Ihrer IAM-Rolle hinzu.

      Dieser Service verwendet eine`logConfiguration`, um die Service-Connect-Proxyausgabe von `stdout` und `stderr` zu Amazon CloudWatch Logs zu senden. Diese Rolle zur Ausführung von Aufgaben verfügt nicht über die zusätzlichen Berechtigungen, die für die Erstellung der Protokollgruppe CloudWatch Logs erforderlich sind. Erstellen Sie die Protokollgruppe in CloudWatch Logs mithilfe von AWS-Managementkonsole oder AWS CLI. Es wird empfohlen, diese Protokollgruppe zu erstellen und die CloudWatch Proxyprotokolle in Logs zu speichern. Wenn Sie die Proxyprotokolle nicht an Logs senden möchten, CloudWatch können Sie die entfernen`logConfiguration`.

      ```
      {
          "cluster": "tutorial",
          "deploymentConfiguration": {
              "maximumPercent": 200,
              "minimumHealthyPercent": 0
          },
          "deploymentController": {
              "type": "ECS"
          },
          "desiredCount": 1,
          "enableECSManagedTags": true,
          "enableExecuteCommand": true,
          "launchType": "FARGATE",
          "networkConfiguration": {
              "awsvpcConfiguration": {
                  "assignPublicIp": "ENABLED",
                  "securityGroups": [
                      "sg-EXAMPLE"
                  ],
                  "subnets": [
                      "subnet-EXAMPLE",
                      "subnet-EXAMPLE",
                      "subnet-EXAMPLE"
                  ]
                 }
          },
          "platformVersion": "LATEST",
          "propagateTags": "SERVICE",
          "serviceName": "service-connect-nginx-service",
          "serviceConnectConfiguration": {
              "enabled": true,
              "services": [
                  {
                      "portName": "nginx",
                      "clientAliases": [
                          {
                              "port": 80
                          }
                      ],
                      "tls": {
                         "issuerCertificateAuthority": {
                            "awsPcaAuthorityArn": "certificateArn"
                         }, 
                         "kmsKey": "kmsKey", 
                         "roleArn": "iamRoleArn"
                      }
                  }
              ],
              "logConfiguration": {
                  "logDriver": "awslogs",
                  "options": {
                      "awslogs-group": "/ecs/service-connect-proxy",
                      "awslogs-region": "region",
                      "awslogs-stream-prefix": "service-connect-proxy"
                  }
              }
          },
          "taskDefinition": "service-connect-nginx"
      }
      ```

   1. Erstellen eines Service mithilfe der `service-connect-nginx-service.json`-Datei:

      ```
      aws ecs create-service --cluster tutorial --cli-input-json file://service-connect-nginx-service.json
      ```

      Ausgabe:

      ```
      {
          "service": {
              "serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/tutorial/service-connect-nginx-service",
              "serviceName": "service-connect-nginx-service",
              "clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/tutorial",
              "loadBalancers": [],
              "serviceRegistries": [],
              "status": "ACTIVE",
              "desiredCount": 1,
              "runningCount": 0,
              "pendingCount": 0,
              "launchType": "FARGATE",
              "platformVersion": "LATEST",
              "platformFamily": "Linux",
              "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/service-connect-nginx:1",
              "deploymentConfiguration": {
                  "deploymentCircuitBreaker": {
                      "enable": false,
                      "rollback": false
                  },
                  "maximumPercent": 200,
                  "minimumHealthyPercent": 0
              },
              "deployments": [
                  {
                      "id": "ecs-svc/3763308422771520962",
                      "status": "PRIMARY",
                      "taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/service-connect-nginx:1",
                      "desiredCount": 1,
                      "pendingCount": 0,
                      "runningCount": 0,
                      "failedTasks": 0,
                      "createdAt": 1661210032.602,
                      "updatedAt": 1661210032.602,
                      "launchType": "FARGATE",
                      "platformVersion": "1.4.0",
                      "platformFamily": "Linux",
                      "networkConfiguration": {
                          "awsvpcConfiguration": {
                              "assignPublicIp": "ENABLED",
                              "securityGroups": [
                                  "sg-EXAMPLE"
                              ],
                              "subnets": [
                                  "subnet-EXAMPLEf",
                                  "subnet-EXAMPLE",
                                  "subnet-EXAMPLE"
                              ]
                          }
                      },
                      "rolloutState": "IN_PROGRESS",
                      "rolloutStateReason": "ECS deployment ecs-svc/3763308422771520962 in progress.",
                      "failedLaunchTaskCount": 0,
                      "replacedTaskCount": 0,
                      "serviceConnectConfiguration": {
                          "enabled": true,
                          "namespace": "service-connect",
                          "services": [
                              {
                                  "portName": "nginx",
                                  "clientAliases": [
                                      {
                                          "port": 80
                                      }
                                  ]
                              }
                          ],
                          "logConfiguration": {
                              "logDriver": "awslogs",
                              "options": {
                                  "awslogs-group": "/ecs/service-connect-proxy",
                                  "awslogs-region": "us-west-2",
                                  "awslogs-stream-prefix": "service-connect-proxy"
                              },
                              "secretOptions": []
                          }
                      },
                      "serviceConnectResources": [
                          {
                              "discoveryName": "nginx",
                              "discoveryArn": "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-EXAMPLE"
                          }
                      ]
                  }
              ],
              "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS",
              "version": 0,
              "events": [],
              "createdAt": 1661210032.602,
              "placementConstraints": [],
              "placementStrategy": [],
              "networkConfiguration": {
                  "awsvpcConfiguration": {
                      "assignPublicIp": "ENABLED",
                      "securityGroups": [
                          "sg-EXAMPLE"
                      ],
                      "subnets": [
                          "subnet-EXAMPLE",
                          "subnet-EXAMPLE",
                          "subnet-EXAMPLE"
                      ]
                  }
              },
              "schedulingStrategy": "REPLICA",
              "enableECSManagedTags": true,
              "propagateTags": "SERVICE",
              "enableExecuteCommand": true
          }
      }
      ```

      Die von Ihnen angegebene `serviceConnectConfiguration` wird in der ersten *Bereitstellung* der Ausgabe angezeigt. Wenn Sie Änderungen am ECS-Service vornehmen, die Änderungen an Aufgaben erfordern, wird von Amazon ECS eine neue Bereitstellung erstellt.

## Schritt 3: Überprüfen der Möglichkeit, eine Verbindung herzustellen
<a name="create-service-connect-verify"></a>

Um zu überprüfen, ob Service Connect konfiguriert ist und funktioniert, führen Sie die folgenden Schritte aus, um von einer externen Anwendung aus eine Verbindung zum Webservice herzustellen. Sehen Sie sich dann die zusätzlichen Metriken an, CloudWatch die der Service Connect-Proxy erstellt.

**So stellen Sie über eine externe Anwendung eine Verbindung mit dem Webservice her**
+ Herstellen einer Verbindung mit der IP-Adresse der Aufgabe und dem Container-Port mithilfe der IP-Adresse der Aufgabe

  Verwenden Sie die AWS CLI , um die Aufgaben-ID abzurufen, indem Sie den verwenden`aws ecs list-tasks --cluster tutorial`.

  Wenn Ihre Subnetze und Sicherheitsgruppe Datenverkehr aus dem öffentlichen Internet auf dem Port aus der Aufgabendefinition zulassen, können Sie von Ihrem Computer aus eine Verbindung mit der öffentlichen IP-Adresse herstellen. Die öffentliche IP ist jedoch nicht über `describe-tasks` verfügbar. Die Schritte beinhalten also den Zugriff auf Amazon EC2 AWS-Managementkonsole oder das Abrufen der Details der AWS CLI elastic network interface.

  In diesem Beispiel verwendet eine Amazon-EC2-Instance in derselben VPC die private IP der Aufgabe. Die Anwendung ist Nginx, aber der `server: envoy`-Header zeigt, dass der Service-Connect-Proxy verwendet wird. Der Service-Connect-Proxy überwacht den Container-Port aus der Aufgabendefinition.

  ```
  $ curl -v 10.0.19.50:80/
  *   Trying 10.0.19.50:80...
  * Connected to 10.0.19.50 (10.0.19.50) port 80 (#0)
  > GET / HTTP/1.1
  > Host: 10.0.19.50
  > User-Agent: curl/7.79.1
  > Accept: */*
  >
  * Mark bundle as not supporting multiuse
  < HTTP/1.1 200 OK
  < server: envoy
  < date: Tue, 23 Aug 2022 03:53:06 GMT
  < content-type: text/html
  < content-length: 612
  < last-modified: Tue, 16 Apr 2019 13:08:19 GMT
  < etag: "5cb5d3c3-264"
  < accept-ranges: bytes
  < x-envoy-upstream-service-time: 0
  <
  <!DOCTYPE html>
  <html>
  <head>
  <title>Welcome to nginx!</title>
  <style>
      body {
          width: 35em;
          margin: 0 auto;
          font-family: Tahoma, Verdana, Arial, sans-serif;
      }
  </style>
  </head>
  <body>
  <h1>Welcome to nginx!</h1>
  <p>If you see this page, the nginx web server is successfully installed and
  working. Further configuration is required.</p>
  
  <p>For online documentation and support please refer to
  <a href="http://nginx.org/">nginx.org</a>.<br/>
  Commercial support is available at
  <a href="http://nginx.com/">nginx.com</a>.</p>
  
  <p><em>Thank you for using nginx.</em></p>
  </body>
  </html>
  ```

**So zeigen Sie Service-Connect-Metriken an**  
Der Service Connect-Proxy erstellt Anwendungsmetriken (HTTP- HTTP2, gRPC- oder TCP-Verbindung) in CloudWatch Metriken. Wenn Sie die CloudWatch Konsole verwenden, sehen Sie sich die zusätzlichen metrischen Dimensionen von **DiscoveryName**, (**DiscoveryName, ServiceName, ClusterName**) **TargetDiscoveryName**, und (**TargetDiscoveryName, ServiceName, ClusterName**) unter dem Amazon ECS-Namespace an. Weitere Informationen zu diesen Metriken und den Dimensionen finden Sie unter [Verfügbare Metriken anzeigen](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html) im Amazon CloudWatch Logs-Benutzerhandbuch.

# Die Serviceerkennung verwenden, um Amazon-ECS-Services mithilfe von DNS-Namen zu verbinden
<a name="service-discovery"></a>

Ihr Amazon-ECS-Service kann optional so konfiguriert werden, dass er die Amazon-ECS-Serviceerkennung verwendet. Service Discovery verwendet AWS Cloud Map API-Aktionen, um HTTP- und DNS-Namespaces für Ihre Amazon ECS-Services zu verwalten. Weitere Informationen finden Sie unter [Was ist AWS Cloud Map?](https://docs.aws.amazon.com/cloud-map/latest/dg/Welcome.html) im *AWS Cloud Map -Entwicklerhandbuch*.

Service Discovery ist in den folgenden Regionen verfügbar: AWS 


| Name der Region | Region | 
| --- | --- | 
|  USA Ost (Nord-Virginia)  |  us-east-1  | 
|  USA Ost (Ohio)  |  us-east-2  | 
|  USA West (Nordkalifornien)  |  us-west-1  | 
|  USA West (Oregon)  |  us-west-2  | 
|  Afrika (Kapstadt)  |  af-south-1  | 
|  Asien-Pazifik (Hongkong)  |  ap-east-1  | 
|  Asien-Pazifik (Taipeh)  |  ap-east-2  | 
|  Asien-Pazifik (Mumbai)  |  ap-south-1  | 
|  Asien-Pazifik (Hyderabad)  |  ap-south-2  | 
|  Asien-Pazifik (Tokio)  |  ap-northeast-1  | 
|  Asien-Pazifik (Seoul)  |  ap-northeast-2  | 
|  Asia Pacific (Osaka)  |  ap-northeast-3  | 
|  Asien-Pazifik (Singapur)  |  ap-southeast-1  | 
|  Asien-Pazifik (Sydney)  |  ap-southeast-2  | 
|  Asien-Pazifik (Jakarta)  |  ap-southeast-3  | 
|  Asien-Pazifik (Melbourne)  |  ap-southeast-4  | 
|  Asien-Pazifik (Malaysia)  |  ap-southeast-5  | 
|  Asien-Pazifik (Neuseeland)  |  ap-southeast-6  | 
|  Asien-Pazifik (Thailand)  |  ap-southeast-7  | 
|  Kanada (Zentral)  |  ca-central-1  | 
|  Kanada West (Calgary)  |  ca-west-1  | 
|  China (Beijing)  |  cn-north-1  | 
|  China (Ningxia)  |  cn-northwest-1  | 
|  Europe (Frankfurt)  |  eu-central-1  | 
|  Europa (Zürich)  |  eu-central-2  | 
|  Europa (Irland)  |  eu-west-1  | 
|  Europa (London)  |  eu-west-2  | 
|  Europa (Paris)  |  eu-west-3  | 
|  Europa (Milan)  |  eu-south-1  | 
|  Europa (Stockholm)  |  eu-north-1  | 
|  Israel (Tel Aviv)  |  il-central-1  | 
|  Europa (Spain)  |  eu-south-2  | 
|  Naher Osten (VAE)  |  me-central-1  | 
|  Mexiko (Zentral)  |  mx-central-1  | 
|  Naher Osten (Bahrain)  |  me-south-1  | 
|  Südamerika (São Paulo)  |  sa-east-1  | 
|  AWS GovCloud (US-Ost)  |  us-gov-east-1  | 
|  AWS GovCloud (US-West)  |  us-gov-west-1  | 

## Konzepte für Serviceerkennung
<a name="service-discovery-concepts"></a>

Die Serviceerkennung umfasst folgende Komponenten:
+ **Serviceerkennungs-Namespace**: Eine logische Gruppe von Serviceerkennungs-Services, die den gleichen Domain-Namen haben, zum Beispiel `example.com`, wo Sie den Datenverkehr hinleiten möchten. Sie können einen Namespace mit einem Aufruf des `aws servicediscovery create-private-dns-namespace`-Befehls oder in der Amazon-ECS-Konsole erstellen. Sie können den `aws servicediscovery list-namespaces`-Befehl zum Anzeigen der zusammenfassenden Informationen über die Namespaces, die vom aktuellen Konto erstellt wurden, verwenden. Weitere Informationen zu den Service Discovery-Befehlen finden Sie unter `[create-private-dns-namespace](https://docs.aws.amazon.com/cli/latest/reference/servicediscovery/create-private-dns-namespace.html)` und `[list-namespaces](https://docs.aws.amazon.com/cli/latest/reference/servicediscovery/list-namespaces.html)` im * AWS CLI Referenzhandbuch AWS Cloud Map (Service Discovery)*.
+ **Serviceerkennung Service**: Ist im Service Discover-Namespace vorhanden und besteht aus dem Servicenamen und der DNS-Konfiguration für den Namespace. Er stellt die folgende Kernkomponente bereit:
  + **Dienstregistrierung**: Ermöglicht es Ihnen, über DNS- oder AWS Cloud Map API-Aktionen nach einem Dienst zu suchen und einen oder mehrere verfügbare Endpunkte wiederherzustellen, die für die Verbindung mit dem Dienst verwendet werden können.
+ **Serviceerkennung-Instance**: Existiert innerhalb des Serviceerkennung-Service und besteht aus den Attributen, die jedem Amazon-ECS-Service im Serviceverzeichnis zugeordnet sind.
  + **Instance-Attribute**: Die folgenden Metadaten werden als benutzerdefinierte Attribute für jeden Amazon-ECS-Service hinzugefügt, der für die Verwendung von Serviceerkennung konfiguriert ist:
    + **`AWS_INSTANCE_IPV4`**— Für einen `A` Datensatz die IPv4 Adresse, die Route 53 als Antwort auf DNS-Abfragen AWS Cloud Map zurückgibt und die zurückgibt, wenn beispielsweise Instanzdetails entdeckt werden. `192.0.2.44`
    + **`AWS_INSTANCE_IPV6`**— Für einen `AAAA` Datensatz die IPv6 Adresse, die Route 53 als Antwort auf DNS-Abfragen AWS Cloud Map zurückgibt und die zurückgibt, wenn Instanzdetails gefunden ` 2001:0db8:85a3:0000:0000:abcd:0001:2345` werden, z. B. Sowohl `AWS_INSTANCE_IPv4` und `AWS_INSTANCE_IPv6` werden für Amazon-ECS-DualStack-Services hinzugefügt. Nur `AWS_INSTANCE_IPv6` wird für Dienste hinzugefügt, die IPv6 nur Amazon ECS anbieten.
    + **`AWS_INSTANCE_PORT`**: Der Port-Wert, der dem Serviceerkennung-Service zugeordnet ist.
    + **`AVAILABILITY_ZONE`**: Die Availability Zone, in der die Aufgabe gestartet wurde. Bei Aufgaben, die EC2 verwenden, ist dies die Availability Zone, in der die Container-Instance besteht. Bei Aufgaben, die Fargate verwenden, ist dies die Availability Zone, in der die Elastic-Network-Schnittstelle besteht.
    + **`REGION`**: Die Region, in der sich die Aufgabe befindet.
    + **`ECS_SERVICE_NAME`**: Der Name des Amazon-ECS-Services, zu dem die Aufgabe gehört.
    + **`ECS_CLUSTER_NAME`**: Der Name des Amazon ECS-Clusters, zu dem die Aufgabe gehört.
    + **`EC2_INSTANCE_ID`**: Die ID der Container-Instance, in der die Aufgabe platziert wurde. Dieses benutzerdefinierte Attribut wird nicht hinzugefügt, wenn die Aufgabe Fargate verwendet.
    + **`ECS_TASK_DEFINITION_FAMILY`**: Die Aufgabendefinitionsfamilie, die die Aufgabe verwendet.
    + **`ECS_TASK_SET_EXTERNAL_ID`**: Wenn eine Aufgabe für eine externe Bereitstellung erstellt und einer Serviceerkennung-Registrierung zugeordnet wird, dann enthält das Attribut `ECS_TASK_SET_EXTERNAL_ID` die externe ID des Aufgabensatzes.
+ **Amazon ECS-Zustandsprüfungen**: Amazon ECS führt regelmäßige Zustandsprüfungen auf Container-Ebene durch. Wenn ein Endpunkt die Zustandsprüfung nicht besteht, wird er aus dem DNS-Routing entfernt und als fehlerhaft markiert.

## Überlegungen zu Serviceerkennung
<a name="service-discovery-considerations"></a>

Bei der Verwendung der Serviceerkennung sollte Folgendes berücksichtigt werden:
+ Serviceerkennung wird für Aufgaben auf Fargate unterstützt, die Plattform-Version v1.1.0 oder höher verwenden. Weitere Informationen finden Sie unter [Fargate-Plattformversionen für Amazon ECS](platform-fargate.md).
+ Services, die für die Verwendung von Serviceerkennung konfiguriert sind, haben ein Limit von 1000 Aufgaben pro Service. Dies ist auf eine Service-Quote der Route 53 zurückzuführen.
+ Der Create Service-Workflow in der Amazon ECS-Konsole unterstützt nur die Registrierung von Services in private DNS-Namespaces. Wenn ein AWS Cloud Map privater DNS-Namespace erstellt wird, wird automatisch eine private gehostete Route 53-Zone erstellt.
+ Die VPC DNS-Attribute müssen für eine erfolgreiche DNS-Auflösung konfiguriert werden. Weitere Informationen zum Konfigurieren der Attribute finden Sie unter [DNS-Support für Ihre VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support) im *Amazon VPC-Benutzerhandbuch*.
+ Amazon ECS unterstützt die Registrierung von Services in gemeinsam genutzten AWS Cloud Map Namespaces nicht.
+ Die für einen Serviceerkennung-Service erstellten DNS-Datensätze werden auch bei Verwendung von öffentlichen Namespaces immer mit der privaten IP-Adresse für die Aufgabe anstelle der öffentlichen IP-Adresse registriert.
+ Serviceerkennung erfordert, dass Aufgaben entweder Netzwerkmodus `awsvpc`, `bridge` oder `host` angeben (`none` wird nicht unterstützt).
+ Wenn die Service-Aufgabendefinition den `awsvpc`-Netzwerkmodus verwendet, können Sie für jede Service-Aufgabe eine beliebige Kombination aus `A`- oder `SRV`-Datensätzen erstellen. Wenn Sie `SRV`-Datensätze verwenden, ist ein Port erforderlich. Sie können zusätzlich `AAAA`-Datensätze erstellen, wenn der Service Dual-Stack-Subnetze verwendet. Wenn der Service IPv6 nur Subnetze verwendet, können Sie keine Datensätze erstellen. `A`
+ Wenn die Service-Aufgabendefinition den Netzwerkmodus `bridge` oder `host` verwendet, wird nur der SRV-Datensatz als DNS-Datensatztyp unterstützt. Erstellen Sie einen SRV-Datensatz für jede Serviceaufgabe. Der SRV-Datensatz muss eine Kombination aus Containername und Container-Port aus der Aufgabendefinition angeben.
+ DNS-Datensätze für einen Service zur Serviceerkennung können innerhalb Ihrer VPC abgefragt werden. Sie verwenden das folgende Format: `<service-discovery-service-name>.<service-discovery-namespace>`.
+ Wenn Sie eine DNS-Abfrage nach dem Namen des Services durchführen, geben `A`- und `AAAA`-Datensätze eine Reihe von IP-Adressen zurück, die Ihren Aufgaben entsprechen. `SRV`-Datensätze geben einen Satz von IP-Adressen und Ports für jede Aufgabe zurück.
+ Wenn Sie über acht oder weniger fehlerfreie Datensätze verfügen, beantwortet Route 53 alle DNS-Abfragen mit allen fehlerfreien Datensätzen.
+ Wenn alle Datensätze fehlerhaft sind, beantwortet Route 53 DNS-Abfragen mit bis zu acht fehlerhaften Datensätzen.
+ Sie können die Serviceerkennung für einen Service konfigurieren, der sich hinter einem Load Balancer befindet, aber der Serviceerkennungsverkehr wird immer an die Aufgabe und nicht an den Load Balancer weitergeleitet.
+ Serviceerkennung unterstützt die Verwendung von Classic Load Balancers nicht.
+ Wir empfehlen Ihnen, Zustandsprüfungen auf Containerebene zu verwenden, die von Amazon ECS für Ihren Service zur Serviceerkennung verwaltet werden.
  + **HealthCheckCustomConfig**—Amazon ECS verwaltet Gesundheitschecks in Ihrem Namen. Amazon ECS verwendet Informationen aus Container- und Zustandsprüfungen sowie Ihren Aufgabenstatus, um den Zustand mit AWS Cloud Map zu aktualisieren. Dies wird beim Erstellen Ihres Serviceerkennung-Service mit dem Parameter `--health-check-custom-config` festgelegt. Weitere Informationen finden Sie unter [HealthCheckCustomConfig](https://docs.aws.amazon.com/cloud-map/latest/api/API_HealthCheckCustomConfig.html) in der *AWS Cloud Map -API-Referenz*.
+ Die AWS Cloud Map Ressourcen, die bei der Nutzung von Service Discovery erstellt werden, müssen manuell bereinigt werden.
+ Aufgaben und Instances werden als `UNHEALTHY` registriert, bis die Container-Zustandsprüfungen einen Wert zurückgeben. Wenn die Zustandsprüfungen bestanden wurden, wird der Status auf `HEALTHY` aktualisiert. Wenn die Container-Zustandsprüfungen fehlschlagen, wird die Registrierung der Serviceerkennungs-Instance aufgehoben.

## Serviceerkennung-Preisgestaltung
<a name="service-discovery-pricing"></a>

Den Kunden, die Amazon-ECS-Serviceerkennung nutzen, werden die Route 53-Ressourcen und die AWS Cloud Map -Discovery API-Operationen berechnet. Dies umfasst die Kosten für das Erstellen der von Route 53 gehosteten Zonen und Abfragen der Service-Registry. Weitere Informationen finden Sie unter [AWS Cloud Map -Preisgestaltung](https://docs.aws.amazon.com/cloud-map/latest/dg/cloud-map-pricing.html) im *AWS Cloud Map -Entwicklerhandbuch*.

Amazon ECS führt Integritätsprüfungen auf Containerebene durch und macht sie für AWS Cloud Map benutzerdefinierte API-Operationen zur Integritätsprüfung verfügbar. Dies wird den Kunden derzeit ohne Mehrkosten zur Verfügung gestellt. Wenn Sie zusätzliche Zustandsprüfungen für öffentlich zugängliche Aufgaben konfigurieren, werden Ihnen diese Zustandsprüfungen in Rechnung gestellt.

# Erstellen eines Amazon-ECS-Service, der Serviceerkennung verwendet
<a name="create-service-discovery"></a>

Erfahren Sie, wie Sie mit der AWS CLI einen Service erstellen, der eine Fargate-Aufgabe enthält, die die Serviceerkennung verwendet.

Eine Liste AWS-Regionen dieser Support-Serviceanfragen finden Sie unter[Die Serviceerkennung verwenden, um Amazon-ECS-Services mithilfe von DNS-Namen zu verbinden](service-discovery.md).

Weitere Informationen über Regionen, die Fargate unterstützen, finden Sie unter [Unterstützte Regionen für Amazon ECS auf AWS Fargate](AWS_Fargate-Regions.md).

**Anmerkung**  
Sie können Dual-Stack-Service-Endpunkte verwenden, um mit Amazon ECS über die AWS CLI SDKs, und die Amazon ECS-API sowohl über als auch IPv4 zu interagieren. IPv6 Weitere Informationen finden Sie unter [Verwenden von Dual-Stack-Endpunkten in Amazon ECS](dual-stack-endpoint.md).

## Voraussetzungen
<a name="create-service-discovery-prereqs"></a>

Bevor Sie mit diesem Tutorial beginnen, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind:
+ Die neueste Version von AWS CLI ist installiert und konfiguriert. Weitere Informationen finden Sie unter [Installieren oder Aktualisierung auf die neueste Version der AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).
+ Die unter [Einrichtung für die Verwendung von Amazon ECS](get-set-up-for-amazon-ecs.md) beschriebenen Schritte sind abgeschlossen.
+ Ihr IAM-Benutzer besitzt die im [AmazonECS\$1 FullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonECS_FullAccess)-IAM-Richtlinienbeispiel angegebenen Berechtigungen.
+ Sie haben mindestens eine VPC und eine Sicherheitsgruppe erstellt. Weitere Informationen finden Sie unter [Erstellen einer Virtual Private Cloud](get-set-up-for-amazon-ecs.md#create-a-vpc).

## Schritt 1: Erstellen Sie die Service Discovery-Ressourcen in AWS Cloud Map
<a name="create-service-discovery-namespace"></a>

Führen Sie die folgenden Schritte aus, um Ihren Service-Discovery-Namespace und Service zur Serviceerkennung zu erstellen:

1. Erstellen Sie einen privaten Namespace für die Serviceerkennung der Cloud Map. In diesem Beispiel wird ein Namespace mit dem Namen `tutorial` erstellt. *vpc-abcd1234*Ersetzen Sie es durch die ID einer Ihrer vorhandenen VPCs. 

   ```
   aws servicediscovery create-private-dns-namespace \
         --name tutorial \
         --vpc vpc-abcd1234
   ```

   Die Ausgabe dieses Befehls sieht wie folgt aus.

   ```
   {
       "OperationId": "h2qe3s6dxftvvt7riu6lfy2f6c3jlhf4-je6chs2e"
   }
   ```

1. Überprüfen Sie mithilfe der `OperationId` aus der Ausgabe des vorherigen Schritts, ob der private Namespace erfolgreich erstellt wurde. Notieren Sie sich die Namespace-ID, da Sie sie in nachfolgenden Befehlen verwenden.

   ```
   aws servicediscovery get-operation \
         --operation-id h2qe3s6dxftvvt7riu6lfy2f6c3jlhf4-je6chs2e
   ```

   Die Ausgabe sieht wie folgt aus.

   ```
   {
       "Operation": {
           "Id": "h2qe3s6dxftvvt7riu6lfy2f6c3jlhf4-je6chs2e",
           "Type": "CREATE_NAMESPACE",
           "Status": "SUCCESS",
           "CreateDate": 1519777852.502,
           "UpdateDate": 1519777856.086,
           "Targets": {
              "NAMESPACE": "ns-uejictsjen2i4eeg"
           }
       }
   }
   ```

1. Erstellen Sie mithilfe der `NAMESPACE`-ID aus der Ausgabe des vorherigen Schritts einen Service zur Serviceerkennung. In diesem Beispiel wird ein Service mit dem Namen `myapplication` erstellt. Notieren Sie sich die Service-ID und den ARN, da Sie sie in nachfolgenden Befehlen verwenden.

   ```
   aws servicediscovery create-service \
         --name myapplication \
         --dns-config "NamespaceId="ns-uejictsjen2i4eeg",DnsRecords=[{Type="A",TTL="300"}]" \
         --health-check-custom-config FailureThreshold=1
   ```

   Die Ausgabe sieht wie folgt aus.

   ```
   {
       "Service": {
          "Id": "srv-utcrh6wavdkggqtk",
           "Arn": "arn:aws:servicediscovery:region:aws_account_id:service/srv-utcrh6wavdkggqtk",
           "Name": "myapplication",
           "DnsConfig": {
               "NamespaceId": "ns-uejictsjen2i4eeg",
               "DnsRecords": [
                   {
                       "Type": "A",
                       "TTL": 300
                   }
               ]
           },
           "HealthCheckCustomConfig": {
               "FailureThreshold": 1
           },
           "CreatorRequestId": "e49a8797-b735-481b-a657-b74d1d6734eb"
       }
   }
   ```

## Schritt 2: Erstellen der Amazon-ECS-Ressourcen
<a name="create-service-discovery-cluster"></a>

Führen Sie die folgenden Schritte aus, um Ihren Amazon-ECS-Cluster, die Definition der Aufgabe und den Service zu erstellen:

1. Erstellen Sie einen Amazon-ECS-Cluster. In diesem Beispiel wird ein Cluster mit dem Namen `tutorial` erstellt. 

   ```
   aws ecs create-cluster \
         --cluster-name tutorial
   ```

1. Registrieren Sie eine Aufgabendefinition, die mit Fargate kompatibel ist und den `awsvpc`-Netzwerkmodus verwendet. Dazu gehen Sie wie folgt vor:

   1. Erstellen Sie eine Datei mit dem Namen `fargate-task.json` mit dem Inhalt der folgenden Aufgabendefinition.

      ```
      {
          "family": "tutorial-task-def",
              "networkMode": "awsvpc",
              "containerDefinitions": [
                  {
                      "name": "sample-app",
                      "image": "public.ecr.aws/docker/library/httpd:2.4",
                      "portMappings": [
                          {
                              "containerPort": 80,
                              "hostPort": 80,
                              "protocol": "tcp"
                          }
                      ],
                      "essential": true,
                      "entryPoint": [
                          "sh",
                          "-c"
                      ],
                      "command": [
                          "/bin/sh -c \"echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p> </div></body></html>' >  /usr/local/apache2/htdocs/index.html && httpd-foreground\""
                      ]
                  }
              ],
              "requiresCompatibilities": [
                  "FARGATE"
              ],
              "cpu": "256",
              "memory": "512"
      }
      ```

   1. Registrieren Sie die Aufgabendefinition mithilfe von `fargate-task.json`.

      ```
      aws ecs register-task-definition \
            --cli-input-json file://fargate-task.json
      ```

1. Erstellen Sie einen ECS Service, indem Sie die folgenden Schritte ausführen:

   1. Erstellen Sie eine Datei mit dem Namen `ecs-service-discovery.json`, die den Inhalt des ECS-Services enthält, den Sie erstellen wollen. Dieses Beispiel verwendet die Aufgabendefinition, die im vorherigen Schritt erstellt wurde. Ein `awsvpcConfiguration` ist erforderlich, da die Beispiel-Aufgabendefinition den `awsvpc`-Netzwerkmodus verwendet. 

      Wenn Sie den ECS-Service erstellen, geben Sie Fargate und die `LATEST`-Plattformversion an, die Serviceerkennung unterstützt. Wenn der Service zur Serviceerkennung in AWS Cloud Map erstellt wird, ist `registryArn` der zurückgegebene ARN. Die `securityGroups` und `subnets` muss zu der VPC gehören, die zum Erstellen des Cloud Map-Namespaces verwendet wird. Sie können die Sicherheitsgruppe und das Subnetz IDs von der Amazon VPC-Konsole abrufen.

      ```
      {
          "cluster": "tutorial",
          "serviceName": "ecs-service-discovery",
          "taskDefinition": "tutorial-task-def",
          "serviceRegistries": [
             {
                "registryArn": "arn:aws:servicediscovery:region:aws_account_id:service/srv-utcrh6wavdkggqtk"
             }
          ],
          "launchType": "FARGATE",
          "platformVersion": "LATEST",
          "networkConfiguration": {
             "awsvpcConfiguration": {
                "assignPublicIp": "ENABLED",
                "securityGroups": [ "sg-abcd1234" ],
                "subnets": [ "subnet-abcd1234" ]
             }
          },
          "desiredCount": 1
      }
      ```

   1. Erstellen Sie Ihren ECS-Service mithilfe von `ecs-service-discovery.json`.

      ```
      aws ecs create-service \
            --cli-input-json file://ecs-service-discovery.json
      ```

## Schritt 3: Überprüfen Sie Service Discovery in AWS Cloud Map
<a name="create-service-discovery-verify"></a>

Sie können überprüfen, ob alles ordnungsgemäß erstellt wurde, indem Sie Ihre Serviceerkennung-Informationen abfragen. Nachdem die Diensterkennung konfiguriert wurde, können Sie entweder AWS Cloud Map API-Operationen verwenden oder `dig` von einer Instanz in Ihrer VPC aus aufrufen. Dazu gehen Sie wie folgt vor:

1. Listen Sie mithilfe der Serviceerkennung-Service-ID die Service-Discovery-Instances auf. Notieren Sie sich die Instance-ID (fett markiert) für die Ressourcen-Bereinigung. 

   ```
    aws servicediscovery list-instances \
          --service-id srv-utcrh6wavdkggqtk
   ```

   Die Ausgabe sieht wie folgt aus.

   ```
   {
       "Instances": [
           {
               "Id": "16becc26-8558-4af1-9fbd-f81be062a266",
               "Attributes": {
                   "AWS_INSTANCE_IPV4": "172.31.87.2"
                   "AWS_INSTANCE_PORT": "80", 
                   "AVAILABILITY_ZONE": "us-east-1a", 
                   "REGION": "us-east-1", 
                   "ECS_SERVICE_NAME": "ecs-service-discovery", 
                   "ECS_CLUSTER_NAME": "tutorial", 
                   "ECS_TASK_DEFINITION_FAMILY": "tutorial-task-def"
               }
           }
       ]
   }
   ```

1. Verwenden Sie den Serviceerkennung-Namespace, den Service und zusätzliche Parameter wie den ECS-Clusternamen, um Details zu den Service-Discovery-Instances abzufragen.

   ```
   aws servicediscovery discover-instances \
         --namespace-name tutorial \
         --service-name myapplication \
         --query-parameters ECS_CLUSTER_NAME=tutorial
   ```

1. Die DNS-Einträge, die in der von Route 53 gehosteten Zone für den Service zur Serviceerkennung erstellt wurden, können mit den folgenden AWS CLI -Befehlen abgefragt werden:

   1. Rufen Sie mithilfe der Namespace-ID Informationen zum Namespace ab, die die von Route 53 gehostete Zonen-ID enthalten.

      ```
      aws servicediscovery \
            get-namespace --id ns-uejictsjen2i4eeg
      ```

      Die Ausgabe sieht wie folgt aus.

      ```
      {
          "Namespace": {
              "Id": "ns-uejictsjen2i4eeg",
              "Arn": "arn:aws:servicediscovery:region:aws_account_id:namespace/ns-uejictsjen2i4eeg",
              "Name": "tutorial",
              "Type": "DNS_PRIVATE",
              "Properties": {
                   "DnsProperties": {
                      "HostedZoneId": "Z35JQ4ZFDRYPLV"
                  }
              },
              "CreateDate": 1519777852.502,
              "CreatorRequestId": "9049a1d5-25e4-4115-8625-96dbda9a6093"
          }
      }
      ```

   1. Verwenden Sie die ID der gehosteten Route-53-Zone aus dem vorherigen Schritt (siehe fett gedruckten Text), um den Ressourcendatensatz für die gehostete Zone abzurufen. 

      ```
      aws route53 list-resource-record-sets \
            --hosted-zone-id Z35JQ4ZFDRYPLV
      ```

1. Sie können den DNS auch von einer Instance innerhalb Ihrer VPC mit `dig` abfragen.

   ```
   dig +short myapplication.tutorial
   ```

## Schritt 4: Bereinigen
<a name="create-service-discovery-cleanup"></a>

Wenn Sie mit diesem Tutorial fertig sind, bereinigen Sie die zugeordneten Ressourcen, um Gebühren für ungenutzte Ressourcen zu vermeiden. Dazu gehen Sie wie folgt vor:

1. Deregistrieren Sie die Serviceerkennung Service-Instances mithilfe der zuvor notierten Service-ID und Instance-ID.

   ```
   aws servicediscovery deregister-instance \
         --service-id srv-utcrh6wavdkggqtk \
         --instance-id 16becc26-8558-4af1-9fbd-f81be062a266
   ```

   Die Ausgabe sieht wie folgt aus.

   ```
   {
       "OperationId": "xhu73bsertlyffhm3faqi7kumsmx274n-jh0zimzv"
   }
   ```

1. Überprüfen Sie mithilfe von `OperationId` aus der Ausgabe des vorherigen Schritts, ob die Serviceerkennung-Instances erfolgreich deregistriert wurden.

   ```
   aws servicediscovery get-operation \ 
         --operation-id xhu73bsertlyffhm3faqi7kumsmx274n-jh0zimzv
   ```

   ```
   {
     "Operation": {
           "Id": "xhu73bsertlyffhm3faqi7kumsmx274n-jh0zimzv",
           "Type": "DEREGISTER_INSTANCE",
           "Status": "SUCCESS",
           "CreateDate": 1525984073.707,
           "UpdateDate": 1525984076.426,
           "Targets": {
               "INSTANCE": "16becc26-8558-4af1-9fbd-f81be062a266",
               "ROUTE_53_CHANGE_ID": "C5NSRG1J4I1FH",
               "SERVICE": "srv-utcrh6wavdkggqtk"
           }
       }
   }
   ```

1. Löschen Sie den Service zur Serviceerkennung unter Verwendung der Service-ID.

   ```
   aws servicediscovery delete-service \ 
         --id srv-utcrh6wavdkggqtk
   ```

1. Löschen Sie den Serviceerkennung-Namespace mithilfe der Namespace-ID.

   ```
   aws servicediscovery delete-namespace \ 
         --id ns-uejictsjen2i4eeg
   ```

   Die Ausgabe sieht wie folgt aus.

   ```
   {
       "OperationId": "c3ncqglftesw4ibgj5baz6ktaoh6cg4t-jh0ztysj"
   }
   ```

1. Überprüfen Sie mithilfe der `OperationId` aus der vorherigen Ausgabe des vorherigen Schritts, ob der Serviceerkennung-Namespace erfolgreich gelöscht wurde.

   ```
   aws servicediscovery get-operation \ 
         --operation-id c3ncqglftesw4ibgj5baz6ktaoh6cg4t-jh0ztysj
   ```

   Die Ausgabe sieht wie folgt aus.

   ```
   {
       "Operation": {
           "Id": "c3ncqglftesw4ibgj5baz6ktaoh6cg4t-jh0ztysj",
           "Type": "DELETE_NAMESPACE",
           "Status": "SUCCESS",
           "CreateDate": 1525984602.211,
           "UpdateDate": 1525984602.558,
           "Targets": {
               "NAMESPACE": "ns-rymlehshst7hhukh",
               "ROUTE_53_CHANGE_ID": "CJP2A2M86XW3O"
           }
       }
   }
   ```

1. Aktualisieren Sie die gewünschte Anzahl für den Amazon-ECS-Service auf `0`. Sie müssen dies tun, um den Service im nächsten Schritt zu löschen.

   ```
   aws ecs update-service \
         --cluster tutorial \
         --service ecs-service-discovery \
         --desired-count 0
   ```

1. Löschen Sie den Amazon-ECS-Service.

   ```
   aws ecs delete-service \
         --cluster tutorial \
         --service ecs-service-discovery
   ```

1. Löschen Sie den Amazon-ECS-Cluster.

   ```
   aws ecs delete-cluster \
         --cluster tutorial
   ```

# Verwenden Sie Amazon VPC Lattice, um Ihre Amazon ECS-Services zu verbinden, zu beobachten und zu sichern
<a name="ecs-vpc-lattice"></a>

Amazon VPC Lattice ist ein vollständig verwalteter Anwendungsnetzwerkservice, der es Amazon ECS-Kunden ermöglicht, Anwendungen, die auf AWS Rechendiensten und Konten basieren, zu beobachten VPCs, zu sichern und zu überwachen — ohne dass Codeänderungen erforderlich sind.

VPC Lattice verwendet Zielgruppen, bei denen es sich um eine Sammlung von Rechenressourcen handelt. Diese Ziele führen Ihre Anwendung oder Ihren Service aus und können Amazon EC2 EC2-Instances, IP-Adressen, Lambda-Funktionen und Application Load Balancer sein. Durch die Zuordnung ihrer Amazon ECS-Services zu einer VPC Lattice-Zielgruppe können Kunden jetzt Amazon ECS-Aufgaben als IP-Ziele in VPC Lattice aktivieren. Amazon ECS registriert Aufgaben automatisch für die Zielgruppe von VPC Lattice, wenn Aufgaben für den registrierten Service gestartet werden.

**Anmerkung**  
Wenn Sie fünf VPC-Lattice-Konfigurationen verwenden, kann Ihre Bereitstellungszeit etwas länger sein als bei Verwendung weniger Konfigurationen.

Eine Listener-Regel wird verwendet, um Datenverkehr an eine bestimmte Zielgruppe weiterzuleiten, wenn die Bedingungen erfüllt sind. Ein Listener prüft Verbindungsanforderungen mit dem Protokoll auf dem von Ihnen konfigurierten Port. Ein Service leitet Anfragen auf der Grundlage der Regeln, die Sie bei der Konfiguration Ihres Listeners definiert haben, an seine registrierten Ziele weiter.

Amazon ECS ersetzt eine Aufgabe auch automatisch, wenn sie gemäß den VPC-Lattice-Zustandsprüfungen fehlerhaft wird. Sobald Amazon ECS-Kunden mit VPC Lattice verbunden sind, können sie auch viele andere rechnerübergreifende Konnektivitäts-, Sicherheits- und Observability-Funktionen in VPC Lattice nutzen, wie z. B. die Verbindung zu Diensten über Cluster und Konten mit AWS Resource Access Manager IAM-Integration für Autorisierung und Authentifizierung sowie erweiterte Funktionen zur Datenverkehrsverwaltung. VPCs

Amazon-ECS-Kunden können VPC Lattice wie folgt nutzen:
+ Höhere Entwicklerproduktivität – VPC Lattice steigert die Entwicklerproduktivität, da Sie sich auf die Entwicklung von Features konzentrieren können, während VPC Lattice die Netzwerk-, Sicherheits- und Beobachtbarkeitsherausforderungen auf allen Computerplattformen einheitlich bewältigt.
+ Bessere Sicherheitslage – Mit VPC Lattice können Ihre Entwickler die Kommunikation zwischen Anwendungen und Rechenplattformen einfach authentifizieren und sichern, Verschlüsselung bei der Übertragung erzwingen und detaillierte Zugriffskontrollen mit Authentifizierungsrichtlinien von VPC Lattice anwenden. Auf diese Weise können Sie eine stärkere Sicherheitshaltung einführen, die branchenweit führende regulatorische und Compliance-Anforderungen erfüllt.
+ Verbesserte Skalierbarkeit und Belastbarkeit von Anwendungen – Mit VPC Lattice können Sie ein Netzwerk bereitgestellter Anwendungen mit Features wie pfad-, header- und methodenbasiertem Routing, Authentifizierung, Autorisierung und Überwachung erstellen. Diese Vorteile werden ohne zusätzlichen Ressourcenaufwand für Workloads bereitgestellt und können Bereitstellungen mit mehreren Clustern unterstützen, die Millionen von Anfragen pro Sekunde generieren, ohne dass die Latenz signifikant erhöht wird.
+ Flexibilität bei der Bereitstellung mit heterogener Infrastruktur – VPC Lattice bietet konsistente Features für alle Datenverarbeitungs-Services wie Amazon ECS, Fargate, Amazon EC2, Amazon EKS und Lambda und gibt Ihrem Unternehmen die Flexibilität, die passende Infrastruktur für jede Anwendung auszuwählen.

## So funktioniert VPC Lattice mit anderen Amazon-ECS-Services
<a name="ecs-lattice-compatibility"></a>

Die Verwendung von VPC Lattice mit Amazon ECS kann die Art und Weise, wie Sie andere Amazon-ECS-Services nutzen, ändern, während andere unverändert bleiben.

**Application Load Balancer**  
Sie müssen keinen spezifischen Application Load Balancer mehr für die Verwendung mit dem Zielgruppentyp Application Load Balancer in VPC Lattice erstellen, der dann mit dem Amazon-ECS-Service verknüpft ist. Sie müssen Ihren Amazon-ECS-Service stattdessen nur mit einer VPC-Lattice-Zielgruppe konfigurieren. Sie können sich auch weiterhin dafür entscheiden, Application Load Balancer gleichzeitig mit Amazon ECS zu verwenden.

**Fortlaufende Amazon-ECS-Bereitstellungen**  
Nur fortlaufende Bereitstellungen von Amazon ECS funktionieren mit VPC Lattice, und Amazon ECS überträgt Aufgaben während der Bereitstellung sicher in Services und entfernt sie aus diesen. Codebereitstellung und -bereitstellungen werden nicht unterstützt. Blue/Green 

Weitere Informationen zu VPC Lattice finden Sie im [Benutzerhandbuch für Amazon VPC Lattice](https://docs.aws.amazon.com/vpc-lattice/latest/ug/what-is-vpc-lattice.html).

# Einen Service erstellen, der VPC Lattice verwendet
<a name="ecs-vpc-lattice-create-service"></a>

Sie können entweder das AWS-Managementkonsole oder das verwenden AWS CLI , um einen Service mit VPC Lattice zu erstellen.

## Voraussetzungen
<a name="create-ecs-vpc-lattice-prereqs"></a>

Bevor Sie mit diesem Tutorial beginnen, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind:
+ Die neueste Version von AWS CLI ist installiert und konfiguriert. Weitere Informationen finden Sie unter [Installieren der AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html).
**Anmerkung**  
Sie können Dual-Stack-Service-Endpunkte verwenden, um mit Amazon ECS über die AWS CLI SDKs, und die Amazon ECS-API sowohl über als auch IPv4 zu interagieren. IPv6 Weitere Informationen finden Sie unter [Verwenden von Dual-Stack-Endpunkten in Amazon ECS](dual-stack-endpoint.md).
+ Die unter [Einrichtung für die Verwendung von Amazon ECS](get-set-up-for-amazon-ecs.md) beschriebenen Schritte sind abgeschlossen.
+ Ihr IAM-Benutzer besitzt die im [AmazonECS\$1 FullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonECS_FullAccess)-IAM-Richtlinienbeispiel angegebenen Berechtigungen.

## Erstellen Sie einen Service, der VPC Lattice verwendet, mit dem AWS-Managementkonsole
<a name="ecs-lattice-create-console"></a>

Gehen Sie wie folgt vor, um einen Service mit VPC Lattice mithilfe der AWS-Managementkonsole zu erstellen.

1. [Öffnen Sie die Konsole auf Version 2. https://console.aws.amazon.com/ecs/](https://console.aws.amazon.com/ecs/v2)

1. Klicken Sie im Navigationsbereich auf **Cluster**.

1. Wählen Sie auf der **Cluster**-Seite den Cluster aus, in dem Sie den Service erstellen möchten.

1. Wählen Sie auf der Registerkarte **Services** die Option **Create** (Erstellen) aus.

   Wenn Sie noch nie einen Service erstellt haben, folgen Sie den Schritten unter [Amazon-ECS-Service mithilfe der Konsole erstellen](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-service-console-v2.html). Fahren Sie dann mit diesen Schritten fort, wenn Sie den Abschnitt VPC Lattice erreichen.

1. Wählen Sie **VPC Lattice einschalten**, indem Sie die Schaltfläche aktivieren.

1. Um eine bestehende Rolle zu verwenden, wählen Sie für die **ECS-Infrastrukturrolle für Amazon ECS** eine Rolle aus, die Sie bereits erstellt haben, um sie bei der Erstellung der VPC-Lattice-Zielgruppe zu verwenden. Um eine neue Rolle zu erstellen, wählen Sie **ECS-Infrastrukturrolle erstellen** aus.

1. Wählen Sie die **VPC** aus.

   Die **VPC** hängt vom Netzwerkmodus ab, den Sie bei der Registrierung Ihrer Aufgabendefinition ausgewählt haben. Wenn Sie den `host`- oder `network`-Modus mit EC2 verwenden, wählen Sie Ihre VPC aus. 

   Für den `awsvpc`-Modus wird die VPC automatisch basierend auf der VPC ausgewählt, die Sie unter **Netzwerk** ausgewählt haben, und kann nicht geändert werden.

1. Wählen Sie unter **Zielgruppen** die Zielgruppe(n) aus. Sie müssen mindestens eine Zielgruppe auswählen und können maximal fünf haben. Um zusätzliche Zielgruppen hinzuzufügen, wählen Sie **Zielgruppe hinzufügen** aus. Wählen Sie den **Port-Namen**, **das Protokoll** und den **Port** für jede gewählte Zielgruppe aus. Zum Löschen einer Zielgruppe, wählen Sie **Entfernen** aus.
**Anmerkung**  
Wenn Sie bestehende Zielgruppen hinzufügen möchten, müssen Sie die AWS CLI verwenden. *Anweisungen zum Hinzufügen von Zielgruppen mithilfe von finden Sie unter [register-targets](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/register-targets.html) in der AWS Command Line Interface Referenz. AWS CLI*
Obwohl einem VPC-Lattice-Service mehrere Zielgruppen zugeordnet werden können, kann jede Zielgruppe jeweils nur einem einzigen Service hinzugefügt werden.
Um einen Dienst in einer IPv6 Nur-Konfiguration zu erstellen, wählen Sie Zielgruppen mit einem IP-Adresstyp von. `IPv6`

1. An dieser Stelle navigieren Sie zur VPC-Lattice-Konsole, um mit der Einrichtung fortzufahren. Hier nehmen Sie Ihre neuen Zielgruppen in die Listener-Standardaktion oder in die Regeln eines bestehenden VPC-Lattice-Services auf. 

   Weitere Informationen finden Sie unter [Listener-Regeln für Ihren VPC-Lattice-Service](https://docs.aws.amazon.com/vpc-lattice/latest/ug/listener-rules.html).

**Wichtig**  
Sie müssen das Präfix `vpc-lattice` der Regel für eingehenden Datenverkehr für Ihre Sicherheitsgruppe zulassen. Andernfalls schlagen Aufgaben und Zustandsprüfungen fehl. 

## Erstellen Sie einen Service, der VPC Lattice verwendet, mit dem AWS CLI
<a name="ecs-lattice-create-cli"></a>

Verwenden Sie den AWS CLI , um einen Service mit VPC Lattice zu erstellen. Ersetzen Sie jeden *user input placeholder* durch Ihre Informationen.

1. Erstellen einer Zielgruppen-Konfigurationsdatei Das folgende Beispiel heißt `tg-config.json`.

   ```
   {
       "ipAddressType": "IPV4",
       "port": 443,
       "protocol": "HTTPS",
       "protocolVersion": "HTTP1",
       "vpcIdentifier": "vpc-f1663d9868EXAMPLE"
   }
   ```

1. Verwenden Sie den folgenden Befehl, um eine VPC-Lattice-Zielgruppe zu erstellen.

   ```
   aws vpc-lattice create-target-group \
       --name my-lattice-target-group-ip \
       --type IP \
       --config file://tg-config.json
   ```
**Anmerkung**  
Um einen Dienst in einer IPv6 Nur-Konfiguration zu erstellen, erstellen Sie Zielgruppen mit einem IP-Adresstyp von. `IPv6` Weitere Informationen finden Sie unter [create-target-group](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/create-target-group.html) in der Referenz zum *AWS CLI -Befehl*.

   Beispielausgabe:

   ```
   {
       "arn": "arn:aws:vpc-lattice:us-east-2:123456789012:targetgroup/tg-0eaa4b9ab4EXAMPLE",
       "config": {
           "healthCheck": {
               "enabled": true,
               "healthCheckIntervalSeconds": 30,
               "healthCheckTimeoutSeconds": 5,
               "healthyThresholdCount": 5,
               "matcher": {
                   "httpCode": "200"
               },
               "path": "/",
               "protocol": "HTTPS",
               "protocolVersion": "HTTP1",
               "unhealthyThresholdCount": 2
           },
           "ipAddressType": "IPV4",
           "port": 443,
           "protocol": "HTTPS",
           "protocolVersion": "HTTP1",
           "vpcIdentifier": "vpc-f1663d9868EXAMPLE"
       },
       "id": "tg-0eaa4b9ab4EXAMPLE",
       "name": "my-lattice-target-group-ip",
       "status": "CREATE_IN_PROGRESS",
       "type": "IP"
   }
   ```

1. Die folgende JSON-Datei mit dem Namen *ecs-service-vpc-lattice.json* ist ein Beispiel, das verwendet wird, um einen Amazon ECS-Service an eine VPC Lattice-Zielgruppe anzuhängen. Der `portName` im Beispiel unten ist derselbe, den Sie im `name`-Feld der `portMappings`-Eigenschaft Ihrer Aufgabendefinition definiert haben.

   ```
   {
       "serviceName": "ecs-service-vpc-lattice",
       "taskDefinition": "ecs-task-def",
           "vpcLatticeConfigurations": [
           {
               "targetGroupArn": "arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-0eaa4b9ab4EXAMPLE",
               "portName": "testvpclattice",
               "roleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRoleVpcLattice"
           }
       ],
       "desiredCount": 5,
       "role": "ecsServiceRole"
   }
   ```

   Verwenden Sie den folgenden Befehl, um einen Amazon-ECS-Service zu erstellen und ihn mithilfe des obigen JSON-Beispiels an die VPC-Lattice-Zielgruppe anzuhängen.

   ```
   aws ecs create-service \
       --cluster clusterName \
       --serviceName ecs-service-vpc-lattice \
       --cli-input-json file://ecs-service-vpc-lattice.json
   ```

**Anmerkung**  
VPC Lattice wird auf Amazon ECS Anywhere nicht unterstützt.