Que dois-je faire lorsque la suppression de mon cluster Amazon ECS échoue dans une pile AWS CloudFormation ?

Date de la dernière mise à jour : 14/12/2020

La suppression de mon cluster Amazon Elastic Container Service (Amazon ECS) n'aboutit pas. Comment puis-je supprimer mon cluster ?

Brève description

La suppression d'un cluster Amazon ECS peut échouer en raison d'un problème lié aux dépendances des ressources sous-jacentes. À la suite de la création d'un cluster Amazon ECS, AWS CloudFormation crée des ressources comme des groupes Auto Scaling, des Virtual Private Clouds (VPC) ou des équilibreurs de charge. Ces ressources sont associées au cluster, et leur présence peut empêcher la suppression de ce dernier. D'autres problèmes liés à AWS CloudFormation peuvent également empêcher la suppression d'un cluster Amazon ECS.

Remarque : les clusters qui ont été créés lors de la première exécution de la console (après le 24 novembre 2015) ou avec l'assistant de création de clusters comportent une pile AWS CloudFormation sous-jacente. Pendant le processus de suppression du cluster, votre pile EC2ContainerService-yourClusterName peut rencontrer les erreurs suivantes :

  • « The vpc 'vpc-1234567' has dependencies and cannot be deleted » (Impossible de supprimer le vpc 'vpc-1234567' en raison des dépendances).
  • « The security group sg-123456 failed to delete due to the error "resource sg-123456 has a dependent object » (Impossible de supprimer le groupe de sécurité sg-123456 en raison de l'erreur « la ressource sg-123456 a des objets dépendants »).

La suppression du cluster échoue et la pile AWS CloudFormation passe à l'état DELETE_FAILED.

Si vous ne pouvez pas supprimer votre cluster ECS, procédez comme suit.

Résolution

Remarque : si vous recevez des erreurs lors de l'exécution de commandes depuis l'interface de ligne de commande AWS (AWS CLI), assurez-vous que vous utilisez la version la plus récente d'AWS CLI.

Supprimer le cluster en ignorant les ressources ayant des dépendances

1.    Ouvrez la console AWS CloudFormation.

2.    Pour rechercher la pile qui a échoué, allez à Filter (Filtre), choisissez Active (Actif), puis Failed (Échoué).

3.    Sélectionnez la pile ayant échoué et que nous ne parvenez pas à supprimer.

4.    Choisissez Actions, puis Delete Stack (Supprimer la pile).

5.    Cochez les cases qui jouxtent les ressources dont la suppression a échoué.

6.    Choisissez Yes, Delete (Oui, supprimer).

Important : si vous ne pouvez pas supprimer une ressource, mais que vous souhaitez toujours supprimer la pile, choisissez de conserver cette ressource. Vous pouvez également conserver les ressources à l'aide de la commande delete-stack de l'interface de ligne de commande AWS (AWS CLI). Utilisez l'indicateur --retain-resources pour spécifier l'ID logique de la ressource.

7.    Supprimez le cluster Amazon ECS.

Supprimer les ressources conservées

Les exemples suivants montrent comment supprimer des ressources couramment associées à la pile AWS CloudFormation sous-jacente.

Exemple de dépendance de groupe de sécurité

Dans cet exemple, les règles de trafic entrant ou sortant d'un groupe de sécurité font référence à un ou plusieurs autres groupes de sécurité. Cette dépendance peut empêcher la suppression de votre cluster.

1.    Pour rechercher les groupes de sécurité associés au groupe de sécurité que vous souhaitez supprimer, exécutez la commande de l'interface de ligne de commande AWS (AWS CLI) suivante :

aws ec2 describe-security-groups --filters Name=ip-permission.group-id,Values=[sg-xxxxxxxxx] --region us-east-1 | jq '.SecurityGroups[] .GroupId'

Remarque : jq est un processeur JSON en ligne de commande.

2.    Effacez les dépendances du groupe de sécurité que vous souhaitez supprimer.

3.    Supprimez la ressource du groupe de sécurité.

Exemple de dépendance de VPC

Remarque : les dépendances de VPC courantes sont InternetGatewayId, SubnetId ou InstanceId.

1.    Pour identifier les ressources dépendantes de votre VPC, exécutez la commande de l'interface de ligne de commande AWS (AWS CLI) suivante. Remplacez vpc-xxxxxxxx par la valeur de votre VPC, et RegionId par le code de votre région AWS :

aws ec2 describe-subnets --filters "Name=vpc-id,Values=vpc-xxxxxxxx" --region RegionId | grep SubnetId

Remarque : vous pouvez exécuter des commandes describe_* similaires pour d'autres dépendances.

2.    Effacez les dépendances du VPC que vous souhaitez supprimer.

3.    Supprimez le VPC.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?