Was mache ich, wenn mein Amazon ECS-Cluster als Teil eines AWS CloudFormation-Stacks nicht gelöscht werden kann?

Lesedauer: 4 Minute
0

Mein Amazon Elastic Container Service (Amazon ECS)-Cluster kann nicht gelöscht werden.

Kurzbeschreibung

Ein Amazon ECS-Cluster kann aufgrund eines Problems mit Ressourcenabhängigkeiten möglicherweise nicht gelöscht werden. Wenn du einen ECS-Cluster erstellst, ordnet AWS CloudFormation dem Cluster Ressourcen zu, wie Auto-Scaling-Gruppen, Virtual Private Clouds (VPCs) und Load Balancer. Diese Ressourcen und andere Probleme mit AWS CloudFormation können das Löschen des Clusters verhindern.

Wenn du nach dem 24. November 2015 die ECS-Konsole oder den Assistenten zum Erstellen eines Clusters verwendet hast, um den Cluster zu erstellen, verfügt der Cluster über einen CloudFormation-Stack. Wenn du deinen Cluster löschst, treten möglicherweise die folgenden Fehler bei deinem EC2ContainerService-yourClusterName auf:

  • „The vpc 'vpc-1234567' has dependencies and cannot be deleted“
  • „The security group sg-123456 failed to delete due to the error "resource sg-123456 has a dependent object“
  • „User: arn:aws:sts::1111222233334444:assumed-role/example-role/example-user is not authorized to perform: ecs:DeleteCluster on resource: arn:aws:ecs:Region:1111222233334444:cluster/example-cluster“

Aufgrund der genannten Fehler schlägt das Löschen des Clusters fehl, und der CloudFormation-Stack wechselt in den Status DELETE_FAILED.

Lösung

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.

Überprüfung der IAM-Berechtigungen

Führe die folgenden Schritte aus:

  1. Öffne die AWS Identity and Access Management (IAM, Identitäts- und Zugriffsmanagement)-Konsole.
  2. Wähle im Navigationsbereich Rollen aus.
  3. Gib auf der Seite Rollen die IAM-Rolle ein, die in der Fehlermeldung angegeben ist. Um die Fehlermeldung auf der Seite mit dem AWS CloudTrail-Ereignisverlauf zu überprüfen, filtere nach den DeleteCluster-API-Aufrufen.
    Hinweis: Die IAM-Entität, die den API-Aufruf durchführt, ist die Entität, die versucht, den Amazon ECS-Cluster zu löschen.
  4. Wähle die IAM-Entität aus.
  5. Wähle die Registerkarte Berechtigungen aus.
  6. Prüfe, ob die Berechtigungsrichtlinie die erforderliche Berechtigung ecs:Delete* enthält. Wenn die Berechtigung fehlt, gewähre der IAM-Entität AmazonECS_FullAccess.

Ressourcen mit Abhängigkeiten überspringen, um den Cluster zu löschen

Führe die folgenden Schritte aus:

  1. Öffne die CloudFormation-Konsole.
  2. Wähle für Filter die Option Aktiv und dann Fehlgeschlagen aus.
  3. Wähle den fehlgeschlagenen Stack aus.
  4. Wähle Aktionen und dann Stack löschen.
  5. Wähle die Ressourcen aus, die nicht gelöscht werden konnten.
  6. Wähle Ja, löschen.
    Wichtig: Wenn du eine Ressource nicht löschen kannst, den Stack aber löschen möchtest, wähle Beibehaltung. Du kannst auch den AWS CLI-Befehl delete-stack verwenden, um Ressourcen beizubehalten.
  7. Lösche den ECS-Cluster.

Löschen der beibehaltenen Ressourcen

Die folgenden Beispiele zeigen, wie du Ressourcen löschst, die in der Regel dem CloudFormation-Stack zugeordnet sind.

Abhängigkeit von Sicherheitsgruppen

Im folgenden Beispiel beziehen sich die Regeln für eingehenden oder ausgehenden Datenverkehr einer Sicherheitsgruppe auf andere Sicherheitsgruppen, sodass du deinen Cluster nicht löschen kannst.

Gehe wie folgt vor, um Abhängigkeiten von Sicherheitsgruppen zu löschen:

  1. Führe den Befehl describe-security-groups aus, um die zugehörigen Sicherheitsgruppen zu finden:
    aws ec2 describe-security-groups --filters Name=ip-permission.group-id,Values=[sg-xxxxxxxxx] --region us-east-1 | jq '.SecurityGroups[] .GroupId'
    Hinweis: jq ist ein JSON-Prozessor für die Befehlszeile.
  2. Lösche die Abhängigkeiten für die Sicherheitsgruppe, die du löschen möchtest.
  3. Lösche die Sicherheitsgruppenressource.

VPC-Abhängigkeit

Zu den üblichen VPC-Abhängigkeiten gehören Internet-Gateways, Subnetze und Amazon Elastic Compute Cloud (Amazon EC2)-Instances.

Gehe wie folgt vor, um VPC-Abhängigkeiten zu löschen:

  1. Führe den Befehl describe-subnets aus, um die abhängigen Ressourcen deiner VPC zu identifizieren:
    aws ec2 describe-subnets --filters "Name=vpc-id,Values=vpc-########" --region RegionId | grep SubnetId
    Hinweis: Ersetze vpc-######## durch deinen VPC-Wert und RegionId durch deine AWS-Regions-ID. Du kannst ähnliche describe_*-Befehle für andere Abhängigkeiten ausführen, z. B. describe-internet-gateways und describe-instances.
  2. Lösche die Abhängigkeiten für die VPC, die du löschen möchtest.
  3. Lösche die VPC.

Weitere Informationen findest du unter Ich habe versucht, meine Amazon VPC zu löschen, aber ich habe einen Abhängigkeitsfehler erhalten. Wie kann ich meine Amazon VPC löschen?

Ähnliche Informationen

Der Stack kann nicht gelöscht werden

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Monaten