La suppression de mon cluster Amazon Elastic Container Service (Amazon ECS) échoue.
Brève description
La suppression d'un cluster Amazon ECS peut échouer en raison d'un problème de dépendance des ressources. Lorsque vous créez un cluster ECS, AWS CloudFormation associe des ressources au cluster, telles que des groupes Auto Scaling, des clouds privés virtuels (VPC) et des équilibreurs de charge. Ces ressources et d'autres problèmes liés à AWS CloudFormation peuvent empêcher la suppression du cluster.
Si vous avez utilisé la console ECS après le 24 novembre 2015 ou l'assistant de création de cluster pour créer votre cluster, celui-ci dispose d’une pile CloudFormation. Lorsque vous supprimez votre cluster, vous pouvez rencontrer les erreurs suivantes avec votre pile EC2ContainerService-yourClusterName :
- « 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 »
En raison des erreurs précédentes, la suppression du cluster échoue et la pile CloudFormation passe à l'état DELETE_FAILED.
Résolution
Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l’AWS CLI.
Vérifier les autorisations IAM
Procédez comme suit :
- Ouvrez la console AWS Identity and Access Management (IAM).
- Dans le volet de navigation, sélectionnez Rôles.
- Sur la page Rôles, saisissez le rôle IAM spécifié dans le message d'erreur. Pour vérifier le message d'erreur affiché sur la page d'historique des événements, filtrez les appels d'API DeleteCluster.
Remarque : L'entité IAM qui effectue l'appel d'API est l'entité qui essaie de supprimer le cluster Amazon ECS.
- Choisissez l'entité IAM.
- Choisissez l’onglet Autorisations.
- Vérifiez si la stratégie d'autorisations contient l'autorisation ecs:Delete* requise. Si l'autorisation est manquante, accordez l’autorisation AmazonECS_FullAccess à l'entité IAM.
Ignorer les ressources contenant des dépendances pour supprimer le cluster
Procédez comme suit :
- Ouvrez la console CloudFormation.
- Pour Filtre, sélectionnez ** Actif**, puis Échec.
- Sélectionnez la pile en échec.
- Sélectionnez Actions, puis Supprimer la pile.
- Sélectionnez les ressources qui n'ont pas pu être supprimées.
- Sélectionnez Oui, supprimer.
Important : Si vous ne pouvez pas supprimer une ressource mais que vous souhaitez supprimer la pile, sélectionnez Conserver. Vous pouvez également utiliser la commande delete-stack de l'AWS CLI pour conserver les ressources.
- Supprimez le cluster ECS.
Supprimer les ressources conservées
Les exemples suivants vous montrent comment supprimer des ressources qui sont généralement associées à la pile CloudFormation.
Dépendance de groupes de sécurité
Dans l'exemple suivant, les règles entrantes ou sortantes d'un groupe de sécurité font référence à d'autres groupes de sécurité. Vous ne pouvez donc pas supprimer votre cluster.
Pour supprimer des dépendances de groupes de sécurité, procédez comme suit :
- Exécutez la commande describe-security-groups pour rechercher les groupes de sécurité associés :
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.
- Effacez les dépendances du groupe de sécurité que vous souhaitez supprimer.
- Supprimez la ressource du groupe de sécurité.
Dépendance de VPC
Les dépendances de VPC courantes sont les passerelles Internet, les sous-réseaux et les instances Amazon Elastic Compute Cloud (Amazon EC2).
Pour supprimer des dépendances de VPC, procédez comme suit :
- Exécutez la commande describe-subnets pour identifier les ressources dépendantes de votre VPC :
aws ec2 describe-subnets --filters "Name=vpc-id,Values=vpc-########" --region RegionId | grep SubnetId
Remarque : Remplacez vpc-######## par la valeur de votre VPC et RegionId par votre identifiant de région AWS. Vous pouvez exécuter des commandes describe_* similaires pour d'autres dépendances, telles que describe-internet-gateways et describe-instances.
- Effacez les dépendances du VPC que vous souhaitez supprimer.
- Supprimez le VPC.
Pour plus d'informations, consultez la section J'ai essayé de supprimer mon Amazon VPC, mais j'ai reçu une erreur de dépendance. Comment puis-je supprimer mon Amazon VPC ?
Informations connexes
La suppression de la pile échoue