Amazon ECS 리소스 태그 지정
Amazon ECS 리소스 태그 지정
Amazon ECS 리소스를 관리하는 데 도움이 되도록 각 리소스에 태그(tags)를 사용해 자체 메타데이터를 선택적으로 할당할 수 있어요. 각 태그는 키(key)와 선택적 값(value)으로 구성돼요. 목적, 소유자, 환경 등으로 Amazon ECS 리소스를 다양한 방식으로 분류할 수 있어요. 같은 유형의 리소스가 많을 때 유용해요. 할당한 태그를 기반으로 특정 리소스를 빠르게 식별할 수 있어요. 예를 들어 계정의 Amazon ECS 컨테이너 인스턴스용 태그 집합을 정의할 수 있어요. 이는 각 인스턴스의 소유자와 스택 수준을 추적하는 데 도움이 돼요. 태그를 Cost and Usage 보고서에 사용할 수 있어요. 이 보고서를 사용해 Amazon ECS 리소스의 비용과 사용량을 분석할 수 있어요. 자세한 내용은 Amazon ECS usage reports를 참고하세요.
출처: 문서
본문
경고: 태그 키와 값을 반환하는 API가 많아요. DescribeTags에 대한 접근을 거부해도 다른 API가 반환하는 태그에 대한 접근이 자동으로 거부되지는 않아요. 모범 사례로 태그에 민감한 데이터를 포함하지 않는 것을 권장해요.
각 리소스 유형에 대해 요구 사항에 맞는 태그 키 집합을 만드는 것을 권장해요. 일관된 태그 키 집합을 사용하면 리소스 관리가 더 쉬워져요. 추가한 태그를 기준으로 리소스를 검색하고 필터링할 수 있어요.
태그는 Amazon ECS에 의미론적 의미가 없으며 엄격히 문자열로 해석돼요. 언제든지 태그 키와 값을 편집하고 리소스에서 태그를 제거할 수 있어요. 태그 값을 빈 문자열로 설정할 수 있지만 null로 설정할 수는 없어요. 해당 리소스의 기존 태그와 같은 키의 태그를 추가하면 새 값이 이전 값을 덮어써요. 리소스를 삭제하면 해당 리소스의 태그도 삭제돼요. AWS Identity and Access Management(IAM)를 사용하면 AWS 계정의 어떤 사용자에게 태그 관리 권한이 있는지 제어할 수 있어요.
리소스가 태그되는 방법 (How resources are tagged)
Amazon ECS 태스크, 서비스, 태스크 정의, 클러스터가 태그되는 방법은 여러 가지가 있어요.
- 사용자가 AWS Management Console, Amazon ECS API, AWS CLI 또는 AWS SDK를 사용해 리소스에 수동으로 태그를 지정해요.
- 사용자가 서비스를 만들거나 standalone 태스크를 실행하면서 Amazon ECS 관리형 태그 옵션을 선택해요. Amazon ECS는 새로 실행되는 모든 태스크에 자동으로 태그를 지정해요. 자세한 내용은
Amazon ECS-managed tags를 참고하세요. - 사용자가 콘솔을 사용해 리소스를 만들어요. 콘솔은 리소스에 자동으로 태그를 지정해요. 이 태그들은 AWS CLI와 AWS SDK 응답에 반환되고 콘솔에 표시돼요. 이 태그들은 수정하거나 삭제할 수 없어요. 추가된 태그에 대한 정보는
Tagging support for Amazon ECS resources표의 'Tags automatically added by the console' 열을 참고하세요.
리소스를 만들 때 태그를 지정했지만 태그를 적용할 수 없으면 Amazon ECS는 생성 프로세스를 롤백해요. 이는 리소스가 태그와 함께 생성되거나 전혀 생성되지 않도록 보장하며, 어떤 시점에도 리소스가 태그 없이 남지 않게 해 줘요. 리소스를 만드는 동안 태그를 지정하면 리소스 생성 후 사용자 지정 태그 지정 스크립트를 실행할 필요가 없어져요.
다음 표는 태그 지정을 지원하는 Amazon ECS 리소스를 설명해요.
| 리소스 | 태그 지원 | 태그 전파 지원 | 콘솔이 자동으로 추가하는 태그 |
|---|---|---|---|
| Amazon ECS 태스크 | 예 | 예, 태스크 정의로부터 전파. | Key: aws:ecs:clusterName / Value: cluster-name |
| Amazon ECS 서비스 | 예 | 예, 태스크 정의 또는 서비스에서 서비스의 태스크로 전파. | Key: ecs:service:stackId / Value: arn:aws:cloudformation:arn |
| Amazon ECS 태스크 세트 | 예 | 아니요 | N/A |
| Amazon ECS 태스크 정의 | 예 | 아니요 | Key: ecs:taskDefinition:createdFrom / Value: ecs-console-v2 |
| Amazon ECS 클러스터 | 예 | 아니요 | Key: aws:cloudformation:logical-id / Value: ECSCluster / Key: aws:cloudformation:stack-id / Value: arn:aws:cloudformation:arn / Key: aws:cloudformation:stack-name / Value: ECS-Console-V2-Cluster-EXAMPLE |
| Amazon ECS 컨테이너 인스턴스 | 예 | 예, Amazon EC2 인스턴스로부터 전파. 자세한 내용은 Adding tags to an Amazon EC2 container instance for Amazon ECS를 참고하세요. |
N/A |
| Amazon ECS 외부 인스턴스 | 예 | 아니요 | N/A |
| Amazon ECS 용량 공급자 | 예. 사전 정의된 FARGATE 및 FARGATE_SPOT 용량 공급자는 태그를 지정할 수 없어요. |
예, Amazon ECS Managed Instances용 용량 공급자에서만. Amazon ECS Managed Instances용 용량 공급자에서 Amazon EC2 인스턴스, launch template, Elastic Network Interface, 볼륨 같은 공급자가 관리하는 모든 리소스로 태그를 전파할 수 있어요. | N/A |
생성 시 리소스 태그 지정 (Tagging resources on creation)
다음 리소스는 Amazon ECS API, AWS CLI 또는 AWS SDK로 생성 시 태그 지정을 지원해요.
- Amazon ECS 태스크
- Amazon ECS 서비스
- Amazon ECS 태스크 정의
- Amazon ECS 태스크 세트
- Amazon ECS 클러스터
- Amazon ECS 컨테이너 인스턴스
- Amazon ECS 용량 공급자
Amazon ECS에는 리소스 생성을 위한 태그 지정 권한 부여(tagging authorization) 옵션이 있어요. AWS 계정이 태그 지정 권한 부여로 구성되면 사용자는 ecsCreateCluster 같은 리소스를 만드는 작업에 대한 권한이 있어야 해요. 리소스 생성 작업에서 태그를 지정하면 AWS는 사용자나 역할이 태그를 만들 권한이 있는지 확인하기 위해 추가 권한 부여를 수행해요. 따라서 ecs:TagResource 작업을 사용할 명시적 권한을 부여해야 해요. 자세한 내용은 Grant permission to tag resources on creation을 참고하세요. 옵션 구성 방법은 Tagging authorization을 참고하세요.
제한 사항 (Restrictions)
태그에는 다음 제한 사항이 적용돼요.
- 리소스에 최대 50개의 태그를 연결할 수 있어요.
- 한 리소스에 태그 키를 반복할 수 없어요. 각 태그 키는 고유해야 하며 값은 하나만 가질 수 있어요.
- 키는 UTF-8로 최대 128자까지 가능해요.
- 값은 UTF-8로 최대 256자까지 가능해요.
- 여러 AWS 서비스와 리소스가 태그 스키마를 사용한다면 사용하는 문자 유형을 제한하세요. 일부 서비스는 허용되는 문자에 제한이 있을 수 있어요. 일반적으로 허용되는 문자는 문자, 숫자, 공백 및 다음 문자예요:
+ - = . _ : / @. - 태그 키와 값은 대소문자를 구분해요.
- 키나 값의 접두사로
aws:,AWS:또는 대소문자 조합을 사용할 수 없어요. 이들은 AWS 전용으로 예약되어 있어요. 이 접두사가 있는 태그 키나 값은 편집하거나 삭제할 수 없어요. 이 접두사가 있는 태그는 리소스당 태그 제한에 포함되지 않아요.
Amazon ECS 관리형 태그 (Amazon ECS-managed tags)
Amazon ECS 관리형 태그를 사용하면 Amazon ECS가 새로 실행되는 모든 태스크와 태스크에 연결된 Amazon EBS 볼륨에 클러스터 정보와 사용자가 추가한 태스크 정의 태그 또는 서비스 태그를 자동으로 태그 지정해요. 추가되는 태그는 다음과 같아요.
- Standalone 태스크 – Key가
aws:ecs:clusterName이고 Value가 클러스터 이름으로 설정된 태그. 사용자가 추가한 모든 태스크 정의 태그. standalone 태스크에 연결된 Amazon EBS 볼륨은 Key가aws:ecs:clusterName이고 Value가 클러스터 이름으로 설정된 태그를 받아요. Amazon EBS 볼륨 태그 지정에 대한 자세한 내용은Tagging Amazon EBS volumes를 참고하세요. - 서비스의 일부인 태스크 – Key가
aws:ecs:clusterName이고 Value가 클러스터 이름으로 설정된 태그. Key가aws:ecs:serviceName이고 Value가 서비스 이름으로 설정된 태그. 다음 리소스 중 하나의 태그가 추가돼요.- 태스크 정의 – 사용자가 추가한 모든 태스크 정의 태그.
- 서비스 – 사용자가 추가한 모든 서비스 태그.
- 서비스의 일부인 태스크에 연결된 Amazon EBS 볼륨은 Key가
aws:ecs:clusterName이고 Value가 클러스터 이름으로 설정된 태그와 Key가aws:ecs:serviceName이고 Value가 서비스 이름으로 설정된 태그를 받아요.