Cleanup the ECS cluster

  • Delete the services running in your cluster.
 # Define variables #
CLUSTER_NAME=$(jq < cfn-output.json -r '.EcsClusterName');
# Delete ecs services #
aws ecs list-services \
  --cluster $CLUSTER_NAME | \
jq -r ' .serviceArns[] | [.] | @tsv ' | \
  while IFS=$'\t' read -r serviceArn; do 
    aws ecs delete-service \
      --cluster $CLUSTER_NAME \
      --service $serviceArn \
      --force
  done
  • Stop all running tasks.
# Define variables #
CLUSTER_NAME=$(jq < cfn-output.json -r '.EcsClusterName');
# Stop ecs tasks #
aws ecs list-tasks \
  --cluster $CLUSTER_NAME | \
jq -r ' .taskArns[] | [.] | @tsv' | \
  while IFS=$'\t' read -r taskArn; do 
    aws ecs stop-task --cluster $CLUSTER_NAME --task $taskArn;
  done
  • Delete the cluster.
# Define variables #
CLUSTER_NAME=$(jq < cfn-output.json -r '.EcsClusterName');
# Delete the ecs cluster #
aws ecs delete-cluster --cluster $CLUSTER_NAME
  • De-register all task definitions.
# Define variables #
TASK_DEF_FAMILY=$(jq < cfn-output.json -r '.CrystalTaskDefinition' | \
  cut -d'/' -f2 | cut -d':' -f1)
# Delete ecs task definitions #
aws ecs list-task-definitions \
  --family-prefix $TASK_DEF_FAMILY | \
jq -r ' .taskDefinitionArns[] | [.] | @tsv' | \
  while IFS=$'\t' read -r taskDefinitionArn; do 
    aws ecs deregister-task-definition --task-definition $taskDefinitionArn;
  done