I am creating an ECS EC2 type cluster and deploying my container images in that using ECS service. Deployment is succesfull and all the required resources are created and container is deployed onto the ECS cluster.
But when i am trying to destroy the resources, the operation gets stuck at ECS service destroy and gets failed after 20 min timeout (Althuogh it deletes the ECS service in the backend but remains in destroying state) and when i do terraform destroy again it deletes the remaining resources.
Please provide your suggestion if anyone have faced this kind of issue.
I have attached the screenshot of the timeout error also for reference.
the service can be only deleted if you scale it down to 0 replicas. Itâs not possible to remove services if you have one or more replicas (desired state). Itâs the stupid ECS thing.
during the stuck phase i can see in the portal that service is deleted from ECS cluster and showing the status as âDrainingâ. So Itâs ECS who is not updating the actual status.
Iâm experiencing same issue. And I ended up being delete terraform.tf and remove all deployed resources manually. Are there better ways to handle this kind issue?
provisioner âlocal-execâ {
when = destroy
command = <<EOF
echo âUpdate service desired count to 0 before destroy.â #Get region out of cluster
REGION=(echo {self.cluster} | cut -dâ:â -f4)
echo âRegion: $REGIONâ #Set the Service desired count to 0
aws ecs update-service --region REGION --cluster {self.cluster} --service ${self.name} --desired-count 0 --force-new-deployment
echo âUpdate service command executed successfully.â
EOF
}
timeouts { #create = â10mâ # Timeout for resource creation
delete = â5mâ # Timeout for resource deletion
}
}
The ECS service destruction process gets stuck and eventually fails after a 20-minute timeout, even though the ECS service is deleted in the backend. Strangely, upon running terraform destroy again, the remaining resources are successfully removed. I have attached a screenshot of the timeout error for reference.