Amazon ECS-Serviceparameter aktualisieren - Amazon Elastic Container Service

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-Serviceparameter aktualisieren

Nachdem Sie einen Service erstellt haben, müssen Sie manchmal die Serviceparameter aktualisieren, z. B. die Anzahl der Aufgaben.

Wenn der Service Scheduler neue Aufgaben startet, bestimmt er die Platzierung der Aufgaben in Ihrem Cluster anhand der folgenden Logik.

  • Ermitteln Sie, welche der Container-Instances in Ihrem Cluster die Aufgabendefinition Ihres Dienstes unterstützen können. Sie verfügen beispielsweise über die erforderlichen CPU-, Speicher-, Ports- und Container-Instance-Attribute.

  • Standardmäßig versucht der Service Scheduler, Aufgaben auf diese Weise zwischen den Availability Zones zu verteilen, auch wenn Sie eine andere Platzierungsstrategie wählen können.

    • Sortiert die gültigen Container-Instances nach der geringsten Anzahl von laufenden Aufgaben für diesen Service in derselben Availability Zone wie die Instance. Wenn beispielsweise Zone A über eine ausgeführte Serviceaufgabe verfügt und die Zonen B und C jeweils über keine, werden gültige Container-Instances in Zone B oder C als optimal für eine Platzierung erachtet.

    • Platzieren Sie die neue Serviceaufgabe auf einer gültigen Container-Instance in einer optimalen Availability Zone (basierend auf den vorherigen Schritten), wobei die Container-Instances mit der geringsten Anzahl an ausgeführten Aufgaben für diesen Service bevorzugt werden.

Wenn der Service Scheduler die Ausführung von Aufgaben beendet, versucht er, mithilfe der folgenden Logik das Gleichgewicht zwischen den Availability Zones in Ihrem Cluster aufrechtzuerhalten:

  • Sortieren Sie die Container-Instances nach der größten Anzahl von laufenden Aufgaben für diesen Service in derselben Availability Zone wie die Instance. Wenn beispielsweise Zone A über eine ausgeführte Serviceaufgabe verfügt und die Zonen B und C jeweils über zwei, werden Container-Instances in Zone B oder C optimal zum Beenden erachtet.

  • Stoppen Sie die Aufgabe auf einer Container-Instance in einer optimalen Availability Zone (basierend auf den vorherigen Schritten), wobei Sie die Container-Instances mit der größten Anzahl an ausgeführten Aufgaben für diesen Service bevorzugen sollten.

Ermitteln Sie anhand der Liste, ob Sie den Serviceparameter ändern können.

Neuausgleich der Availability Zone

Gibt an, ob der Availability Zone Rebalancing für den Service verwendet werden soll.

Sie können diesen Parameter für fortlaufende Bereitstellungen ändern.

Strategie für Kapazitätsanbieter

Die Details einer Kapazitätsanbieter-Strategie. Sie können einen Kapazitätsanbieter festlegen, wenn Sie einen Cluster erstellen, eine Aufgabe ausführen oder einen Dienst aktualisieren.

Wenn Sie Fargate verwenden, sind die Kapazitätsanbieter FARGATE oderFARGATE_SPOT.

Wenn Sie Amazon verwenden EC2, handelt es sich bei den Kapazitätsanbietern um Auto Scaling Scaling-Gruppen.

Sie können die Kapazitätsanbieter für fortlaufende Bereitstellungen und blaue/grüne Bereitstellungen ändern.

Die folgende Liste enthält die gültigen Übergänge:

  • Aktualisieren Sie den Fargate-Starttyp auf einen Auto Scaling Scaling-Gruppenkapazitätsanbieter.

  • Aktualisieren Sie den EC2 Amazon-Starttyp auf einen Fargate-Kapazitätsanbieter.

  • Aktualisieren Sie den Fargate-Kapazitätsanbieter auf einen Auto Scaling Scaling-Gruppenkapazitätsanbieter.

  • Aktualisieren Sie den EC2 Amazon-Kapazitätsanbieter auf einen Fargate-Kapazitätsanbieter.

  • Aktualisieren Sie die Auto Scaling Scaling-Gruppe oder den Fargate-Kapazitätsanbieter wieder auf den Starttyp. Wenn Sie die CLI oder API verwenden, übergeben Sie im capacityProviderStrategy Parameter eine leere Liste.

Cluster

Sie können den Clusternamen nicht ändern.

Bereitstellungskonfiguration

Die Bereitstellungskonfiguration umfasst die CloudWatch Alarme und den Schutzschalter, die zur Erkennung von Ausfällen verwendet werden, sowie die erforderliche Konfiguration.

Der Leistungsschalter für eine Bereitstellung bestimmt, ob die Bereitstellung für einen Dienst fehlschlägt, wenn der Dienst keinen stabilen Zustand erreichen kann. Wenn Sie den Deployment Circuit Breaker verwenden, geht eine Servicebereitstellung in den Status „Fehlgeschlagen“ über und es werden keine neuen Aufgaben mehr gestartet. Wenn Sie die Rollback-Option verwenden und eine Dienstbereitstellung fehlschlägt, wird der Dienst auf die letzte Bereitstellung zurückgesetzt, die erfolgreich abgeschlossen wurde.

Wenn Sie einen Service aktualisieren, der Amazon ECS Circuit Breaker verwendet, erstellt Amazon ECS eine Servicebereitstellung und eine Service-Revision. Diese Ressourcen ermöglichen es Ihnen, detaillierte Informationen zum Serviceverlauf einzusehen. Weitere Informationen finden Sie unter Serviceverlauf mithilfe von Amazon ECS-Servicebereitstellungen anzeigen.

Der Service Scheduler verwendet die minimalen gesunden Prozent und maximalen Prozentparameter (in der Bereitstellungskonfiguration für den Service), um die Bereitstellungsstrategie festzulegen.

Wenn ein Dienst den Bereitstellungstyp „Rolling Update (ECS)“ verwendet, stellt der minimale fehlerfreie Prozentsatz eine Untergrenze für die Anzahl der Aufgaben in einem Dienst dar, die während einer Bereitstellung im RUNNING Status verbleiben müssen, als Prozentsatz der gewünschten Anzahl von Aufgaben (auf die nächste Ganzzahl aufgerundet). Der Parameter gilt auch, solange sich alle Container-Instances im DRAINING Status befinden, wenn der Service Aufgaben enthält, die den EC2 Starttyp verwenden. Sie können diesen Parameter verwenden, um die Bereitstellung ohne zusätzliche Cluster-Kapazität durchzuführen. Wenn Ihr Service z. B. eine gewünschte Anzahl von vier Aufgaben und einen Mindestprozentsatz an gesunden Aufgaben von 50 % hat, könnte der Planer zwei bestehende Aufgaben stoppen, um Cluster-Kapazität freizugeben, bevor er zwei neue Aufgaben startet. Der Service betrachtet Aufgaben für Dienste, die keinen Load Balancer verwenden, als fehlerfrei, sofern sie sich im RUNNING Status befinden. Der Dienst betrachtet Aufgaben für Dienste, die einen Load Balancer verwenden, als fehlerfrei, wenn sie sich in diesem RUNNING Status befinden und sie vom Load Balancer als fehlerfrei gemeldet werden. Der Standardwert für den minimalen gesunden Prozentsatz ist 100 Prozent.

Wenn ein Dienst den Bereitstellungstyp „Rolling Update (ECS)“ verwendet, stellt der Parameter „Maximaler Prozentsatz“ eine Obergrenze für die Anzahl der Aufgaben in einem Dienst dar PENDINGRUNNING, die während einer Bereitstellung im STOPPING Status, oder zulässig sind, als Prozentsatz der gewünschten Anzahl von Aufgaben (abgerundet auf die nächste Ganzzahl). Der Parameter gilt auch, solange sich alle Container-Instances im DRAINING Status befinden, wenn der Service Aufgaben enthält, die den EC2 Starttyp verwenden. Mithilfe dieses Parameters können Sie die Größe der Bareitstellungsstapel definieren. Wenn Ihr Service beispielsweise eine gewünschte Anzahl von vier Aufgaben und einen maximalen Prozentwert von 200 Prozent hat, kann der Planer vier neue Aufgaben starten, bevor er die vier älteren Aufgaben stoppt. Voraussetzung dafür ist, dass die dafür erforderlichen Cluster-Ressourcen zur Verfügung stehen. Der Standardwert für den maximalen Prozentsatz beträgt 200 Prozent.

Wenn der Service Scheduler während einer Aktualisierung eine Aufgabe ersetzt, entfernt der Service zuerst die Aufgabe aus dem Load Balancer (falls verwendet) und wartet, bis die Verbindungen ausgelaufen sind. Dann wird das Äquivalent von docker stop an die Container ausgegeben, die in der Aufgabe ausgeführt werden. Das löst ein SIGTERM-Signal und eine Zeitbeschränkung von 30 Sekunden aus, nach der SIGKILL gesendet und ein Stoppen der Container erzwungen wird. Wenn der Container das SIGTERM-Signal normal verarbeitet und innerhalb von 30 Sekunden nach Erhalt des Signals schließt, wird das SIGKILL-Signal gesendet. Der Service-Scheduler startet und stoppt Aufgaben entsprechend der Definition in Ihren Einstellungen für den mindestens fehlerfreien Prozentsatz und den maximalen Prozentsatz.

Der Service-Scheduler ersetzt auch Aufgaben, die nach einem Fehlschlagen einer Container-Zustandsprüfung oder einer Load-Balancer-Zielgruppen-Zustandsprüfung als fehlerhaft eingestuft wurden. Dieser Ersatz hängt von den Parametern maximumPercent und desiredCount der Servicedefinition ab. Wenn eine Aufgabe als fehlerhaft markiert ist, startet der Service-Scheduler zunächst eine Ersatzaufgabe. Dann passiert Folgendes.

  • Wenn die Ersatzaufgabe den Integritätsstatus hatHEALTHY, stoppt der Service Scheduler die fehlerhafte Aufgabe

  • Wenn die Ersatzaufgabe den Zustand UNHEALTHY hat, stoppt der Scheduler entweder die fehlerhafte Ersatzaufgabe oder die vorhandene fehlerhafte Aufgabe, sodass die Gesamtanzahl der Aufgaben auf einen Wert gleich desiredCount eingestellt wird.

Wenn der Parameter maximumPercent den Scheduler daran hindert, zuerst eine Ersatzaufgabe zu starten, stoppt der Scheduler fehlerhafte Aufgaben einzeln nach dem Zufallsprinzip, um Kapazität freizugeben, und startet dann eine Ersatzaufgabe. Der Start- und Stoppvorgang wird fortgesetzt, bis alle fehlerhaften Aufgaben durch fehlerfreie Aufgaben ersetzt wurden. Sobald alle fehlerhaften Aufgaben ersetzt wurden und nur noch fehlerfreie Aufgaben ausgeführt werden, werden, wenn die Gesamtzahl der Aufgaben desiredCount übersteigt, die fehlerfreien Aufgaben nach dem Zufallsprinzip angehalten, bis die Gesamtzahl der Aufgaben gleich desiredCount ist. Weitere Informationen zu maximumPercent und desiredCount finden Sie unter Servicedefinitionsparamater.

Anzahl der gewünschten Aufgaben

Die Anzahl der Instanziierungen der Aufgabe, die in Ihrem Service platziert und weiterhin ausgeführt werden sollen.

Wenn Sie Ihren Dienst vorübergehend beenden möchten, setzen Sie diesen Wert auf 0. Wenn Sie dann bereit sind, den Dienst zu starten, aktualisieren Sie den Dienst mit dem ursprünglichen Wert.

Sie können diesen Parameter für fortlaufende Bereitstellungen und Bereitstellungen in Blau/Grün ändern.

Verwaltete Tags aktivieren

Legt fest, ob verwaltete Amazon ECS-Tags für die Aufgaben im Service aktiviert werden sollen.

Nur Aufgaben, die nach dem Update gestartet wurden, spiegeln das Update wider. Um die Tags für alle Aufgaben zu aktualisieren, verwenden Sie die Option Bereitstellung erzwingen.

Sie können diesen Parameter für fortlaufende Bereitstellungen und blaue/grüne Bereitstellungen ändern.

Aktivieren Sie ECS Exec

Ermittelt, ob Amazon ECS Exec verwendet wird.

Wenn Sie den Wert, der bei der Erstellung des Service festgelegt wurde, nicht überschreiben möchten, können Sie ihn bei der Ausführung dieser Aktion auf Null setzen.

Sie können diesen Parameter für fortlaufende Bereitstellungen ändern.

Nachfrist für den Gesundheitscheck

Der Zeitraum in Sekunden, in dem der Amazon ECS-Service Scheduler fehlerhafte Elastic Load Balancing-, VPC Lattice- und Container-Zustandsprüfungen ignoriert, nachdem eine Aufgabe zum ersten Mal gestartet wurde. Wenn Sie keinen Wert für die Nachfrist für die Integritätsprüfung angeben, wird der Standardwert von verwendet. 0 Wenn Sie keinen der Zustandschecks verwenden, healthCheckGracePeriodSeconds wird er nicht verwendet.

Wenn es eine Weile dauert, bis die Aufgaben Ihres Dienstes gestartet und beantwortet werden, können Sie eine Übergangszeit für Integritätsprüfungen von bis zu 2.147.483.647 Sekunden (etwa 69 Jahre) festlegen. Während dieser Zeit ignoriert der Scheduler des Amazon ECS Services den Status der Zustandsprüfung. Diese Frist kann verhindern, dass der Service-Scheduler Aufgaben als ungesund markiert und stoppt, bevor sie ausreichend Zeit zum Initialisieren bekommen haben.

Sie können diesen Parameter für fortlaufende Bereitstellungen und Bereitstellungen ändern. blue/green

Load Balancers

Sie müssen eine dienstbezogene Rolle verwenden, wenn Sie einen Load Balancer aktualisieren.

Eine Liste von Elastic Load Balancing Balancing-Load Balancer-Objekten. Sie enthält den Namen des Load Balancers, den Container-Namen und den Container-Port, auf den vom Load Balancer aus zugegriffen werden soll. Der Containername entspricht dem, wie er in einer Containerdefinition erscheint.

Amazon ECS aktualisiert die Sicherheitsgruppen nicht automatisch, die mit Elastic Load Balancing-Load Balancern oder Amazon-ECS-Container-Instances verbunden sind.

Wenn Sie eine Load Balancer-Konfiguration hinzufügen, aktualisieren oder entfernen, startet Amazon ECS neue Aufgaben mit der aktualisierten Elastic Load Balancing Balancing-Konfiguration und stoppt dann die alten Aufgaben, wenn die neuen Aufgaben ausgeführt werden.

Für Dienste, die fortlaufende Updates verwenden, können Sie Elastic Load Balancing Balancing-Zielgruppen hinzufügen, aktualisieren oder entfernen. Sie können von einer einzelnen Zielgruppe auf mehrere Zielgruppen und von mehreren Zielgruppen auf eine einzige Zielgruppe aktualisieren.

Für Services, die blue/green Deployments verwenden, können Sie Elastic Load Balancing Balancing-Zielgruppen aktualisieren, CreateDeployment indem CodeDeploy Sie Beachten Sie, dass mehrere Zielgruppen für blue/green Bereitstellungen nicht unterstützt werden. Weitere Informationen finden Sie unter Registrieren mehrerer Zielgruppen bei einem Dienst.

Für Dienste, die den externen Deployment Controller verwenden, können Sie Load Balancer hinzufügen, aktualisieren oder entfernen, indem CreateTaskSetSie Beachten Sie, dass mehrere Zielgruppen für externe Bereitstellungen nicht unterstützt werden. Weitere Informationen finden Sie unter Registrieren mehrerer Zielgruppen bei einem Dienst.

Übergeben Sie eine leere Liste, um Load Balancer zu entfernen.

Sie können diesen Parameter für fortlaufende Bereitstellungen ändern.

Netzwerkkonfiguration

Die Konfiguration des Dienstnetzwerks.

Sie können diesen Parameter für fortlaufende Bereitstellungen ändern.

Einschränkungen bei der Platzierung

Eine Reihe von Beschränkungsobjekten für die Aufgabenplatzierung, um den zu verwendenden Dienst zu aktualisieren. Wenn kein Wert angegeben wird, bleiben die bestehenden Platzierungsbeschränkungen für den Service unverändert. Wenn dieser Wert angegeben wird, überschreibt er alle vorhandenen Platzierungsbeschränkungen, die für den Service definiert wurden. Um alle vorhandenen Platzierungsbeschränkungen zu entfernen, geben Sie ein leeres Array an.

Sie können für jede Aufgabe maximal 10 Einschränkungen angeben. Dieses Limit enthält Einschränkungen in der Aufgabendefinition und solche, die während der Laufzeit festgelegt werden.

Sie können diesen Parameter für fortlaufende und blaue/grüne Bereitstellungen ändern.

Strategie für die Platzierung

Die Objekte der Strategie zur Aufgabenplatzierung sollen aktualisiert werden, um den zu verwendenden Dienst zu aktualisieren. Wenn kein Wert angegeben wird, bleibt die bestehende Platzierungsstrategie für den Service unverändert. Wenn dieser Wert angegeben wird, hat er Vorrang vor der bestehenden Platzierungsstrategie, die für den Service definiert wurde. Um eine bestehende Platzierungsstrategie zu entfernen, geben Sie ein leeres Objekt an.

Sie können diesen Parameter für fortlaufende und blaue/grüne Bereitstellungen ändern.

Version der Plattform

Die Fargate-Plattformversion, auf der Ihr Service läuft.

Ein Service, der eine Linux-Plattformversion verwendet, kann nicht aktualisiert werden, um eine Windows-Plattformversion zu verwenden und umgekehrt.

Sie können diesen Parameter für fortlaufende Bereitstellungen ändern.

Tags weitergeben

Legt fest, ob die Tags aus der Aufgabendefinition oder dem Service an die Aufgabe weitergegeben werden sollen. Wenn kein Wert angegeben wird, werden die Tags nicht weitergegeben.

Nur Aufgaben, die nach dem Update gestartet wurden, spiegeln das Update wider. Um die Tags für alle Aufgaben forceNewDeployment zu aktualisieren, setzen Sie auftrue, sodass Amazon ECS neue Aufgaben mit den aktualisierten Tags startet.

Sie können diesen Parameter für fortlaufende Bereitstellungen und blaue/grüne Bereitstellungen ändern.

Service Connect-Konfiguration

Die Konfiguration für Amazon ECS Service Connect. Dieser Parameter bestimmt, wie der Service eine Verbindung zu anderen Diensten innerhalb Ihrer Anwendung herstellt.

Sie können diesen Parameter für fortlaufende Bereitstellungen ändern.

Serviceregister

Sie müssen eine dienstbezogene Rolle verwenden, wenn Sie die Dienstregister aktualisieren.

Die Details für die Service Discovery-Registrierungen, die diesem Dienst zugewiesen werden sollen. Weitere Informationen finden Sie unter Service Discovery.

Wenn Sie die Service-Registries-Konfiguration hinzufügen, aktualisieren oder entfernen, startet Amazon ECS neue Aufgaben mit der aktualisierten Service-Registries-Konfiguration und stoppt dann die alten Aufgaben, wenn die neuen Aufgaben ausgeführt werden.

Übergeben Sie eine leere Liste, um die Service-Registrierungen zu entfernen.

Sie können diesen Parameter für fortlaufende Bereitstellungen ändern.

Definition der Aufgabe

Die Aufgabendefinition und Revision, die für den Service verwendet werden sollen.

Wenn Sie die von Containern verwendeten Ports in einer Aufgabendefinition ändern, müssen Sie möglicherweise die Sicherheitsgruppen für die Container-Instances aktualisieren, damit sie mit den aktualisierten Ports funktionieren.

Wenn Sie die Aufgabendefinition für den Service aktualisieren, müssen der Containername und der Container-Port, die in der Load-Balancer-Konfiguration angegeben sind, in der Aufgabendefinition verbleiben.

Das Verhalten beim Abrufen von Container-Images ist je nach Starttyp unterschiedlich. Weitere Informationen finden Sie unter einem der folgenden Themen:

Sie können diesen Parameter für fortlaufende Bereitstellungen ändern.

Volume-Konfiguration

Die Details des Volumens, das warconfiguredAtLaunch. Wenn dieser Parameter auf true gesetzt ist, konfiguriert er den Amazon EBS-Aufgabenanhang während der Bereitstellung. Sie können Größe, VolumeType, IOPS, Durchsatz, Snapshot und Verschlüsselung in der Konfiguration konfigurieren. ServiceManaged EBSVolume Der Wert name des Volumes muss mit dem Wert name aus der Aufgabendefinition übereinstimmen. Wenn der Wert auf Null gesetzt ist, wird keine neue Bereitstellung ausgelöst. Andernfalls, wenn sich diese Konfiguration von der vorhandenen unterscheidet, löst sie eine neue Bereitstellung aus.

Sie können diesen Parameter für fortlaufende Bereitstellungen ändern.

VPC-Lattice-Konfiguration

Die VPC-Lattice-Konfiguration für Ihren Service. Dies definiert, wie Ihr Service für service-to-service die Kommunikation in VPC Lattice integriert wird.

Sie können diesen Parameter für fortlaufende Bereitstellungen ändern.

AWS CDK Überlegungen

Der verfolgt den Zustand der Ressourcen AWS CDK nicht. Es weiß nicht, ob Sie einen Service erstellen oder aktualisieren. Kunden sollten die Notluke verwenden, um direkt auf das ecs Service L1-Konstrukt zuzugreifen.

Informationen zu Notluken finden Sie unter Anpassen von Konstrukten aus der Construct-Bibliothek im AWS v2-Entwicklerhandbuch.AWS Cloud Development Kit (AWS CDK)

Gehen Sie wie folgt vor, um Ihren vorhandenen Service auf das ecs.Service Construct zu migrieren:

  1. Verwenden Sie die Notluke, um auf das Konstrukt Service L1 zuzugreifen.

  2. Legen Sie die folgenden Eigenschaften im Service L1-Konstrukt manuell fest.

    Wenn Ihr Service EC2 Amazon-Kapazität nutzt:

    • daemon?

    • placementConstraints?

    • placementStrategies?

    • Wenn Sie den awsvpc Netzwerkmodus verwenden, müssen Sie die vpcSubnets? und die securityGroups? Konstrukte festlegen.

    Wenn Ihr Dienst Fargate verwendet:

    • FargatePlatformVersion

    • Das vpcSubnets? und die securityGroups? Konstrukte.

  3. Stellen Sie das launchType wie folgt ein:

    const cfnEcsService = service.node.findChild('Service') as ecs.CfnService; cfnEcsService.launchType = "FARGATE";

Gehen Sie wie folgt vor, um von einem Starttyp zu einem Kapazitätsanbieter zu migrieren:

  1. Verwenden Sie die Notluke, um auf das Konstrukt Service L1 zuzugreifen.

  2. Fügen Sie das capacityProviderStrategies? Konstrukt hinzu.

  3. Bereitstellen des Services.