Amazon ECS 클러스터를 삭제할 수 없는 이유는 무엇입니까?
Amazon Elastic Container Service(Amazon ECS) 클러스터를 삭제할 수 없습니다.
간략한 설명
클러스터를 삭제하려고 하면 다음 오류 메시지 중 하나가 표시될 수 있습니다.
- "Error occurred during operation 'DeleteClusters SDK Error: The Cluster cannot be deleted while Tasks are active. (Service: AmazonECS; Status Code: 400; Error Code: ClusterContainsTasksException; Request ID: 144948ca-1614-40e7-a08b-80d7f1fe38f6; Proxy: null)'." (RequestToken: f389c9fe-8ce3-855c-581a-ebe32a9a9901, HandlerErrorCode: GeneralServiceException)"
- "Error occurred during operation 'DeleteClusters SDK Error: The Cluster cannot be deleted while Services are active. (Service: AmazonECS; Status Code: 400; Error Code: ClusterContainsServicesException; Request ID: 1eb29389-dab7-4345-a453-cde2c2b54c60; Proxy: null)'." (RequestToken: ec646d54-de77-f96c-d9a6-ac04c520f45a, HandlerErrorCode: GeneralServiceException)"
- "Error: deleting ECS Cluster (arn:aws:ecs:REGION:000000000000:cluster/my-ecs-cluster): operation error ECS: DeleteCluster, https response error StatusCode: 400, RequestID: 128b7de0-45e3-4130-8c8c-dcceb27a8bb9, ClusterContainsContainerInstancesException: The Cluster cannot be deleted while Container Instances are active or draining."
- "An error occurred (UpdateInProgressException) when calling the DeleteCluster operation: The specified cluster is in a busy state. Cluster attachments must be in UPDATE_COMPLETE or UPDATE_FAILED state before they can be updated. Wait and try again."
Amazon ECS 클러스터를 삭제하려면 먼저 모든 서비스를 삭제하고, 실행 중인 모든 작업을 중지하고, 모든 컨테이너 인스턴스를 등록 취소하고, 모든 네임스페이스를 삭제해야 합니다.
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
(선택 사항) Amazon ECS 서비스 네임스페이스 식별
서비스와 작업을 삭제하기 전에 서비스와 관련된 중요하지 않은 AWS Cloud Map 네임스페이스를 식별하는 것이 좋습니다.
서비스에서 서비스 검색을 사용하는 경우 다음 describe-services AWS CLI 명령을 실행하여 서비스 검색 서비스 ARN을 식별합니다.
aws ecs describe-services --cluster CLUSTER_NAME --service SERVICE_ARN --query services[*].serviceRegistries[*].registryArn --output text
참고: CLUSTER_NAME을 클러스터 이름으로 바꾸고 SERVICE_ARN을 Amazon ECS 서비스 ARN으로 바꾸십시오.
그런 다음, 다음 get-service 명령을 실행하여 네임스페이스 ID를 식별합니다.
aws servicediscovery get-service --id SERVICE_ID --query Service.NamespaceId --output text
참고: SERVICE_ID를 서비스 검색 서비스 ID로 바꾸십시오.
서비스에서 Service Connect를 사용하는 경우 다음 describe-services 명령을 실행하여 네임스페이스 ID를 식별합니다.
aws ecs describe-services --cluster CLUSTER_NAME --service SERVICE_ARN --query services[*].deployments[].serviceConnectConfiguration.namespace --output text
참고: CLUSTER_NAME을 클러스터 이름으로 바꾸고 SERVICE_ARN을 Amazon ECS 서비스 ARN으로 바꾸십시오.
실행 중인 모든 작업 중지
실행 중인 모든 작업을 나열하려면 다음 list-tasks 명령을 실행합니다.
aws ecs list-tasks --cluster CLUSTER_NAME --region REGION
참고: CLUSTER_NAME을 클러스터 이름으로 바꾸고 REGION을 AWS 리전으로 바꾸십시오.
작업을 중지하려면 다음 stop-task 명령을 실행합니다.
aws ecs stop-task --cluster CLUSTER_NAME --task TASK_ARN --region REGION
참고: CLUSTER_NAME을 클러스터 이름으로 바꾸고, TASK_ARN을 작업 ARN으로 바꾸고, REGION을 해당 리전으로 바꾸십시오.
또는 Amazon ECS 콘솔을 사용하여 작업을 중지합니다.
Amazon ECS 서비스 삭제
클러스터의 모든 서비스를 나열하려면 다음 list-services 명령을 실행합니다.
aws ecs list-services --cluster CLUSTER_NAME
참고: CLUSTER_NAME을 클러스터 이름으로 바꾸십시오.
서비스를 삭제하려면 다음 delete-service 명령을 실행합니다.
aws ecs delete-service --cluster CLUSTER_NAME --service SERVICE_ARN --force --region REGION
참고: CLUSTER_NAME을 클러스터 이름으로 바꾸고, SERVICE_ARN을 서비스 ARN으로 바꾸고, REGION을 해당 리전으로 바꾸십시오.
또는 Amazon ECS 콘솔을 사용하여 서비스를 삭제합니다.
Amazon ECS 컨테이너 인스턴스 등록 취소
등록된 모든 컨테이너 인스턴스를 나열하려면 다음 list-container-instances 명령을 실행합니다.
aws ecs list-container-instances --cluster CLUSTER_NAME --region REGION --output text --query containerInstanceArns
참고: CLUSTER_NAME을 클러스터 이름으로 바꾸고 REGION을 해당 리전으로 바꾸십시오.
클러스터에서 컨테이너 인스턴스를 등록 취소하려면 다음 deregister-container-instance 명령을 실행합니다.
aws ecs deregister-container-instance --cluster CLUSTER_NAME --region REGION --container-instance CONTAINER_INSTANCE_ARN --force
참고: CLUSTER_NAME을 클러스터 이름으로 바꾸고, REGION을 해당 리전으로 바꾸고, CONTAINER_INSTANCE_ARN을 컨테이너 인스턴스 ARN으로 바꾸십시오.
또는 Amazon ECS 콘솔을 사용하여 컨테이너 인스턴스를 등록 취소합니다.
네임스페이스 삭제
모든 서비스 인스턴스 등록 취소
서비스의 모든 서비스 검색 인스턴스를 나열하려면 다음 list-instances 명령을 실행합니다.
aws servicediscovery list-instances --service-id SERVICE_DISCOVERY_ID_EXAMPLE
참고: SERVICE_DISCOVERY_ID_EXAMPLE을 서비스 검색 서비스 ID로 바꾸십시오.
서비스 검색 서비스에서 인스턴스를 등록 취소하려면 다음 deregister-instance 명령을 실행합니다.
aws servicediscovery deregister-instance --service-id SERVICE_DISCOVERY_ID_EXAMPLE --instance-id INSTANCE_EXAMPLE
참고: SERVICE_DISCOVERY_ID_EXAMPLE을 서비스 검색 서비스 ID로 바꾸고 INSTANCE_EXAMPLE을 인스턴스 ID로 바꾸십시오.
모든 서비스 검색 서비스 삭제
네임스페이스의 모든 서비스 검색 서비스를 보려면 다음 list-services 명령을 실행합니다.
aws servicediscovery list-services --filters Name=NAMESPACE_ID,Values=NAMESPACE_EXAMPLE,Condition=EQ
참고: NAMESPACE_EXAMPLE을 네임스페이스 ID로 바꾸십시오.
서비스 검색 서비스를 삭제하려면 다음 delete-service 명령을 실행합니다.
aws servicediscovery delete-service --id SERVICE_ID_EXAMPLE
참고: SERVICE_ID_EXAMPLE을 서비스 ID로 바꾸십시오.
네임스페이스 삭제
네임스페이스를 삭제하려면 다음 delete-namespace 명령을 실행합니다.
aws servicediscovery delete-namespace --id NAMESPACE_EXAMPLE
참고: NAMESPACE_EXAMPLE을 네임스페이스 ID로 바꾸십시오.
또는 AWS Cloud Map 콘솔을 사용하여 네임스페이스를 삭제합니다.
클러스터 연결 상태 확인
클러스터를 Amazon EC2 Auto Scaling 그룹 용량 공급자와 연결한 경우 클러스터 연결 상태를 확인하십시오. 클러스터를 삭제하기 전에 클러스터 연결이 UPDATE_COMPLETE 또는 UPDATE_FAILED 상태여야 합니다. UPDATE_IN_PROGRESS 상태의 클러스터 연결이 있는 클러스터를 삭제하면 UpdateInProgressException 오류가 발생합니다.
클러스터 연결을 확인하려면 다음 describe-clusters 명령을 실행합니다.
aws ecs describe-clusters --cluster CLUSTER_NAME --include ATTACHMENTS --query clusters\[\].attachmentsStatus
참고: CLUSTER_NAME을 클러스터 이름으로 바꾸십시오.
클러스터 연결이 UPDATE_IN_PROGRESS 상태인 경우에는 해당 상태가 자동으로 해결될 때까지 기다린 후 클러스터를 삭제하십시오.
(선택 사항) 클러스터와 연결된 용량 공급자 삭제
클러스터와 연결된 용량 공급자를 보려면 다음 describe-clusters 명령을 실행합니다.
aws ecs describe-clusters --cluster CLUSTER_NAME --include ATTACHMENTS --query clusters\[\].capacityProviders[] --output text
참고: CLUSTER_NAME을 클러스터 이름으로 바꾸십시오.
클러스터에서 용량 공급자를 분리하려면 다음 put-cluster-capacity-providers 명령을 실행합니다.
aws ecs put-cluster-capacity-providers --cluster CLUSTER_NAME --capacity-providers [] --default-capacity-provider-strategy []
참고: CLUSTER_NAME을 클러스터 이름으로 바꾸십시오.
용량 공급자를 삭제하려면 다음 delete-capacity-provider 명령을 실행합니다.
aws ecs delete-capacity-provider --capacity-provider CAPACITY_PROVIDER_NAME
참고: CAPACITY_PROVIDER_NAME을 용량 공급자 이름으로 바꾸십시오.
또는 Amazon ECS 콘솔을 사용하여 용량 공급자를 삭제합니다.
클러스터 삭제
클러스터를 삭제하려면 다음 delete-cluster 명령을 실행합니다.
aws ecs delete-cluster --cluster CLUSTER_NAME
참고: CLUSTER_NAME을 클러스터 이름으로 바꾸십시오.
또는 Amazon ECS 콘솔을 사용하여 클러스터를 삭제합니다.
관련 정보
Amazon ECS 클러스터의 새 용량 공급자를 설정하거나 기존 용량 공급자를 업데이트하려고 할 때 발생하는 문제를 해결하려면 어떻게 해야 합니까?
- 언어
- 한국어
