Amazon ECS에서 DELETE_IN _PROGRESS 상태에 멈춘 작업 정의 문제를 해결하려면 어떻게 해야 합니까?

3분 분량
0

Amazon Elastic Container Service(Amazon ECS) 작업 정의를 삭제했는데 DELETE_IN_PROGRESS 상태에 멈춰 있습니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

Amazon ECS 리소스가 작업 정의 개정에 의존하는 경우 작업 정의 삭제 요청을 완료할 수 없습니다. 독립형 작업 또는 서비스가 삭제한 작업 정의를 사용하는 경우 작업 정의는 DELETE_IN_PROGRESS 상태에서 중단됩니다.

이 문제를 해결하려면 다음 list-clusters AWS CLI 명령을 실행하여 작업 정의를 사용하는 모든 리소스를 식별하십시오.

TaskDefARN=TaskDefinitionARN
REGION=Regioncode
for cluster in $(aws ecs list-clusters --region $REGION --output text --query 'clusterArns[]'); do echo "Checking cluster: $cluster"; for task in $(aws ecs list-tasks --region $REGION --cluster $cluster --output text --query 'taskArns[]'); do task_def=$(aws ecs describe-tasks --region $REGION --cluster $cluster --tasks $task --query 'tasks[].taskDefinitionArn' --output text); if [[ "$task_def" == "$TaskDefARN" ]]; then echo "Task using this definition: $task"; fi; done; for service in $(aws ecs list-services --region $REGION --cluster $cluster --output text --query 'serviceArns[]'); do service_def=$(aws ecs describe-services --region $REGION --cluster $cluster --services $service --query 'services[].taskDefinition' --output text); if [[ "$service_def" == "$TaskDefARN" ]]; then echo "Service using this definition: $service"; fi; done; done

참고: TaskDefinitionARN을 작업 정의의 ARN으로 바꾸고 Regioncode를 AWS 리전으로 바꾸십시오.

출력 예시:

Checking cluster: arn:aws:ecs:us-east-1:123456789012:cluster/cluster-1
Checking cluster: arn:aws:ecs:us-east-1:123456789012:cluster/cluster-2
Checking cluster: arn:aws:ecs:us-east-1:123456789012:cluster/cluster-3
Task using this definition: arn:aws:ecs:us-east-1:123456789012:task/cluster-3/abcde
Service using this definition: arn:aws:ecs:us-east-1:123456789012:service/cluster-3/service-1

위 예제에서 abcde 작업은 service-1에 속합니다. abcde 작업에 대한 작업 정의를 삭제하려면 먼저 service-1을 삭제해야 합니다.

서비스에서 작업을 능동적으로 유지 관리하고 있는 경우 서비스를 삭제하려고 하면 다음과 같은 오류 메시지가 나타날 수 있습니다.

"An error occurred (InvalidParameterException) when calling the DeleteService operation: The service cannot be stopped while it is scaled above 0."

이 문제를 해결하려면 서비스를 삭제하기 전에 서비스에 실행 중인 작업이 없고 작업 개수가 0인지 확인하십시오. 또는 delete-service 명령을 실행할 때 --force 옵션을 추가합니다.

Amazon ECS 콘솔을 사용하여 서비스를 삭제하십시오. 또는 다음 delete-service 명령을 실행합니다.

aws ecs delete-service --cluster clustername --service servicename

참고: clustername을 클러스터 이름으로, servicename을 서비스 이름으로 바꾸십시오.

Amazon ECS 작업의 경우 작업을 중지한 후 작업 정의 삭제를 완료하는 데 최대 1시간이 걸릴 수 있습니다. Amazon ECS 서비스의 경우 배포 또는 작업 세트를 삭제한 후 작업 정의 삭제를 완료하는 데 최대 24시간이 걸릴 수 있습니다.

삭제가 완전히 완료된 후에만 이전 작업 정의와 동일한 이름으로 새 작업 정의를 생성할 수 있습니다. 작업 정의를 아직 삭제하지 않은 경우 새 작업 정의 대신 동일한 작업 정의의 새 개정을 생성합니다. 개정본을 사용하여 새 작업을 시작하고 이전 작업 정의 삭제가 완전히 완료될 때까지 필요한 사항을 변경할 수 있습니다.

관련 정보

Amazon ECS 작업 정의 상태

describe-services

describe-tasks

AWS 공식
AWS 공식업데이트됨 3달 전