Amazon Elastic Container Service (Amazon ECS) 작업 태그에 문제가 있습니다. 이 문제를 해결하려면 어떻게 해야 하나요?
해결 방법
Amazon ECS로 태그를 설정할 때 다음과 같은 문제가 발생할 수 있습니다.
- 태그는 서비스 또는 태스크 정의에서 작업으로 전파되지 않습니다.
- 태그에 만료된 Amazon 리소스 이름 (ARN) 과 리소스 ID 형식이 있습니다.
- AWS Identity and Access Management (IAM) 권한 또는 태그 제한이 누락되어 ECS 리소스에 태그를 추가할 수 없습니다.
- AWS 결제 대시보드에서 ECS 태그를 볼 수 없습니다.
이러한 오류를 해결하려면 다음을 수행합니다.
PropagateTags 매개 변수가 서비스 또는 태스크 정의에서 작업으로 전파하는 데 사용되는지 확인합니다.
PropagateTags 매개 변수를 사용하여 태스크 정의 또는 서비스에서 작업으로 태그를 복사할 수 있습니다. 작업을 실행하거나 서비스를 만들 때 이 작업을 수행할 수 있습니다. 이 매개변수는 기본적으로 작동하지 않습니다.
AWS CLI에서 다음 명령을 실행하고 서비스 이름, 클러스터 이름 및 리전을 적절한 값으로 대체하여 PropagateTags가 특정 서비스에서 사용되고 있는지 확인할 수 있습니다.
aws ecs describe-services --services <servicename> --cluster <clustername> --region <region> --query 'services[*].propagateTags' --output text
CLI를 사용하여 서비스 또는 태스크 정의에서 전파되도록 태그를 구성하려면 RunTask 및 CreateService API를 참조하십시오.
콘솔을 사용하여 태그 전파를 활성화하려면 다음과 같이 하십시오.
- Amazon ECS 콘솔을 엽니다.
- ECS 리소스에 사용할 AWS 리전을 선택합니다.
- 탐색 창에서 Task Definitions를 선택합니다.
- 리소스 목록에서 태스크 정의를 선택하고**[Actions]**를 선택합니다. 그런 다음 [Create Service] 또는 **[Run Task]**를 선택합니다.
- **작업 태깅 구성(Task tagging configuration)**에서 태그 전파 시작(Propagate tags from) 옆에 있는 서비스(Service) 또는 **태스크 정의(Task Definitions)**를 선택합니다.
참고: 기본 옵션은 **전파 안 함(Do not propagate)**입니다.
AWS CloudFormation을 이용해 ECS에서 태그를 사용하려면 [SERVICE]와 [TASK_DEFINITION] 값과 EnableECSManagedTags 및 PropagateTags 속성을 활용하여 엔터티AWS::ECS::Service를 선언해야 합니다.
참고:
- CloudFormation에서 스택을 생성한 후 ECS 서비스 태그 관련 속성을 사용하려면 스택 업데이트 및 리소스 교체가 필요합니다. 즉, CloudFormation을 통해 서비스가 삭제되고 다시 생성되는 것입니다.
- PropagateTags 매개 변수는 작업을 실행하거나 서비스를 생성할 때만 사용할 수 있습니다. 자세한 내용은RunTask 및 CreateService API를 참조하십시오.
- Amazon ECS RunTask API를 사용하여 직접 시작한 작업과 동일한 예정된 작업 구성에 액세스할 수 있습니다.
새 ARN 형식을 사용하고 있는지 확인합니다.
Amazon ECS 리소스에 태그를 지정하려면 새로운 Amazon 리소스 이름 (ARN) 및 ID 형식을 사용해야 합니다.
두 가지 형식의 예:
- 이전 형식: arn:aws:ecs:region:aws_account_id:service/service-name
- 새 형식: arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name
새로운 ARN 및 리소스 ID 형식으로 ECS 배포를 마이그레이션하려면 새로운 ARN 및 리소스 ID 형식으로 Amazon ECS 배포 마이그레이션 단원을 참조하십시오.
참고: 기존 리소스는 다시 생성될 때까지 태그를 지정하는 동안 새 ARN 형식을 수신하지 않습니다.
IAM 엔터티에 필요한 권한이 있는지 검토하고 태그 제한을 확인합니다
ECS 서비스에 태그를 추가할 수 없는 경우 다음을 수행합니다.
- TagResource 이벤트는 CloudTrail 콘솔 속 CloudTrail 이벤트를 확인합니다.
- 다음 오류 중 하나가 표시되는 경우: 현재 AccessDenied 또는 태그를 업데이트할 수 없습니다. 몇 분 정도 기다렸다가 다시 시도하면 IAM 엔터티에 ecs:TagResource 권한이 없는 것입니다.
- 이 문제를 해결하려면 IAM 엔터티에 ecs:TagResource 권한을 추가합니다.
- 권한이 추가되면 ECS 클러스터에 태그를 다시 추가해 보십시오.
ECS 태그가 태그 제한 범위 내에 있는지 확인합니다. 태그 제한을 검토하려면 태그 제한을 참조하십시오.
AWS 결제 및 비용 관리 문제인지 확인
필요한 태그가 ECS 태스크 수준에 있는지 확인하려면 AWS CLI에서 다음 명령을 실행하고 value를 ARN으로 바꿉니다.
aws ecs list-tags-for-resource --resource-arn <value>
콘솔을 사용하여 ECS 태스크 수준에 필요한 태그가 있는지 확인하려면 다음을 확인하세요.
- Amazon ECS 콘솔을 엽니다.
- ECS 리소스에 사용할 AWS 리전을 선택합니다.
- 탐색 창에서 리소스 유형 (예: 클러스터) 을 선택합니다.
- 리소스 목록에서 리소스를 선택하고 **태그를 선택합니다.**태그가 있으면 나열됩니다.
관리형 태그를 찾는 경우 ECS 관리를 설정해야 합니다. 다음 명령을 실행하고 서비스 이름, 클러스터 이름 및 리전을 적절한 값으로 대체하여 ECS 관리 상태를 확인합니다.
aws ecs describe-services --services <servicename> --cluster <clustername> --region <region> --query 'services[*].enableECSManagedTags' --output text
명령 출력에는 enableECSManagedTags값이 포함됩니다.
CLI를 사용하여 서비스를 생성하거나 태스크를 실행하는 동안 ECS 관리형 태그를 활성화할 수 있습니다. 자세한 내용은 RunTask 및 CreateService API를 참조하십시오.
콘솔을 사용하여 ECS에서 관리하는 태그를 활성화하려면 다음과 같이 하십시오.
- Amazon ECS 콘솔을 엽니다.
- ECS 리소스에 사용할 AWS 리전을 선택합니다.
- 탐색 창에서 Task Definitions를 선택합니다.
- 리소스 목록에서 태스크 정의를 선택하고**[Actions]**를 선택합니다. 그런 다음 [Create Service] 또는 **[Run Task]**를 선택합니다.
- 태스크 태깅 구성에서 ECS 관리형 태그 활성화를 선택합니다.
결제에 사용된 태그가 나열되지만 AWS Cost Explorer에 표시되지 않는 경우 결제 및 비용 관리 콘솔에서 태그가 활성화 되어 있는지 확인합니다. 비용 할당 태그를 활성화하려면 사용자 정의 비용 할당 태그 활성화를 참조하십시오.
참고: Cost Explorer에서 필터로 표시해야 하는 모든 태그를 활성화해야 합니다. 태그가 활성화되는 데 최대 24시간이 걸릴 수 있습니다.
관련 정보
Amazon ECS 문제 해결
Amazon ECS 리소스에 태깅