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

Dernière mise à jour : 24/03/2022

La suppression de mon cluster Amazon Elastic Container Service (Amazon ECS) n'aboutit pas.

Brève description

La suppression d'un cluster Amazon ECS pourrait échouer en raison d'un problème lié aux dépendances des ressources sous-jacentes. Lorsqu'un cluster Amazon ECS est créé, AWS CloudFormation crée des ressources comme des groupes Auto Scaling, des clouds privés virtuels (VPC) ou des équilibreurs de charge. Ces ressources sont associées au cluster, et leur présence pourrait 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 pourrait rencontrer les erreurs suivantes :

  • « The vpc 'vpc-1234567' has dependencies and cannot be deleted » (Impossible de supprimer le vpc « vpc-1234567 »)
  • « 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 »)
  • « Utilisateur : arn:aws:sts ::1111222233334444:assumed-role/example-role/example-user n'est pas autorisé à effectuer : ecs:DeleteCluster sur la ressource : arn:aws:ecs:Region:1111222233334444:cluster/example-cluster »

La suppression du cluster échoue et la pile AWS CloudFormation passe à l'état DELETE_FAILED (ÉCHEC DE LA SUPPRESSION).

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

Solution

Remarque : si vous recevez des erreurs lors de l'exécution de commandes depuis AWS Command Line Interface (AWS CLI), assurez-vous d'utiliser la version la plus récente de l'AWS CLI.

Vérifier les autorisations AWS Identity and Access Management (IAM)

  1. Ouvrez la console IAM.
  2. Dans le panneau de navigation, choisissez Roles (Rôles).
  3. Dans la page Roles (Rôles), saisissez le rôle IAM spécifié dans le message d'erreur. Vous pouvez vérifier le message d'erreur des Événements CloudTrail en filtrant les appels d'API DeleteCluster.
    Remarque : Il s'agit du rôle ou de l'utilisateur IAM qui essaie de supprimer le cluster Amazon ECS.
  4. Choisissez le rôle ou l'utilisateur IAM.
  5. Sélectionnez l'onglet Permissions (Autorisations).
  6. Vérifiez si la politique d'autorisations contient l'autorisation ecs:Delete*. Cette autorisation est requise par le rôle ou l'utilisateur IAM pour supprimer le cluster ECS.
    Si l'autorisation est manquante, accordez l'accès requis à l'utilisateur ou au rôle IAM. Pour plus d'informations, consultez AmazonECS_FullAccess.

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 retenir les ressources à l'aide de la commande delete-stack (supprimer la pile) d'AWS CLI. Utilisez 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 ?