Wenn ich meine Anwendung auf Amazon Elastic Container Service (ECS) aktualisiere, möchte ich neue Aufgaben ohne Ausfallzeiten oder Unterbrechungen der laufenden Services bereitstellen.
Lösung
Gehe wie folgt vor, um neue Aufgaben ohne Ausfallzeiten zu starten.
Bereitstellungsparameter so konfigurieren, dass sie einen Bereitstellungstyp für fortlaufende Aktualisierungen verwenden
Für Bereitstellungen ohne Ausfallzeiten in Amazon ECS empfiehlt es sich, Minimaler fehlerfreier Prozentsatz auf 100 % und Maximaler Prozentsatz auf 200 % festzulegen. Weitere Informationen zu den Parametern „Minimaler fehlerfreier Prozentsatz“ und „Maximaler Prozentsatz“ findest du unter Bereitstellungskonfiguration.
Gehe wie folgt vor, um die Bereitstellungsparameter zu konfigurieren:
- Öffne die Amazon-ECS-Konsole.
- Wähle Cluster.
- Wähle auf der Seite Cluster-Details unter Services den Service aus, den du aktualisieren möchtest. Wähle dann Aktualisieren.
- Konfiguriere unter Bereitstellungskonfiguration die Werte Min running tasks % und Max running tasks %.
- Wähle Service aktualisieren.
Wichtig: Amazon ECS verwaltet den Container-Bereitstellungsprozess, kümmert sich jedoch nicht um das Routing des Datenverkehrs. Wenn du einen Load Balancer verwendest, konfiguriere den Load Balancer so, dass der Datenverkehr an deine Amazon ECS-Aufgaben weitergeleitet wird. Wenn du Blau/Grün-Bereitstellungen mit AWS CodeDeploy verwendest, überprüfe die Konfiguration der Datenverkehrsverwaltung.
Den stopTimeout-Parameter der Container-Instance in der Aufgabendefinition konfigurieren
Stelle den stopTimeout-Parameter ein, um sicherzustellen, dass die Anwendung während der Bereitstellung über genügend Pufferzeit verfügt, um Aufgabenanforderungen abzuschließen. Aktualisiere die Amazon ECS-Aufgabendefinition und konfiguriere dann auf Neue Aufgabendefinitionsrevision erstellen unter Container-Timeouts – optional den Stopp-Timeout-Wert.
Konfiguration der ELB-Zielgruppeneinstellungen
Gehe wie folgt vor, um die Elastic Load Balancing (ELB)-Zielgruppeneinstellungen zu konfigurieren:
- Öffne die Amazon-EC2-Konsole.
- Wähle Zielgruppen und dann die Zielgruppe aus, die mit deinem Amazon ECS-Service verknüpft ist.
- Wähle die Registerkarte Gruppendetails. Konfiguriere dann den Pfad der Zustandsprüfung, das Zustandsprüfungsprotokoll, den Port der Zustandsprüfung, den Healthy threshold (Schwellenwert für fehlerfreien Zustand) und den Unhealthy threshold (Schwellenwert für fehlerhaften Zustand) mit deinen Werten.
- Wähle die Registerkarte Attribute und konfiguriere dann den Wert Verzögerung bei der Abmeldung, damit er die Anforderungen deiner Anwendung erfüllt.
Hinweis: Es hat sich bewährt, das Attribut Verzögerung bei der Abmeldung so einzustellen, dass die Antwortzeit der Anwendung ungefähr doppelt so lang ist.
- (Optional) Richte Sticky Sessions für den Load Balancer ein, sodass laufende Anwendungsanforderungssitzungen mit der vorhandenen Aufgabe abgeschlossen werden.
CodeDeploy für erweiterte Bereitstellungsstrategien verwenden
Verwende CodeDeploy, um den Status des Amazon ECS-Service vor der Bereitstellung zu überprüfen.
Hinweis: Die Verlagerung des All-at-Once-Blau/Grün-Bereitstellungs-Datenverkehrs kann zu Service-Unterbrechungen führen.
Automatischen Ausgleich für Spot Instances einrichten
Aktiviere den Spot-Instance-Ausgleich für die Container-Instances, um Instances automatisch auszugleichen.