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-Modus-Services
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 ist im Status AKTIV oder WIRD AUSGELAUFEN
Symptome: DescribeServiceRevisions Zeigt an, dass Ressourcen immer noch bereitgestellt oder deprovisioniert werden. DescribeServices zeigt, dass die Bereitstellung nicht stabilisiert ist
Mögliche Ursachen und Lösungen:
-
Unzureichende IAM-Berechtigungen — Stellen Sie sicher, dass die Aufgabenausführungsrolle und die Infrastrukturrolle über die erforderlichen Berechtigungen verfügen, wie in den jeweiligen verwalteten Richtlinien angegeben.
# Check if the role has the required managed policy aws iam list-attached-role-policies --role-name ecsTaskExecutionRole -
Fehler beim Abrufen von Bildern — 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 — Überprüfen Sie, ob Subnetze Internetzugang oder Amazon VPC-Endpunkte für Dienste haben. AWS
-
Ressourcenlimits — Vergewissern Sie sich, dass Ihr Konto über ausreichend Fargate-Kapazität verfügt und die Servicekontingente nicht erreicht wurden.
Diagnoseschritte:
Verwenden Sie DescribeExpressGatewayService , um Ihre aktuelle Service-Revision abzurufen, gefolgt von, DescribeServiceRevisions ServiceRevision um den Status der Bereitstellung oder Deprovisionierung abzurufen
Detaillierte Fehlermeldungen finden Sie in den Service-Ereignissen in der Amazon ECS-Konsole.
Überprüfen Sie, ob der Container-Port richtig eingestellt wurde
Überprü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 Integritätsprüfung — Die Anwendung reagiert nicht auf Integritätsprüfungen am erwarteten Port oder Pfad.
-
Ressourcenbeschränkungen — Unzureichende 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 Logs. Den Namen der Protokollgruppe erhalten Sie von 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.
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 Fehlerbehebung:
-
Stellen Sie sicher, dass Ihre Ressourcen die Bereitstellung abgeschlossen haben
-
Stellen Sie sicher, dass die Aufgaben ausgeführt werden und fehlerfrei sind:
aws ecs describe-services --cluster my-cluster --services my-express-service -
Überprüfen Sie den Zustand der Application Load Balancer Balancer-Zielgruppen:
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: Anwendungen reagieren 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 Verteilung von Anfragen.
Optimierungsstrategien:
Erhöhen Sie die CPU- oder Speicherzuweisung, wenn die Ressourcen begrenzt sind.
Passen Sie die Schwellenwerte für die auto Skalierung so an, dass die Skalierung früher erfolgt.
Optimieren Sie den Anwendungscode und die Datenbankabfragen.
Auto Scaling funktioniert nicht wie erwartet
Symptome: Der Dienst wird bei hoher Last nicht hochskaliert oder bei niedriger Last nicht herunterskaliert.
Schritte zur Fehlerbehebung:
-
Ü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 über die Berechtigung zur Skalierung verfügt (überprüfen Sie die IAM-Rollen).
Suchen Sie nach Skalierungsaktivitäten und deren Ergebnissen.
Tools zum Überwachen und Debuggen
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-, Arbeitsspeicher-, Festplatten- und Netzwerkmetriken
Dashboards zur Leistungsüberwachung
Korrelation und Analyse von Protokollen
Anomalie-Erkennung