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.
Komponenten von Amazon ECS Service Connect
Wenn Sie Amazon ECS Service Connect verwenden, konfigurieren Sie jeden Amazon ECS-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. 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 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 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 Front-End-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 Management Console 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 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 anstelle von Service Connect ein anderes Serviceerkennungssystem verwenden, das auf DNS basiert, beginnen alle Front-End- 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
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, ä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 Verkehr auf diesem Port zulassen, der für den Verkehr zu diesem Dienst 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 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, fügt Amazon ECS 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 CPU- und Speicherparameter festlegen.
Wir empfehlen, Ihrer Task-CPU und Ihrem Arbeitsspeicher für den Service Connect-Proxycontainer weitere 256 CPU-Einheiten und mindestens 64 MiB Arbeitsspeicher hinzuzufügen. Auf AWS -Fargate beträgt die niedrigste Speichermenge, die Sie einstellen können, 512 MB 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 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.
- 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 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 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 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.
Im vorherigen Beispiel kann der Proxy eine Verbindung zu einer 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.
- 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, kann aber aktualisiert werden.
Optionale Parameter:
idleTimeout — Die Zeit in Sekunden, für die eine Verbindung aktiv bleibt, wenn sie inaktiv ist. Der Wert deaktiviert.
0
idleTimeout
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. Der Wert
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 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 22.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 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 IAM-Rolle für Amazon-ECS-Container-Instance. -
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ä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.
-
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 Komponenten von Amazon ECS Service Connect.
-
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 nicht in Service Connect 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 |
Asia Pacific (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 (Malaysia) |
ap-southeast-5 |
Asien-Pazifik (Tokio) |
ap-northeast-1 |
Kanada (Zentral) |
ca-central-1 |
Kanada West (Calgary) |
ca-west-1 |
China (Peking) |
cn-north-1 (Hinweis: TLS für Service Connect ist in dieser Region nicht verfügbar.) |
China (Ningxia) |
cn-northwest-1 (Hinweis: TLS für 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 (VAE) |
me-central-1 |
Südamerika (São Paulo) |
sa-east-1 |