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 Service Connect-Komponenten
Wenn Sie Amazon ECS Service Connect verwenden, konfigurieren Sie jeden ECS Amazon-Service so, dass er eine Serveranwendung ausführt, die Netzwerkanfragen empfängt (Client-Server-Service), oder 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. Darüber hinaus ECS erstellt Amazon eine neue Bereitstellung im Service, um die aktuell 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 Skalierung hinzufügt, werden neue Verbindungen von Clients auf alle Aufgaben verteilt. Wenn ein Client-Server-Dienst aktualisiert wird, werden neue Verbindungen von Clients auf die Aufgaben der neuen Version verteilt.
Vorhandene Aufgaben können nicht aufgelöst werden und keine Verbindung zum neuen Endpunkt herstellen. Nur neue Aufgaben mit einer Service Connect-Konfiguration im selben Namespace, die nach dieser Bereitstellung ausgeführt werden, können aufgelöst und eine Verbindung zu diesem Endpunkt hergestellt werden.
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 Dienst 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 im öffentlichen Internet in einer einzigen AWS CloudFormation Vorlage und einem einzigen AWS CloudFormation Stapel verfügbar ist. Die öffentliche Erkennung und Erreichbarkeit sollte zuletzt erstellt werden AWS 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 AWS CloudFormation , dass mehrere ECS Amazon-Dienste nicht parallel oder gleichzeitig bereitgestellt 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 Front-End-Service ohne Service-Connect-Konfiguration vorhanden ist. Die Aufgaben stellen eine Verbindung zu einem vorhandenen Backend-Service her. Fügen Sie dem Back-End-Dienst zunächst eine Client-Server-Service Connect-Konfiguration hinzu und verwenden Sie dabei denselben Namen im DNSoder, den clientAlias
das Frontend verwendet. Dadurch wird eine neue Bereitstellung erstellt, d. h. die gesamte Bereitstellung erfolgt durch Rollback-Erkennung oder andere Methoden AWS Management Console AWS CLI, AWS SDKs um den Back-End-Dienst 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 Management Console, 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 DNS anstelle von Service Connect ein anderes Service Discovery-System verwenden, das auf Service Connect basiert, beginnen alle Frontend- oder Client-Anwendungen, neue Endpunkte und geänderte Endpunktkonfigurationen zu verwenden, nachdem der lokale DNS Cache abgelaufen ist, was in der Regel mehrere Stunden dauert.
Netzwerk
Standardmäßig überwacht der Service Connect-Proxy die Portzuweisung containerPort
aus der Aufgabendefinition. Ihre Sicherheitsgruppenregeln müssen eingehenden (eingehenden) Datenverkehr zu diesem Port aus 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, ECS ändert Amazon den Port des Endpunkts, zu dem die Client-Services Connect, 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 Verkehr auf diesem Port zulassen, der vom Datenverkehr zu diesem Service verwendet wird.
Datenverkehr, den Ihre Anwendungen an für Service Connect konfigurierte ECS Amazon-Dienste senden, erfordert, dass Amazon VPC und die Subnetze über Routing-Tabellenregeln und ACL Netzwerkregeln verfügen, die die containerPort
von Ihnen verwendeten ingressPortOverride
Portnummern zulassen.
Sie können Service Connect verwenden, um Datenverkehr zwischen diesen zu sendenVPCs. Für beide gelten dieselben Anforderungen für RoutingtabellenACLs, Regeln, Netzwerk und SicherheitsgruppenVPCs.
Beispielsweise erstellen zwei Cluster Aufgaben auf unterschiedlichen EbenenVPCs. Ein Service in jedem Cluster ist so konfiguriert, dass er denselben Namespace verwendet. Die Anwendungen in diesen beiden Diensten können jeden Endpunkt im Namespace ohne VPC DNS Konfiguration auflösen. Die Proxys können jedoch nur dann eine Verbindung herstellen, wenn die VPC Peering- oder VPC Subnetz-Routing-Tabellen und das VPC Netzwerk den Datenverkehr auf den und den Portnummern ACLs zulassen. containerPort
ingressPortOverride
Für Aufgaben, die den bridge
Netzwerkmodus verwenden, müssen Sie eine Sicherheitsgruppe mit einer eingehenden Regel erstellen, die den Datenverkehr im oberen dynamischen Portbereich zulässt. Weisen Sie dann die Sicherheitsgruppe allen EC2 Instanzen im Service Connect-Cluster zu.
Service-Connect-Proxy
Wenn Sie einen Service mit Service Connect-Konfiguration erstellen oder aktualisieren, ECS fügt Amazon jeder neuen Aufgabe beim Start einen neuen Container hinzu. 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 Container-Konfiguration im Service. Auf diese Weise können Sie dieselben Aufgabendefinitionen zwischen mehreren Diensten, Namespaces und Aufgaben ohne Service Connect wiederverwenden.
Proxyressourcen
-
Für Aufgabendefinitionen müssen Sie die Speicherparameter CPU und die Speicherparameter festlegen.
Wir empfehlen, Ihrer Aufgabe und Ihrem Speicher für den Service Connect-Proxycontainer 256 CPU Einheiten CPU und mindestens 64 MiB Arbeitsspeicher hinzuzufügen. Bei AWS Fargate ist die niedrigste Speichermenge, die Sie einstellen können, 512 MiB Speicher. Bei Amazon EC2 ist Speicher für Aufgabendefinitionen erforderlich.
-
Für den Dienst legen Sie die Protokollkonfiguration in der Service Connect-Konfiguration fest.
-
Wenn Sie davon ausgehen, dass Aufgaben in diesem Service bei Spitzenlast mehr als 500 Anfragen pro Sekunde empfangen, empfehlen wir, Ihrer Aufgabe CPU in dieser Aufgabendefinition für den Service Connect-Proxycontainer 512 CPU Einheiten hinzuzufügen.
-
Wenn Sie erwarten, mehr als 100 Service Connect-Dienste im Namespace oder insgesamt 2000 Aufgaben für alle ECS Amazon-Services innerhalb des Namespace zu erstellen, empfehlen wir, Ihrem Aufgabenspeicher für den Service Connect-Proxycontainer 128 MiB Speicher hinzuzufügen. Sie sollten dies in jeder Aufgabendefinition tun, die von allen ECS Amazon-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 dieselben IP-AdressenVPC, AWS Service-Endpunkte und externen Datenverkehr.
- Load Balancing
-
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 anderen Dienst mit zwei Aufgaben, die Meine SQL 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 mit diesem Namen gehen an den Proxy, 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 Meine SQL 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.
Im vorherigen Beispiel kann der Proxy eine Verbindung zu einer der Meine SQL Aufgaben herstellen. Wenn der Proxy mehrere Verbindungen zu einer bestimmten Meine SQL Aufgabe hergestellt hat und 5 oder mehr der Verbindungen in den letzten 30 Sekunden fehlgeschlagen sind, vermeidet der Proxy diese SQL Aufgabe Meine Aufgabe für 30 bis 300 Sekunden.
- Wiederholversuche
-
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, er kann jedoch aktualisiert werden.
Optionale Parameter:
idleTimeout‐ Die Zeit in Sekunden, für die eine Verbindung aktiv bleibt, wenn sie inaktiv ist. Der Wert
0
deaktiviertidleTimeout
.Die
idleTimeout
Standardeinstellung fürHTTP
/HTTP2
/GRPC
ist 5 Minuten.Die
idleTimeout
Standardeinstellung fürTCP
ist 1 Stunde.perRequestTimeout‐ Die Wartezeit, bis der Upstream mit einer vollständigen Antwort pro Anfrage antwortet. Ein Wert von
0
schaltet sich ausperRequestTimeout
. Dies kann nur festgelegt werden, wenn derappProtocol
For-AnwendungscontainerHTTP
HTTP2
/istGRPC
. Die Standardeinstellung ist 15 Sekunden.Anmerkung
Wenn auf eine Zeit eingestellt
idleTimeout
ist, die kürzer als istperRequestTimeout
, wird die Verbindung geschlossen, wenn der erreichtidleTimeout
ist und nicht derperRequestTimeout
.
Überlegungen
Beachten Sie bei der Verwendung von Service Connect Folgendes:
-
Aufgaben, die in Fargate ausgeführt werden, müssen die Fargate Linux-Plattformversion
1.4.0
oder höher verwenden, um Service Connect verwenden zu können. -
Die ECS Amazon-Agent-Version auf der Container-Instance muss
1.67.2
oder höher sein. -
Container-Instances müssen die für Amazon ECS optimierte Amazon Linux AMI 2023-Version
20230428
oder höher oder die für Amazon ECS optimierte Amazon Linux AMI 2-Version ausführen, um Service Connect verwenden2.0.20221115
zu können. Diese Versionen verfügen zusätzlich zum ECS Amazon-Container-Agenten über den Service Connect-Agenten. Weitere Informationen zum Service Connect-Agenten finden Sie unter Amazon ECS Service Connect Agentunter GitHub. -
Container-Instances müssen über die
ecs:Poll
-Berechtigung für die Ressourcearn:aws:ecs:
verfügen. Wenn Sie dieregion
:0123456789012
:task-set/cluster
/*ecsInstanceRole
verwenden, müssen Sie keine zusätzlichen Berechtigungen hinzufügen. DieAmazonEC2ContainerServiceforEC2Role
-verwaltete Richtlinie verfügt über die erforderlichen Berechtigungen. Weitere Informationen finden Sie unter ECSIAMAmazon-Container-Instance-Rolle. -
Nur Services, die fortlaufende Bereitstellungen verwenden, werden in Service Connect unterstützt.
-
Aufgaben, die den
bridge
Netzwerkmodus verwenden und Service Connect verwenden, unterstützen denhostname
Container-Definitionsparameter nicht. -
Aufgabendefinitionen müssen das zu verwendende Speicherlimit für Service Connect festlegen. Weitere Informationen finden Sie unter Service-Connect-Proxy.
-
Aufgabendefinitionen, die Speicherlimits für Container 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ätzlichen CPU und in den Aufgabenlimits enthaltenen Speicherlimits, die nicht in den Containerlimits zugewiesen sind, werden vom Service Connect-Proxycontainer und anderen Containern verwendet, die keine Containerlimits festlegen. Weitere Informationen finden Sie unter Service-Connect-Proxy.
-
Sie können Service Connect so konfigurieren, dass ein beliebiger AWS Cloud Map Namespace in derselben Region in derselben AWS-Konto verwendet wird.
-
Jeder Dienst kann nur zu einem Namespace gehören.
-
Nur die Aufgaben, die Dienste 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 vorhandene Dienste erneut 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 Amazon ECS Service Connect-Komponenten.
-
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 Balancer-Datenverkehr wird standardmäßig im
awsvpc
Netzwerkmodus über den Service Connect-Agenten geleitet. Wenn Sie möchten, dass dienstfreier Datenverkehr den Service Connect-Agenten umgeht, verwenden Sie deningressPortOverride
Parameter in Ihrer Service Connect-Dienstkonfiguration.
Service Connect unterstützt Folgendes nicht:
-
Windows-Container
-
HTTP 1.0
-
Eigenständige Aufgaben
-
Dienste, die die Bereitstellungstypen Blau/Grün und externe Bereitstellungen verwenden
-
External
Container-Instances für Amazon ECS Anywhere werden von Service Connect nicht unterstützt. -
PPv2
Regionen mit Service Connect
Amazon ECS Service Connect ist in den folgenden AWS Regionen verfügbar:
Name der Region | Region |
---|---|
USA Ost (Ohio) |
us-east-2 |
USA Ost (Nord-Virginia) |
us-east-1 |
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 (Jakarta) |
ap-southeast-3 |
Asien-Pazifik (Mumbai) |
ap-south-1 |
Asien-Pazifik (Hyderabad) |
ap-south-2 |
Asien-Pazifik (Osaka) |
ap-northeast-3 |
Asien-Pazifik (Seoul) |
ap-northeast-2 |
Asien-Pazifik (Singapur) |
ap-southeast-1 |
Asien-Pazifik (Sydney) |
ap-southeast-2 |
Asien-Pazifik (Melbourne) |
ap-southeast-4 |
Asien-Pazifik (Tokio) |
ap-northeast-1 |
Kanada (Zentral) |
ca-central-1 |
Kanada West (Calgary) |
ca-west-1 |
China (Peking) |
cn-north-1 (Hinweis: TLS for Service Connect ist in dieser Region nicht verfügbar.) |
China (Ningxia) |
cn-northwest-1 (Hinweis: TLS for Service Connect ist in dieser Region nicht verfügbar.) |
Europa (Frankfurt) |
eu-central-1 |
Europa (Irland) |
eu-west-1 |
Europa (London) |
eu-west-2 |
Europa (Paris) |
eu-west-3 |
Europa (Mailand) |
eu-south-1 |
Europa (Spanien) |
eu-south-2 |
Europa (Stockholm) |
eu-north-1 |
Europa (Zürich) |
eu-central-2 |
Israel (Tel Aviv) |
il-central-1 |
Naher Osten (Bahrain) |
me-south-1 |
Naher Osten () UAE |
me-central-1 |
Südamerika (São Paulo) |
sa-east-1 |