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:
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
Überprüfen Sie die Service-Ereignisse in der Amazon ECS-Konsole auf detaillierte Fehlermeldungen.
Überprüfen Sie, ob der Container-Port richtig eingestellt wurde
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:
-
Ü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 Stellen Sie sicher, dass der Pfad zur Integritätsprüfung den Status HTTP 200 zurückgibt.
Testen Sie das Container-Image lokal, um sicherzustellen, dass es korrekt gestartet wird.
Ü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
MainDer
MainContainer hat genau eine TCP-Port-Zuordnung, bei der ein Container-Port und ein Portname definiert sindDie Aufgabendefinition hat einige
FARGATEKompatibilitä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:
-
Stellen Sie sicher, dass die Bereitstellung Ihrer Ressourcen abgeschlossen ist
-
Stellen Sie sicher, dass die Aufgaben ausgeführt werden und einwandfrei funktionieren:
aws ecs describe-services --cluster my-cluster --services my-express-service -
Ü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 -
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:
-
Ü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 Überprüfen Sie die Anwendungsprotokolle auf Fehler oder Leistungswarnungen.
Prüfen Sie, ob Auto Scaling angemessen auf die Belastung reagiert.
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:
-
Ü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 Überprüfen Sie die CloudWatch Metriken, um sicherzustellen, dass die Skalierungsauslöser erfüllt werden.
Stellen Sie sicher, dass der Service zur Skalierung berechtigt ist (überprüfen Sie die IAM-Rollen).
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