새 Amazon Elastic Container Service(Amazon ECS) 서비스를 생성할 때 다음 오류가 표시됩니다. "Creation of service was not idempotent."
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
not idempotent 오류는 Amazon ECS 데이터베이스의 기존 서비스와 동일한 이름을 가진 서비스를 생성할 때 발생합니다. 이 문제를 해결하려면 다음 작업을 수행하십시오.
기존 클러스터 이름을 사용하지 않는지 확인
기존 클러스터와 동일한 이름으로 클러스터를 생성하려고 하면 다음 오류 중 하나가 표시됩니다.
"InvalidParameterException: Creation of service was not idempotent."
-또는-
"Invalid request provided: CreateService error: Create service is not idempotent."
오류를 해결하려면 이름이 같은 기존 서비스가 없는지 확인하십시오. 최근에 동일한 이름의 서비스를 삭제한 경우 서비스 상태가 DELETED인지 확인하십시오.
참고: 기존 클러스터를 삭제하더라도 클러스터가 아직 삭제 단계에 있을 수 있으므로 not idempotent 오류가 발생할 수 있습니다.
서비스가 DEPROVISIONING 상태인 경우 서비스에 프로비전 해제 단계에서 중단된 작업이 있는지 확인하십시오. 클러스터의 모든 작업 상태를 보려면 DescribeTasks API를 실행합니다. 또는 다음 단계를 완료합니다.
- Amazon ECS 콘솔을 엽니다.
- 탐색 페이지에서 클러스터를 선택합니다.
- 클러스터를 선택합니다.
- 작업 탭을 선택합니다.
삭제된 서비스에 대한 UpdateService API 호출을 확인하여 서비스가 아직 활성 상태인지 확인합니다. 또한 Delete Service API 호출에서 “Service contains registered instances; delete the instances before deleting the service” 이유가 있는지 확인하십시오. Delete Service API에 이 이유가 포함된 경우 인스턴스를 삭제하십시오.
삭제된 IAM 역할 재생성
작업에 AWS Identity and Access Management(IAM) 역할을 사용하는 경우 역할을 삭제하기 전에 작업을 먼저 삭제해야 합니다. IAM 역할은 작업의 수명 주기 내내 사용할 수 있어야 합니다. 여기에는 리소스 프로비저닝 해제가 포함됩니다.
IAM 역할을 먼저 삭제한 경우 다음 단계를 완료하여 역할을 재생성하십시오.
- 이전 IAM 역할 이름을 가져오려면 다음 describe-services 명령을 실행합니다.
aws ecs describe-services --cluster clustername --services servicename
참고: clustername을 클러스터 이름으로, servicename을 서비스 이름으로 바꾸십시오.
- 동일한 이름으로 IAM 역할을 재생성합니다. 필요한 권한에 대한 자세한 내용은 Amazon ECS의 서비스 연결 역할 권한을 참조하십시오.
참고: 역할을 삭제한 사용자에 대한 정보를 찾으려면 AWS CloudTrail DeleteRole 이벤트를 확인하십시오.
다른 이름으로 새 서비스 생성
삭제된 서비스와 동일한 이름으로 새 서비스를 생성할 수 없는 경우 다른 이름으로 새 서비스를 생성하십시오.
관련 정보
CreateService