Direkt zum Inhalt

Wie behebe ich Probleme mit der Zielabmeldung für meine Amazon ECS-Aufgabe?

Lesedauer: 4 Minute
0

Meine Amazon Elastic Container Service (Amazon ECS)-Aufgabe wurde von der Zielgruppe abgemeldet.

Behebung

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

Wenn die Amazon ECS-Aufgabe von der Zielgruppe abgemeldet wird, überprüfe die Aufgabe auf Fehlermeldungen. Oder führe den folgenden AWS-CLI-Befehl describe-tasks aus:

aws ecs describe-tasks \
    --cluster cluster-name \
    --tasks task-ARN

Hinweis: Ersetze cluster-name durch den Cluster-Namen und task-ARN durch deinen Aufgaben-ARN. Details zu angehaltenen Aufgaben sind nach Anhalten der Aufgaben nur 1 Stunde lang verfügbar.

Überprüfe exitCode, reason, stopCode und stoppedReason in der Befehlsausgabe und behebe dann die Probleme mit der angehaltenen Aufgabe.

Prüfen, ob ein essenzieller Container in der Aufgabe beendet wurde

Alle Aufgaben müssen mindestens einen essenziellen Container haben. Wenn der essenzielle Container ausfällt oder angehalten wird, hält Amazon ECS alle Container in der Aufgabe an. Weitere Informationen findest du in deinen Anwendungsprotokollen.

Wenn die Aufgabe den awslogs-Protokolltreiber verwendet, führe den folgenden Befehl get-log-events aus, um die Anwendungsprotokolle in Amazon CloudWatch zu überprüfen:

aws logs get-log-events \
--log-group-name awslogs-group \
--log-stream-name awslogs-stream-prefix/container-name/task-id

Hinweis: Ersetze awslogs-group durch den Namen der Protokollgruppe, awslogs-stream-prefix durch den Namen des Protokollstreams, container-name durch den Container-Namen und task-id durch die Aufgaben-ID.

Ein Beispiel für eine Aufgabendefinition, die Protokolle an CloudWatch sendet, findest du unter Beispiel für eine Amazon ECS-Aufgabendefinition: Weiterleiten von Protokollen an CloudWatch.

Nach OutofMemory-Problemen suchen

Wenn die Prozesse des Containers mehr Speicher verbrauchen als du in der Aufgabendefinition zugewiesen hast, wird der Aufgabencontainer beendet.

Weise dem Container mehr Speicher zu, um dieses Problem zu beheben. Es hat sich bewährt, Speicherparameter in einer Umgebung zu laden, zu testen und abzustimmen, die nicht in der Produktion ist. Es ist auch eine bewährte Methode, den Speicher schrittweise zu erhöhen und dann die Leistung zu überwachen. Erhöhe beispielsweise 256 MB auf 512 MB. Wenn du den Aufgabenspeicher aktualisierst, überprüfe auch die CPU-Zuweisung. Weitere Informationen findest du unter Bewährte Methoden für Amazon ECS-Aufgabengrößen.

Um den Speicher zu aktualisieren, überprüfe, ob du den Speicher im Container oder in der Aufgabendefinition definiert hast. Aktualisiere die Aufgabendefinition und aktualisiere dann den Service, um die neue Aufgabendefinitionsrevision zu verwenden. Überwache den Service, um sicherzustellen, dass die Aufgabendefinition erfolgreich mit den neuen Speichereinstellungen bereitgestellt wird.

Weitere Schritte zur Fehlerbehebung findest du unter Wie behebe ich OutOfMemory-Fehler in Amazon ECS?

Überprüfung der Einstellungen für die Zustandsprüfung

Informationen zur Behebung von Zustandsprüfungsfehlern bei AWS Fargate-Aufgaben findest du unter Wie behebe ich Fehler bei Zustandsprüfungen für Amazon ECS-Aufgaben auf Fargate?

Fehler beim Abmelden können auftreten, wenn eine Aufgabe die Zustandsprüfungen von Elastic Load Balancing (ELB) nicht besteht und du eine der folgenden Fehlermeldungen erhältst:

  • „(service AWS-service) (port 8080) is unhealthy in (target-group arn:aws:elasticloadbalancing:us-east-1:111111111111:targetgroup/aws-targetgroup/123456789) due to (reason Health checks failed with these codes: [5xx]/[4xx]/[3xx]) or (Request timed out).“
  • "(service AWS-Service) (task eaa3ec9e9f104070b461490987654321) failed container health checks." („(Service AWS-Serivce) (Aufgabe eaa3ec9e9f104070b461490987654321) hat Container-Zustandsprüfung nicht bestanden.“)
  • „(service AWS-Service) (instance 10.122.144.145) (port 8080) is unhealthy in (target-group arn:aws:elasticloadbalancing:ap-south-1:120987654321:targetgroup/AWS-Service-TG/159c835dc9d8cf84) due to (reason Target is in an Availability Zone that is not enabled for the load balancer).“

Möglicherweise erhältst du auch die folgende Fehlermeldung in der Amazon ECS-Konsole:

„Task failed ELB health checks in (target-group arn:aws:elasticloadbalancing:us-east-1:111111111111:targetgroup/aws-targetgroup/123456789)“

Um dieses Problem zu beheben, stelle sicher, dass der Endpunkt, den du in der Zielgruppen-Zustandsprüfung konfiguriert hast, korrekt ist.

Wenn deine Amazon ECS-Aufgaben nur langsam auf Zustandsprüfungen reagieren, empfiehlt es sich, den Wert des healthCheckGracePeriodSeconds-Parameters zu erhöhen. Verwende außerdem den langsamen Startmodus, damit sich die Ziele aufwärmen können, bevor der Load Balancer ihnen die Zustandsprüfungsanforderungen sendet.

Prüfen der Aufgaben- und Service-Konfiguration

Prüfe die CPU- und Speichermetriken für den Service. Eine hohe Ressourcenauslastung kann dazu führen, dass die Anwendung nicht mehr reagiert und ein 5xx-Fehler auftritt. Informationen zur Behebung dieser Probleme bei Aufgaben mit Fargate- und Amazon EC2-Starttypen findest du unter Wie kann ich die hohe Speicherauslastung bei Amazon ECS-Aufgaben auf Fargate überwachen?

Stelle sicher, dass die Sicherheitsgruppen der Elastic-Network-Schnittstelle oder der Container-Instance der Aufgabe den Datenverkehr vom Load Balancer an den erforderlichen Ports des Netzwerkmodus zulassen:

  • Lasse für den awsvpc-Netzwerkmodus den Port zu, den du in der Aufgabendefinition als containerPort definiert hast.
  • Lasse für den bridge-Netzwerkmodus die flüchtigen Ports (32768-60999) zu.

Ähnliche Informationen

Fehlermeldungen bei angehaltenen Amazon ECS-Aufgaben

Verwendung eines Application Load Balancer für Amazon ECS

Protokollierung und Überwachung in Amazon Elastic Container Service

AWS OFFICIALAktualisiert vor einem Jahr