View a markdown version of this page

Fehlerbehebung bei Amazon ECS Express Mode-Diensten - 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.

Fehlerbehebung bei Amazon ECS Express Mode-Diensten

Dieser Abschnitt hilft Ihnen dabei, häufig auftretende Probleme bei der Bereitstellung und Verwaltung von Expressmodus-Diensten zu identifizieren und zu lösen.

Bereitstellungsprobleme

Der Dienst steckt im Status ACTIVE oder DRAINING

Symptome: DescribeServiceRevisions Zeigt an, dass Ressourcen immer noch bereitgestellt oder aufgehoben werden. DescribeServices zeigt, dass die Bereitstellung nicht stabilisiert ist

Mögliche Ursachen und Lösungen:

  • Unzureichende IAM-Berechtigungen — Stellen Sie sicher, dass die Rollen für die Aufgabenausführung und die Infrastrukturrolle über die erforderlichen Berechtigungen verfügen, wie sie in den jeweiligen verwalteten Richtlinien aufgeführt sind.

    # Check if the role has the required managed policy aws iam list-attached-role-policies --role-name ecsTaskExecutionRole
  • Fehler beim Abrufen von Images — Stellen Sie sicher, dass das Container-Image vorhanden ist und darauf zugegriffen werden kann.

    # Test image pull manually docker pull 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-app:latest
  • Probleme mit der Netzwerkkonnektivität — Vergewissern Sie sich, dass Subnetze über Internetzugang oder Amazon VPC-Endpunkte für Dienste verfügen. AWS

  • Ressourcenbeschränkungen — Stellen Sie sicher, dass Ihr Konto über ausreichende Fargate-Kapazität verfügt und die Servicekontingente nicht erreicht wurden.

Diagnoseschritte:

  1. Verwenden Sie diese DescribeExpressGatewayService Option, um Ihre aktuelle Servicerevision abzurufen, gefolgt von der ServiceRevision , DescribeServiceRevisions um den Status der Bereitstellung oder Aufhebung der Bereitstellung abzurufen

  2. Überprüfen Sie die Service-Ereignisse in der Amazon ECS-Konsole auf detaillierte Fehlermeldungen.

  3. Überprüfen Sie, ob der Container-Port richtig eingestellt wurde

  4. Prüfen Sie die AWS Servicekontingente für Amazon ECS und Fargate.

Fehler beim Starten der Aufgabe

Symptome: Aufgaben können nicht gestartet werden oder werden sofort nach dem Start beendet.

Häufige Ursachen:

  • Anwendungsfehler — Die Container-Anwendung wird aufgrund von Konfigurations- oder Laufzeitfehlern beendet.

  • Fehler bei der Systemdiagnose — Die Anwendung reagiert nicht auf Zustandsprüfungen am erwarteten Port oder Pfad.

  • Ressourcenbeschränkungen — Ungenügende CPU- oder Speicherzuweisung für die Anwendung.

  • Fehlende Umgebungsvariablen oder Geheimnisse — Die erforderliche Konfiguration ist für die Anwendung nicht verfügbar.

Schritte zur Lösung:

  1. Überprüfen Sie die CloudWatch Anwendungsprotokolle in den Protokollen. Den Namen der Protokollgruppe finden Sie unter DescribeServiceRevisions:

    aws logs describe-log-streams --log-group-name /ecs/express-service-my-app aws logs get-log-events --log-group-name /ecs/express-service-my-app --log-stream-name stream-name
  2. Stellen Sie sicher, dass der Pfad zur Integritätsprüfung den Status HTTP 200 zurückgibt.

  3. Testen Sie das Container-Image lokal, um sicherzustellen, dass es korrekt gestartet wird.

  4. Überprüfen Sie die CPU- und Speicherzuweisungen und passen Sie sie bei Bedarf an.

Fehler bei der Definition benutzerdefinierter Aufgaben

Die Erstellung oder Aktualisierung des Dienstes schlägt mit einem fehlInvalidParameterException, wenn der taskDefinitionArn Parameter verwendet wird.

„Aufgabe DefinitionArn kann nicht mit PrimaryContainer, Ausführung, Aufgabe RoleArnRoleArn, CPU oder Speicher bereitgestellt werden.“

Der taskDefinitionArn Parameter kann nicht mitprimaryContainer, executionRoleArn taskRoleArncpu, oder memory im selben API-Aufruf angegeben werden. Der Expressmodus leitet diese Werte aus der bereitgestellten Aufgabendefinition ab.

„Die Aufgabendefinition muss einen Container mit dem Namen 'Main' mit einer einzigen TCP-Port-Zuordnung enthalten.“

Ihre Aufgabendefinition erfüllt nicht die Anforderungen für den Expressmodus. Stellen Sie sicher, dass Folgendes vorhanden ist:

  • Ein Container mit dem Namen Main

  • Der Main Container hat genau eine TCP-Port-Zuordnung, bei der ein Container-Port und ein Portname definiert sind

  • Die Aufgabendefinition hat einige FARGATE Kompatibilitäten

Probleme mit der Verbindung

Die Anwendung ist über den Load Balancer nicht erreichbar

Symptome: Die Anwendungs-URL gibt Timeouts oder Verbindungsfehler zurück.

Schritte zur Problembehandlung:

  1. Stellen Sie sicher, dass die Bereitstellung Ihrer Ressourcen abgeschlossen ist

  2. Stellen Sie sicher, dass die Aufgaben ausgeführt werden und einwandfrei funktionieren:

    aws ecs describe-services --cluster my-cluster --services my-express-service
  3. Überprüfen Sie den Zustand der Application Load Balancer-Zielgruppe:

    aws elbv2 describe-target-health --target-group-arn arn:aws:elasticloadbalancing:region:account:targetgroup/name/id
  4. Stellen Sie sicher, dass die Anwendung den richtigen Port im Container abhört.

Leistungsprobleme

Langsame Antwortzeiten

Symptome: Die Anwendung reagiert langsamer als erwartet.

Diagnostischer Ansatz:

  1. Überwachen Sie die CPU- und Speicherauslastung:

    # Check CloudWatch metrics for the service aws cloudwatch get-metric-statistics \ --namespace AWS/ECS \ --metric-name CPUUtilization \ --dimensions Name=ServiceName,Value=my-express-service Name=ClusterName,Value=my-cluster \ --start-time 2024-01-01T00:00:00Z \ --end-time 2024-01-01T01:00:00Z \ --period 300 \ --statistics Average
  2. Überprüfen Sie die Anwendungsprotokolle auf Fehler oder Leistungswarnungen.

  3. Prüfen Sie, ob Auto Scaling angemessen auf die Belastung reagiert.

  4. Analysieren Sie die Load Balancer-Metriken für die Anforderungsverteilung.

Strategien zur Optimierung:

  • Erhöhen Sie die CPU- oder Speicherzuweisung, wenn die Ressourcen begrenzt sind.

  • Passen Sie die Schwellenwerte für die automatische Skalierung an, um eine frühere Skalierung vorzunehmen.

  • Optimieren Sie Anwendungscode und Datenbankabfragen.

Die automatische Skalierung funktioniert nicht wie erwartet

Symptome: Der Dienst wird bei hoher Auslastung nicht hochskaliert oder bei niedriger Last nicht herunterskaliert.

Schritte zur Problembehebung:

  1. Überprüfen Sie die Auto Scaling-Richtlinien und deren Konfiguration:

    aws application-autoscaling describe-scaling-policies \ --service-namespace ecs \ --resource-id service/my-cluster/my-express-service
  2. Überprüfen Sie die CloudWatch Metriken, um sicherzustellen, dass die Skalierungsauslöser erfüllt werden.

  3. Stellen Sie sicher, dass der Service zur Skalierung berechtigt ist (überprüfen Sie die IAM-Rollen).

  4. Prüfen Sie, ob Skalierungsaktivitäten und deren Ergebnisse vorliegen.

Überwachungs- und Debugging-Tools

Verwenden von CloudWatch Container Insights

Aktivieren Sie Container Insights für eine umfassende Überwachung:

aws ecs put-account-setting --name containerInsights --value enabled

Container Insights bietet:

  • CPU-, Speicher-, Festplatten- und Netzwerkmetriken

  • Dashboards zur Leistungsüberwachung

  • Korrelation und Analyse protokollieren

  • Anomalie-Erkennung