Amazon ECS 리소스 태깅 - Amazon Elastic Container Service

Amazon ECS 리소스 태깅

Amazon ECS 리소스 관리를 지원하려면 태그를 사용하여 각 리소스에 고유한 메타데이터를 선택적으로 할당할 수 있습니다. 이 항목에서는 Amazon ECS의 태그에 대한 개요를 제공하고 태그를 생성하는 방법을 보여 줍니다.

이 기능을 사용하려면 새로운 Amazon 리소스 이름(ARN) 및 리소스 식별자(ID) 형식을 옵트인해야 합니다. 자세한 내용은 Amazon 리소스 이름(ARN) 및 ID 섹션을 참조하세요

중요

개인 식별 정보(PII)나 기타 기밀 정보 또는 민감한 정보를 태그에 추가하지 않습니다. 청구를 비롯한 여러 AWS 서비스에서 태그에 액세스할 수 있습니다. 태그는 개인 데이터나 민감한 데이터에 사용하기 위한 것이 아닙니다.

태그 기본 사항

태그는 AWS 리소스에 할당하는 레이블입니다. 각 태그는 사용자가 정의하는 와 선택적 으로 구성됩니다.

태그를 사용하면 용도, 소유자 또는 환경을 기준으로 하는 등 AWS 리소스를 다양한 방식으로 분류할 수 있습니다. 이는 동일한 유형의 리소스가 많을 때 유용합니다. 지정한 태그를 기반으로 특정 리소스를 신속하게 식별할 수 있습니다. 예를 들어, 계정의 Amazon ECS 컨테이너 인스턴스에 대해 각 인스턴스의 소유자나 스택 수준을 추적하는 데 도움이 되는 태그 세트를 정의할 수 있습니다.

각 리소스 유형에 대한 요건을 충족하는 태그 키 세트를 고안하는 것이 좋습니다. 일관된 태그 키 세트를 사용하면 리소스를 보다 쉽게 관리할 수 있습니다. 추가하는 태그에 따라 리소스를 검색하고 필터링할 수 있습니다.

태그는 Amazon EC2에는 의미가 없으며 엄격하게 문자열로 해석됩니다. 또한 태그는 리소스에 자동으로 배정되지 않습니다. 태그 키와 값을 편집할 수 있으며 언제든지 리소스에서 태그를 제거할 수 있습니다. 태그의 값을 빈 문자열로 설정할 수 있지만 태그의 값을 Null로 설정할 수는 없습니다. 해당 리소스에 대해 키가 기존 태그와 동일한 태그를 추가하는 경우 새 값이 이전 값을 덮어씁니다. 리소스를 삭제하면 리소스 태그도 삭제됩니다.

AWS Management Console, AWS CLI 및 Amazon ECS API를 사용하여 태그 관련 태스크를 수행할 수 있습니다.

AWS Identity and Access Management(IAM)를 사용하는 경우 AWS 계정에서 태그를 관리할 수 있는 권한을 가진 사용자를 제어할 수 있습니다.

리소스에 태그 지정

신규 또는 기존의 Amazon ECS 작업, 서비스, 태스크 정의 및 클러스터에 태그를 지정할 수 있습니다.

중요

개인 식별 정보(PII)나 기타 기밀 정보 또는 민감한 정보를 태그에 추가하지 않습니다. 청구를 비롯한 여러 AWS 서비스에서 태그에 액세스할 수 있습니다. 태그는 개인 데이터나 민감한 데이터에 사용하기 위한 것이 아닙니다.

Amazon ECS 콘솔을 사용하는 경우, 관련 리소스 페이지의 태그(Tags) 탭을 사용하면 새로운 또는 기존 리소스에 태그를 언제든지 적용할 수 있습니다. Amazon ECS 관리형 태그 옵션(태그 전파 시작(Propagate tags from) 옵션)을 사용하는 경우, 태그는 태스크 정의 또는 서비스에서 작업으로 복사됩니다. 이 태스크는 태스크를 실행하거나 서비스를 생성할 때 수행할 수 있습니다.

Amazon ECS API, AWS CLI 또는 AWS SDK를 사용 중인 경우 관련 API 작업의 tags 파라미터를 사용하여 새 리소스에 태그를 적용할 수 있습니다. 또는 TagResource API 태스크를 사용하여 기존 리소스에 태그를 적용할 수도 있습니다. 자세한 내용은 TagResource를 참조하세요. propagateTags 파라미터를 사용하면 태그를 태스크 정의 또는 서비스에서 작업으로 복사할 수 있습니다. 이 태스크는 태스크를 실행하거나 서비스를 생성할 때 수행할 수 있습니다. 자세한 내용은 RunTaskCreateService 섹션을 참조하세요.

또한 일부 리소스 생성 작업에서는 리소스 생성 시 리소스의 태그를 지정할 수 있습니다. 리소스를 생성하는 도중 태그를 적용할 수 없는 경우, 리소스 생성 프로세스가 롤백됩니다. 이는 태그를 사용하여 리소스가 생성되거나 아예 리소스가 생성되지 않도록 하고 언제든 태그 지정되지 않은 리소스가 남지 않게 합니다. 생성하는 동안 리소스에 태그를 지정하면 리소스 생성 후 사용자 지정 태그 지정 스크립트를 실행할 필요가 없습니다.

다음 표는 태그를 지정할 수 있는 Amazon ECS 리소스와 생성 시 태그를 지정할 수 있는 리소스를 설명합니다.

Amazon ECS 리소스 태그 지정 지원

리소스

태그 지원

태그 전달 지원

생성 시 태깅 지원(Amazon ECS API, AWS CLI, AWS SDK)

Amazon ECS 작업

예, 태스크 정의에서

Amazon ECS 서비스

예, 태스크 정의 또는 서비스에서 서비스의 작업으로

Amazon ECS 작업 세트

아니요

Amazon ECS 태스크 정의

아니요

Amazon ECS 클러스터

아니요

Amazon ECS 컨테이너 인스턴스

예, Amazon EC2 인스턴스에서 자세한 내용은 Amazon EC2 컨테이너 인스턴스에 태그 추가 섹션을 참조하세요.

Amazon ECS 외부 인스턴스

아니요

아니요, AWS Management Console을 사용하거나 Amazon ECS, API, AWS CLI 또는 AWS SDK를 사용하여 외부 인스턴스를 클러스터에 등록한 후 태그를 추가할 수 있습니다. 자세한 내용은 개별 리소스에 대한 태그 추가 및 삭제 섹션을 참조하세요.

태그 제한

태그에 적용되는 기본 제한은 다음과 같습니다.

  • 리소스당 최대 태그 수 – 50개

  • 각 리소스에 대해 각 태그 키는 고유하며 하나의 값만 가질 수 있습니다.

  • 최대 키 길이 - UTF-8 형식의 유니코드 문자 128자

  • 최대 값 길이 - UTF-8 형식의 유니코드 문자 256자

  • 태깅 스키마를 여러 서비스와 리소스에서 사용하는 경우 다른 서비스 또한 허용되는 문자에 대한 제한이 있을 수 있음을 유의합니다. 일반적으로 허용되는 문자는 UTF-8로 표현할 수 있는 문자, 숫자 및 공백과 특수 문자 + - = . _ : / @.

  • 태그 키와 값은 대/소문자를 구분합니다.

  • 키 또는 값에 aws:, AWS: 또는 이러한 접두사의 대문자 또는 소문자 조합을 사용하지 마세요. 이러한 이름은 AWS 전용으로 예약되어 있습니다. 이 접두사가 지정된 태그 키나 값은 편집하거나 삭제할 수 없습니다. 이 접두사가 지정된 태그는 리소스당 태그 수 제한에 포함되지 않습니다.

리소스에 결제용 태그 지정

Amazon ECS 관리형 태그를 사용하면 Amazon ECS는 클러스터 이름으로 새로 시작한 모든 작업에 태그를 자동으로 지정합니다. 하나의 서비스에 속한 작업의 경우, 해당 서비스 이름으로도 태그가 지정됩니다. 이러한 관리형 태그는 비용 및 사용 보고서에서 활성화된 후 비용 할당을 검토할 때 유용합니다. 자세한 내용은 Amazon ECS 사용 보고서 섹션을 참조하세요.

결합된 리소스의 비용을 확인하려면 태그 키 값을 동일한 리소스에 따라 결제 정보를 구성할 수 있습니다. 예를 들어, 특정 애플리케이션 이름으로 여러 리소스에 태그를 지정한 다음 결제 정보를 구성하여 여러 서비스에 걸친 해당 애플리케이션의 총 비용을 볼 수 있습니다. 태그를 사용한 비용 할당 보고서 설정에 대한 자세한 내용은 AWS Billing and Cost Management 사용 설명서에서 월간 비용 할당 보고서를 참조하세요.

중요

이 기능을 사용하려면 새로운 Amazon 리소스 이름(ARN) 및 리소스 식별자(ID) 형식을 옵트인해야 합니다. 자세한 내용은 Amazon 리소스 이름(ARN) 및 ID 섹션을 참조하세요.

참고

보고서를 활성화한 경우, 24시간 후에 이번 달의 데이터를 볼 수 있습니다.

콘솔을 사용한 태그 작업

Amazon ECS 콘솔을 사용하면 새 작업 또는 기존 작업, 서비스, 태스크 정의, 클러스터 또는 컨테이너 인스턴스와 연결된 태그를 관리할 수 있습니다.

Amazon ECS 콘솔에서 리소스 관련 페이지를 선택하면 이러한 리소스의 목록이 표시됩니다. 예를 들어, 탐색 창에서 클러스터(Clusters)를 선택할 경우, 콘솔에 Amazon ECS 클러스터 목록이 표시됩니다. 이러한 목록 중 하나(예: 특정 클러스터)에서 리소스를 선택할 때 해당 리소스가 태그를 지원하면 태그(Tags) 탭에서 해당 태그를 보고 관리할 수 있습니다.

중요

개인 식별 정보(PII)나 기타 기밀 정보 또는 민감한 정보를 태그에 추가하지 않습니다. 청구를 비롯한 여러 AWS 서비스에서 태그에 액세스할 수 있습니다. 태그는 개인 데이터나 민감한 데이터에 사용하기 위한 것이 아닙니다.

시작 중 개별 리소스에 대한 태그 추가

다음의 리소스를 사용하면 리소스를 생성할 때 태그를 지정할 수 있습니다.

작업

콘솔

하나 이상의 태스크를 실행.

독립 실행형 작업 실행

서비스 생성.

Amazon ECS 서비스 생성

작업 세트 생성.

외부 배포

태스크 정의 등록.

태스크 정의 생성하기

클러스터 생성.

클러스터 생성

하나 이상의 컨테이너 인스턴스를 실행.

Amazon ECS Linux 컨테이너 인스턴스 시작

개별 리소스에 대한 태그 추가 및 삭제

Amazon ECS를 사용하면 리소스 페이지에서 클러스터, 서비스, 작업 및 태스크 정의와 연결된 태그를 직접 추가하거나 삭제할 수 있습니다. 컨테이너 인스턴스 태그 지정에 대한 자세한 내용은 Amazon EC2 컨테이너 인스턴스에 태그 추가 섹션을 참조하세요.

개별 리소스에 태그를 추가하려면

  1. https://console.aws.amazon.com/ecs/에서 Amazon ECS 콘솔을 엽니다.

  2. 탐색 모음에서 사용할 리전을 선택합니다.

  3. 탐색 창에서 리소스 유형(예: 클러스터)을 선택합니다.

  4. 리소스 목록에서 리소스를 선택하고 태그(Tags), 편집(Edit)을 차례대로 선택합니다.

  5. 태그 편집(Edit Tags) 대화 상자에서 각 태그의 키와 값을 지정한 다음, 저장(Save)을 선택합니다.

개별 리소스에서 태그를 삭제하려면

  1. https://console.aws.amazon.com/ecs/에서 Amazon ECS 콘솔을 엽니다.

  2. 탐색 모음에서 사용할 리전을 선택합니다.

  3. 탐색 창에서 리소스 유형(예: 클러스터)을 선택합니다.

  4. 리소스 목록에서 리소스를 선택하고 태그(Tags), 편집(Edit)을 차례대로 선택합니다.

  5. 태그 편집 페이지에서 삭제할 각 태그에 대해 삭제(Delete) 아이콘을 선택하고 저장(Save)을 선택합니다.

Amazon EC2 컨테이너 인스턴스에 태그 추가

다음 방법 중 하나를 사용하면 태그를 컨테이너 인스턴스와 연결할 수 있습니다.

  • 방법 1 – Amazon EC2 API, CLI 또는 콘솔을 사용하여 컨테이너 인스턴스를 생성할 때 컨테이너 에이전트 구성 파라미터 ECS_CONTAINER_INSTANCE_TAGS를 사용하여 사용자 데이터를 인스턴스에 전달해 태그를 지정합니다. 이렇게 하면 오로지 Amazon ECS의 컨테이너 인스턴스와 연결된 태그가 생성되며, 이러한 태그는 Amazon EC2 API를 사용하여 볼 수 없습니다. 자세한 내용은 Amazon EC2 사용자 데이터를 사용하여 컨테이너 인스턴스 부트스트래핑 섹션을 참조하세요.

    중요

    Amazon EC2 Auto Scaling 그룹을 사용하여 컨테이너 인스턴스를 시작한 경우 ECS_CONTAINER_INSTANCE_TAGS 에이전트 구성 파라미터를 사용하여 태그를 추가해야 합니다. 이는 Auto Scaling 그룹을 사용하여 시작된 Amazon EC2 인스턴스에 태그가 추가되는 방식 때문입니다.

    태그를 컨테이너 인스턴스와 연결하는 사용자 데이터 스크립트를 예시하면 다음과 같습니다.

    #!/bin/bash cat <<'EOF' >> /etc/ecs/ecs.config ECS_CLUSTER=MyCluster ECS_CONTAINER_INSTANCE_TAGS={"tag_key": "tag_value"} EOF
  • 방법 2 – Amazon EC2 API, CLI 또는 콘솔을 사용하여 컨테이너 인스턴스를 생성할 때 TagSpecification.N 파라미터를 사용하여 태그를 지정한 다음, 컨테이너 에이전트 구성 파라미터 ECS_CONTAINER_INSTANCE_PROPAGATE_TAGS_FROM을 사용하여 인스턴스에 사용자 데이터를 전달합니다. 이렇게 하면 Amazon EC2에서 Amazon ECS로 전파됩니다.

    Amazon EC2 인스턴스와 연결된 태그를 전파하고 MyCluster라고 하는 클러스터에 인스턴스를 등록하는 사용자 데이터 스크립트의 예는 다음과 같습니다.

    #!/bin/bash cat <<'EOF' >> /etc/ecs/ecs.config ECS_CLUSTER=MyCluster ECS_CONTAINER_INSTANCE_PROPAGATE_TAGS_FROM=ec2_instance EOF

    컨테이너 인스턴스 태그가 Amazon EC2에서 Amazon ECS로 전파되도록 액세스를 제공하려면 Amazon ECS 컨테이너 인스턴스 IAM 역할에 대해 다음 권한을 인라인 정책으로 직접 추가합니다. 자세한 내용은 IAM 정책 추가 및 제거 섹션을 참조하세요.

    • ec2:DescribeTags

    다음은 이러한 권한을 추가하는 데 사용되는 인라인 정책 예제입니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeTags" ], "Resource": "*" } ] }

외부 컨테이너 인스턴스에 태그 추가

다음 방법 중 하나를 사용하면 태그를 외부 컨테이너 인스턴스와 연결할 수 있습니다.

  • 방법 1 — 외부 인스턴스를 클러스터에 등록하기 위해 설치 스크립트를 실행하기 전에 /etc/ecs/ecs.config에 Amazon ECS 컨테이너 에이전트 구성 파일을 생성하거나 편집하고 ECS_CONTAINER_INSTANCE_TAGS 컨테이너 에이전트 구성 파라미터를 추가합니다. 이렇게 하면 외부 인스턴스와 연결된 태그가 생성됩니다.

    다음은 사용해야 하는 구문의 예제입니다.

    ECS_CONTAINER_INSTANCE_TAGS={"tag_key": "tag_value"}
  • 방법 2 — 외부 인스턴스가 클러스터에 등록되면 AWS Management Console을 사용해 태그를 추가합니다. 자세한 내용은 개별 리소스에 대한 태그 추가 및 삭제 섹션을 참조하세요.

CLI 또는 API를 사용한 태그 작업

다음을 사용하여 리소스에 대한 태그를 추가, 업데이트, 조회 및 삭제할 수 있습니다. 해당 설명서의 예제를 참조하세요.

중요

개인 식별 정보(PII)나 기타 기밀 정보 또는 민감한 정보를 태그에 추가하지 않습니다. 청구를 비롯한 여러 AWS 서비스에서 태그에 액세스할 수 있습니다. 태그는 개인 데이터나 민감한 데이터에 사용하기 위한 것이 아닙니다.

Amazon ECS 리소스 태그 지정 지원

작업

AWS CLI

API 작업

하나 이상의 태그를 추가하거나 덮어씁니다.

tag-resource

TagResource

하나 이상의 태그를 삭제합니다.

untag-resource

UntagResource

다음 예제는 AWS CLI를 사용하여 리소스에 태그를 지정하거나 태그를 제거하는 방법을 보여줍니다.

예제 1: 기존 클러스터에 태그 지정

다음 명령은 기존 클러스터에 태그를 지정합니다.

aws ecs tag-resource --resource-arn resource_ARN --tags key=stack,value=dev

예제 2: 기존 클러스터에서 태그 제거

다음 명령은 기존 클러스터에서 태그를 삭제합니다.

aws ecs untag-resource --resource-arn resource_ARN --tag-keys tag_key

예제 3: 리소스의 태그 목록 조회

다음 명령은 기존 리소스와 연결된 태그를 나열합니다.

aws ecs list-tags-for-resource --resource-arn resource_ARN

일부 리소스 생성 작업에서는 리소스를 생성할 때 태그를 지정할 수 있습니다. 다음 태스크는 생성 시 태그 지정을 지원합니다.

작업

AWS CLI

AWS Tools for Windows PowerShell

API 작업

하나 이상의 태스크를 실행.

run-task

Start-ECSTask

RunTask

서비스 생성.

create-service

New-ECSService

CreateService

작업 세트 생성.

create-task-set

New-ECSTaskSet

CreateTaskSet

태스크 정의 등록.

register-task-definition

Register-ECSTaskDefinition

RegisterTaskDefinition

클러스터 생성.

create-cluster

New-ECSCluster

CreateCluster

하나 이상의 컨테이너 인스턴스를 실행.

run-instances

New-EC2Instance

RunInstances

다음 예제는 리소스를 생성할 때 태그를 적용하는 방법을 보여 줍니다.

예제 1: 클러스터 생성 및 태그 적용

다음 명령은 devcluster라는 이름의 클러스터를 생성하며 키 team 및 값 devs이 있는 태그를 추가합니다.

aws ecs create-cluster --cluster-name devcluster --tags key=team,value=devs

예제 2: 서비스 생성 및 태그 적용

다음 명령은 application이라는 이름의 서비스를 생성하며 키 stack 및 값 dev이 있는 태그를 추가합니다.

aws ecs create-service --service-name application --task-definition task-def-app --tags key=stack,value=dev

예제 3: 태그를 사용하여 서비스를 생성하고 태그를 전달

--propagateTags 파라미터를 사용하면 태그를 태스크 정의 또는 서비스에서 서비스 내 작업으로 복사할 수 있습니다. 다음 명령은 태그가 있는 서비스를 생성하며 해당 서비스의 작업으로 태그를 전파합니다.

aws ecs create-service --service-name application --task-definition task-def-app --tags key=stack,value=dev --propagateTags Service