

# Amazon ECS 리소스 태그 지정
<a name="ecs-using-tags"></a>

Amazon ECS 리소스 관리를 지원하려면 *태그*를 사용하여 각 리소스에 고유한 메타데이터를 선택적으로 할당할 수 있습니다. 각 **태그는 **키와 **값(선택 사항)으로 구성됩니다.

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

비용 및 사용량 보고서에 태그를 사용할 수 있습니다. 이 보고서를 사용하면 Amazon ECS 리소스의 비용 및 사용량을 분석할 수 있습니다. 자세한 내용은 [Amazon ECS 사용 보고서](usage-reports.md) 섹션을 참조하세요.

**주의**  
태그 키 및 해당 값을 반환하는 여러 API가 있습니다. `DescribeTags`에 대한 액세스를 거부해도 다른 API가 반환한 태그에 대한 액세스는 자동으로 거부되지 않습니다. 민감한 데이터를 태그에 포함하지 않는 것이 가장 좋습니다.

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

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

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

## 리소스 태그 지정 방법
<a name="tag-resources"></a>

Amazon ECS 작업, 서비스, 작업 정의, 클러스터에 태그를 지정하는 방법은 여러 가지입니다.
+ 사용자는 AWS Management Console, Amazon ECS API, AWS CLI 또는 AWS SDK를 사용하여 리소스에 수동으로 태그를 지정합니다.
+ 사용자가 서비스를 생성하거나 독립 실행형 작업을 실행하고 Amazon ECS 관리형 태그 옵션을 선택합니다.

  Amazon ECS는 새로 시작된 모든 작업에 자동으로 태그를 지정합니다. 자세한 내용은 [Amazon ECS 관리형 태그](#managed-tags) 섹션을 참조하세요.
+ 사용자는 콘솔을 사용하여 리소스를 생성합니다. 콘솔은 자동으로 리소스에 태그를 지정합니다.

  이러한 태그는 AWS CLI 및 AWS SDK 응답에 반환되고 콘솔에 표시됩니다. 이러한 태그는 수정하거나 삭제할 수 없습니다.

  추가된 태그에 대한 자세한 내용은 **Amazon ECS 리소스 태그 지정 지원** 테이블의 **콘솔에서 자동으로 추가된 태그**를 참조하세요.

리소스를 생성할 때 태그를 지정했는데 태그를 적용할 수 없는 경우 Amazon ECS가 생성 프로세스를 롤백합니다. 이는 태그를 사용하여 리소스가 생성되거나 아예 리소스가 생성되지 않도록 하고 언제든 태그 지정되지 않은 리소스가 남지 않게 합니다. 생성하는 동안 리소스에 태그를 지정하면 리소스 생성 후 사용자 지정 태그 지정 스크립트를 실행할 필요가 없습니다.

다음 표에는 태그 지정을 지원하는 Amazon ECS 리소스가 설명되어 있습니다.


|  리소스  |  태그 지원  |  태그 전달 지원  | 콘솔에서 자동으로 추가된 태그 | 
| --- | --- | --- | --- | 
|  Amazon ECS 작업  |  예  |  예, 태스크 정의에서  | 키: aws:ecs:clusterName *값*: `cluster-name` | 
|  Amazon ECS 서비스  |  예  |  예, 태스크 정의 또는 서비스에서 서비스의 작업으로  | 키: ecs:service:stackId *값* `arn:aws:cloudformation:arn` | 
|  Amazon ECS 작업 세트  |  예  |  아니요  | 해당 사항 없음 | 
|  Amazon ECS 태스크 정의  |  예  |  아니요  | 키: ecs:taskDefinition:createdFrom *값*: `ecs-console-v2` | 
|  Amazon ECS 클러스터  |  예  |  아니요  | 키: aws:cloudformation:logical-id *값*: `ECSCluster` 키: aws:cloudformation:stack-id*값*: `arn:aws:cloudformation:arn`*키*: `aws:cloudformation:stack-name`*값*: `ECS-Console-V2-Cluster-EXAMPLE` | 
|  Amazon ECS 컨테이너 인스턴스  |  예  |  예, Amazon EC2 인스턴스에서 자세한 내용은 [Amazon ECS에 대한 Amazon EC2 컨테이너 인스턴스에 태그 추가](instance-details-tags.md) 섹션을 참조하세요.  | 해당 사항 없음 | 
|  Amazon ECS 외부 인스턴스  |  예  |  아니요  | 해당 사항 없음 | 
| Amazon ECS 용량 공급자 |  예.사전 정의된 `FARGATE` 및 `FARGATE_SPOT` 용량 공급자에는 태그를 지정할 수 없습니다. | 예. Amazon ECS 관리형 인스턴스의 용량 공급자에서만 가능합니다. Amazon EC2 인스턴스, 시작 템플릿, 탄력적 네트워크 인터페이스, 볼륨 등 공급자가 관리하는 모든 리소스로 Amazon ECS 관리형 인스턴스 용량 공급자의 태그를 전파할 수 있습니다. | 해당 사항 없음 | 

## 생성 시 리소스 태그 지정
<a name="tags-on-creation"></a>

다음 리소스는 Amazon ECS API, AWS CLI 또는 AWS SDK를 사용하여 생성 시 태그 지정을 지원합니다.
+ Amazon ECS 작업
+ Amazon ECS 서비스
+ Amazon ECS 작업 정의
+ Amazon ECS 작업 세트
+ Amazon ECS 클러스터
+ Amazon ECS 컨테이너 인스턴스
+ Amazon ECS 용량 공급자 생성

Amazon ECS에는 리소스 생성에 대해 태그 지정 권한 부여를 사용하는 옵션이 있습니다. AWS 계정에 태그 지정 권한이 있도록 구성된 경우 사용자에게는 리소스를 생성하는 작업을 위한 권한(예: `ecsCreateCluster`)이 있어야 합니다. 리소스 생성 작업에서 태그를 지정하면 AWS는 추가 권한 부여를 수행하여 사용자 또는 역할에 태그를 생성할 권한이 있는지 확인합니다. 따라서 `ecs:TagResource` 작업을 사용할 수 있는 명시적 권한을 부여해야 합니다. 자세한 내용은 [생성 시 리소스에 태그를 지정할 수 있는 권한 부여](supported-iam-actions-tagging.md) 섹션을 참조하세요. 옵션을 구성하는 방법에 대한 자세한 내용은 [태그 지정 권한 부여](ecs-account-settings.md#tag-resources-setting) 섹션을 참조하세요.

## 제한 사항
<a name="tag-restrictions"></a>

태그에 적용되는 제한은 다음과 같습니다.
+ 최대 50개의 태그를 리소스와 연결할 수 있습니다.
+ 한 리소스에 대해 태그 키를 반복할 수 없습니다. 각 태그 키는 고유해야 하며 하나의 값만 가질 수 있습니다.
+ 키는 최대 128자(UTF-8 형식)까지 가능합니다.
+ 값은 최대 256자(UTF-8 형식)까지 가능합니다.
+ 여러 AWS 서비스 및 리소스에서 태그 지정 스키마를 사용하는 경우 사용하는 문자 유형을 제한합니다. 일부 서비스는 허용되는 문자에 제한이 있을 수 있습니다. 일반적으로 허용되는 문자는 문자, 숫자, 공백 및 특수 문자 `+` `-` `=` `.` `_` `:` `/` `@`입니다.
+ 태그 키와 값은 대소문자를 구분합니다.
+ 키 또는 값에 `aws:`, `AWS:` 등 접두사의 대문자 또는 소문자 조합을 사용할 수 없습니다. 이러한 이름은 AWS 전용으로 예약되어 있습니다. 이 접두사가 지정된 태그 키나 값은 편집하거나 삭제할 수 없습니다. 이 접두사가 지정된 태그는 리소스당 태그 수 제한에 포함되지 않습니다.

## Amazon ECS 관리형 태그
<a name="managed-tags"></a>

Amazon ECS 관리형 태그를 사용하는 경우 Amazon ECS는 클러스터 정보와 사용자가 추가한 작업 정의 태그 또는 서비스 태그를 사용하여 새로 시작된 모든 작업 및 작업에 연결된 모든 Amazon EBS 볼륨에 자동으로 태그를 지정합니다. 다음은 추가된 태그에 대한 설명입니다.
+ 독립 실행형 작업 - 키**가 `aws:ecs:clusterName`, 값**이 클러스터 이름으로 설정된 태그. 사용자가 추가한 모든 작업 정의 태그. 독립 실행형 작업에 연결된 Amazon EBS 볼륨은 *키*를 `aws:ecs:clusterName`, *값*을 클러스터 이름으로 설정한 태그를 수신합니다. Amazon EBS 볼륨 태그 지정에 대한 자세한 내용은 [Amazon EBS 볼륨 태그 지정](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specify-ebs-config.html#ebs-volume-tagging)을 참조하세요.
+ 서비스의 일부인 작업 - 키**가 `aws:ecs:clusterName`, 값**이 클러스터 이름으로 설정된 태그. **키가 `aws:ecs:serviceName`, **값이 서비스 이름으로 설정된 태그. 다음 리소스 중 하나의 태그:
  + 작업 정의 - 사용자가 추가한 모든 작업 정의 태그.
  + 서비스 - 사용자가 추가한 모든 서비스 태그.

    서비스의 일부인 태스크에 연결된 Amazon EBS 볼륨은 *키*가 `aws:ecs:clusterName`이고 *값*이 클러스터 이름으로 설정된 태그와 *키*가 `aws:ecs:serviceName`이고 *값*이 서비스 이름으로 설정된 태그를 수신합니다. Amazon EBS 볼륨 태그 지정에 대한 자세한 내용은 [Amazon EBS 볼륨 태그 지정](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specify-ebs-config.html#ebs-volume-tagging)을 참조하세요.

이 기능에서는 다음 옵션이 필요합니다.
+ 새로운 Amazon 리소스 이름(ARN) 및 리소스 식별자(ID) 형식을 옵트인해야 합니다. 자세한 내용은 [Amazon 리소스 이름(ARN) 및 ID](ecs-account-settings.md#ecs-resource-ids) 섹션을 참조하세요.
+ API를 사용하여 서비스를 생성하거나 작업을 실행할 때 `run-task` 및 `create-service`에서 `true`에 대한 `enableECSManagedTags`을(를) 설정해야 합니다. 자세한 내용은 *AWS Command Line Interface API 참조*에서 [create-service](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html) 및 [run-task](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html)를 참조하세요.
+ Amazon ECS는 관리형 태그를 사용하여 클러스터 Auto Scaling과 같은 일부 기능이 활성화되는 시기를 결정합니다. Amazon ECS에서 기능을 효율적으로 관리할 수 있도록 태그를 수동으로 수정하지 않는 것이 좋습니다.

## 결제에 태그 사용
<a name="tag-resources-for-billing"></a>

AWS는 Amazon ECS 리소스의 비용 및 사용량을 분석할 수 있는 Cost Explorer라는 보고 도구를 제공합니다.

Cost Explorer를 사용하여 사용량 및 비용 차트를 볼 수 있습니다. 지난 13개월의 데이터를 볼 수 있으며 향후 3개월 동안의 지출을 예상해볼 수 있습니다. Cost Explorer를 사용하여 시간의 경과에 따른 AWS 리소스의 지출 패턴을 확인할 수 있습니다. 예를 들어 Cost Explorer를 사용하여 추가 조사가 필요한 영역을 알아내고, 비용 이해에 사용할 수 있는 추세를 파악할 수 있습니다. 또한 데이터의 시간 범위를 지정하고 일별 또는 월별 시간 데이터를 볼 수도 있습니다.

Amazon ECS 관리형 태그 또는 사용자 추가 태그를 비용 및 사용량 보고서에 사용할 수 있습니다. 자세한 내용은 [Amazon ECS 사용 보고서](usage-reports.md) 섹션을 참조하세요.

결합된 리소스의 비용을 확인하려면 태그 키 값을 동일한 리소스에 따라 결제 정보를 구성할 수 있습니다. 예를 들어, 특정 애플리케이션 이름으로 여러 리소스에 태그를 지정한 다음 결제 정보를 구성하여 여러 서비스에 걸친 해당 애플리케이션의 총 비용을 볼 수 있습니다. 태그를 사용한 비용 할당 보고서 설정에 대한 자세한 내용은 *AWS Billing 사용 설명서*에서 [월간 비용 할당 보고서](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/configurecostallocreport.html)를 참조하세요.

또한* *비용 할당 데이터 분할을 켜서 비용 및 사용 보고서에서 작업 수준의 CPU 및 메모리 사용 데이터를 얻을 수 있습니다. 자세한 내용은 [작업 수준 비용 및 사용 보고서](usage-reports.md#task-cur) 섹션을 참조하세요.

**참고**  
보고를 켠 경우, 최대 24시간 후에 이번 달의 데이터를 볼 수 있습니다.

# Amazon ECS 리소스에 태그 추가
<a name="tag-resources-console"></a>

새 태스크, 기존 태스크, 서비스, 태스크 정의 또는 클러스터에 태그를 지정할 수 있습니다. 컨테이너 인스턴스 태그 지정에 대한 자세한 내용은 [Amazon ECS에 대한 Amazon EC2 컨테이너 인스턴스에 태그 추가](instance-details-tags.md) 섹션을 참조하세요.

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

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


|  Task  |  콘솔  |  AWS CLI  |  API 작업  | 
| --- | --- | --- | --- | 
|  하나 이상의 태스크를 실행.  |  [애플리케이션을 Amazon ECS 태스크로 실행](standalone-task-create.md)  |  [run-task](https://docs.aws.amazon.com/cli/latest/reference/ecs/run-task.html)  |  [RunTask](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html)  | 
|  서비스를 생성합니다.  |  [Amazon ECS 롤링 업데이트 배포 생성](create-service-console-v2.md)  |  [create-service](https://docs.aws.amazon.com/cli/latest/reference/ecs/create-service.html)  |  [CreateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html)  | 
|  작업 세트 생성.  |  [타사 컨트롤러를 사용한 Amazon ECS 서비스 배포](deployment-type-external.md)  |  [create-task-set](https://docs.aws.amazon.com/cli/latest/reference/ecs/create-task-set.html)  |  [CreateTaskSet](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateTaskSet.html)  | 
|  태스크 정의 등록.  | [콘솔을 사용하여 Amazon ECS 작업 정의 생성](create-task-definition.md) |  [register-task-definition](https://docs.aws.amazon.com/cli/latest/reference/ecs/register-task-definition.html)  |  [RegisterTaskDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RegisterTaskDefinition.html)  | 
|  클러스터를 생성합니다.  |  [Fargate 워크로드에 대한 Amazon ECS 클러스터 생성](create-cluster-console-v2.md)   |  [create-cluster](https://docs.aws.amazon.com/cli/latest/reference/ecs/create-cluster.html)  |  [CreateCluster](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateCluster.html)  | 
|  하나 이상의 컨테이너 인스턴스를 실행.  |  [Amazon ECS Linux 컨테이너 인스턴스 시작](launch_container_instance.md)  |  [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html)  |  [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html)  | 
|  Amazon ECS 관리형 인스턴스에 대한 용량 공급자를 생성합니다.  |  [Amazon ECS 관리형 인스턴스에 대한 용량 공급자 생성](create-capacity-provider-managed-instances.md)  |  [create-capacity-provider](https://docs.aws.amazon.com/cli/latest/reference/ecs/create-capacity-provider.html)  |  [CreateCapacityProvider](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateCapacityProvider.html)  | 

## 기존 리소스에 태그 추가(Amazon ECS 콘솔)
<a name="adding-or-deleting-tags"></a>

리소스 페이지에서 클러스터, 서비스, 작업 및 작업 정의와 연결된 태그를 추가하거나 삭제할 수 있습니다.

**개별 리소스에 대한 태그 수정**

1. [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2)에서 콘솔을 엽니다.

1. 탐색 모음에서 사용할 AWS 리전(을)를 선택합니다.

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

1. 리소스 목록에서 리소스를 선택하고, **태그** 탭을 선택한 다음 **태그 관리**를 선택합니다.

1. 태그를 구성합니다.

   [태그 추가] **태그 추가**를 선택하고 다음을 수행합니다.
   + **키**에서 키 이름을 입력합니다.
   + **값**에 키 값을 입력합니다.

1. **저장**을 선택합니다.

## 기존 리소스에 태그 추가(AWS CLI)
<a name="tag-resources-api-sdk"></a>

AWS CLI 또는 API를 사용하여 하나 이상의 태그를 추가하거나 덮어쓸 수 있습니다.

**참고**  
듀얼 스택 서비스 엔드포인트를 사용하면 AWS CLI, SDK 및 Amazon ECS API에서 IPv4 및 IPv6 모두를 통해 Amazon ECS와 상호 작용할 수 있습니다. 자세한 내용은 [Amazon ECS 듀얼 스택 엔드포인트 사용](dual-stack-endpoint.md) 섹션을 참조하세요.
+ AWS CLI - [tag-resource](https://docs.aws.amazon.com/cli/latest/reference/ecs/tag-resource.html)
+ API 작업 - [TagResource](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TagResource.html)

# Amazon ECS 관리형 인스턴스에 대한 태그
<a name="instance-details-tags-managed-instances"></a>

Amazon ECS 관리형 인스턴스는 비용 최적화에 사용할 수 있는 사용자 지정 태그 및 AWS에 의해 추가된 태그의 조합을 지원합니다. 결제에서 태그 사용에 대한 자세한 내용은 [결제에 태그 사용](ecs-using-tags.md#tag-resources-for-billing) 섹션을 참조하세요.

## AWS에서 추가한 태그
<a name="instance-details-tags-managed-instances-system"></a>

 AWS는 용량 공급자가 생성한 각 Amazon ECS 관리형 인스턴스에 다음 태그를 추가합니다.
+ Amazon ECS는 Amazon ECS 관리형 인스턴스에 예약 태그 `AmazonECSCreated` 및 `AmazonECSManaged`를 자동으로 추가합니다.
+ Amazon ECS는 각 인스턴스에 다음 시스템 태그를 추가합니다.
  + *키*가 `aws:ecs:clusterName`이고 *값*이 클러스터 이름으로 설정된 태그.
  + *키*가 `aws:ecs:capacityProviderName`이고 *값*이 용량 공급자 이름으로 설정된 태그.
  + Amazon ECS 관리형 인스턴스의 경우 *키*가 `aws:ecs:containerInstanceId`이고 *값*이 컨테이너 인스턴스 ID인 태그.
+ Amazon EC2는 값이 `ecs-managed-instances`인 `aws:ec2:managed-launch` 시스템 태그를 추가합니다. 또한 Amazon EC2는 관리형 인스턴스를 생성하는 데 사용된 시작 템플릿과 관리형 인스턴스가 속한 Amazon EC2 Fleet을 나타내는 시스템 태그를 추가합니다.

## 사용자 지정 태그
<a name="instance-details-tags-managed-instances-custom"></a>

용량 공급자에 태그를 추가하고 `propagateTags` 속성을 사용하여 태그 전파를 활성화함으로써 Amazon ECS 관리형 인스턴스에 사용자 지정 태그를 추가할 수 있습니다. 용량 공급자의 태그는 해당 용량 공급자가 시작하는 관리형 인스턴스로 전파됩니다.

다음 용량 공급자 정의 예제에서는 `propagateTags`에 대해 `CAPACITY_PROVIDER` 값을 사용하여 용량 공급자를 생성할 때 용량 공급자로부터 태그를 지정하고 전파하는 방법을 보여줍니다.

```
{
    "name": "my-cluster-managed-instances-cp",
    "cluster": "my-cluster",
     "tags": [
                {
                "key":"tag_key",
                "value":"tag_value"
                }
            ],
    "managedInstancesProvider": {
        "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole",
        "propagateTags": "CAPACITY_PROVIDER",
        "instanceLaunchTemplate": {
            "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceProfile",
            "networkConfiguration": {
                "subnets": [
                    "subnet-abcdef01234567",
                    "subnet-bcdefa98765432"
                ],
                "securityGroups": [ 
                    "sg-0123456789abcdef"
                ]
            }
        }
    }
}
```

**참고**  
용량 공급자에 새 태그를 추가하면 새로 추가된 태그는 기존 인스턴스로 전파되지 않고 새로 생성된 인스턴스로 전파됩니다.
고객은 EC2 인스턴스에 직접 태그를 추가할 수 있지만 해당 태그는 용량 공급자로 다시 전파되지는 않습니다.
[기존 리소스에 태그 추가(AWS CLI)](tag-resources-console.md#tag-resources-api-sdk) 또는 [기존 리소스에 태그 추가(Amazon ECS 콘솔)](tag-resources-console.md#adding-or-deleting-tags)를 사용하여 용량 공급자에 태그를 지정하거나 태그를 해제할 수도 있습니다.

Amazon ECS 관리형 인스턴스 용량 공급자에 대한 자세한 내용은 [Amazon ECS 관리형 인스턴스 용량 공급자](managed-instances-capacity-providers-concept.md) 섹션을 참조하세요.

# Amazon ECS에 대한 Amazon EC2 컨테이너 인스턴스에 태그 추가
<a name="instance-details-tags"></a>

다음 방법 중 하나를 사용하면 Amazon ECS에 대한 Amazon EC2 컨테이너 인스턴스에 태그를 연결할 수 있습니다.
+ 방법 1 – Amazon EC2 API, CLI 또는 콘솔을 사용하여 컨테이너 인스턴스를 생성할 때 컨테이너 에이전트 구성 파라미터 `ECS_CONTAINER_INSTANCE_TAGS`를 사용하여 사용자 데이터를 인스턴스에 전달해 태그를 지정합니다. 이렇게 하면 오로지 Amazon ECS의 컨테이너 인스턴스와 연결된 태그가 생성되며, 이러한 태그는 Amazon EC2 API를 사용하여 볼 수 없습니다. 자세한 내용은 [데이터 전달을 위한 Amazon ECS Linux 컨테이너 인스턴스 부트스트래핑](bootstrap_container_instance.md) 섹션을 참조하세요.
**중요**  
Amazon EC2 Auto Scaling 그룹을 사용하여 컨테이너 인스턴스를 시작한 경우 ECS\$1CONTAINER\$1INSTANCE\$1TAGS 에이전트 구성 파라미터를 사용하여 태그를 추가해야 합니다. 이는 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 정책 추가 및 제거](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) 섹션을 참조하세요.
  + `ec2:DescribeTags`

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

------
#### [ JSON ]

****  

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

------

# Amazon ECS에 대한 외부 컨테이너 인스턴스에 태그 추가
<a name="instance-details-tags-external"></a>

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

  다음은 구문의 예제입니다.

  ```
  ECS_CONTAINER_INSTANCE_TAGS={"tag_key": "tag_value"}
  ```
+ 방법 2 — 외부 인스턴스가 클러스터에 등록되면 AWS Management Console을 사용해 태그를 추가합니다. 자세한 내용은 [기존 리소스에 태그 추가(Amazon ECS 콘솔)](tag-resources-console.md#adding-or-deleting-tags) 섹션을 참조하세요.

# Amazon ECS 사용 보고서
<a name="usage-reports"></a>

AWS는 Amazon ECS 리소스의 비용 및 사용량을 분석할 수 있는 Cost Explorer라는 보고 도구를 제공합니다.

Cost Explorer를 사용하여 사용량 및 비용 차트를 볼 수 있습니다. 지난 13개월의 데이터를 볼 수 있으며 향후 3개월 동안의 지출을 예상해볼 수 있습니다. Cost Explorer를 사용하여 시간의 경과에 따른 AWS 리소스의 지출 패턴을 확인할 수 있습니다. 예를 들어 Cost Explorer를 사용하여 추가 조사가 필요한 영역을 알아내고, 비용 이해에 사용할 수 있는 추세를 파악할 수 있습니다. 또한 데이터의 시간 범위를 지정하고 일별 또는 월별 시간 데이터를 볼 수도 있습니다.

비용 및 사용 보고서의 측정 데이터는 모든 Amazon ECS 작업에서의 사용량을 보여줍니다. 측정 데이터에는 실행된 각 작업에 대한 CPU 사용량이 `vCPU-Hours`로 포함되고 메모리 사용량이 `GB-Hours`로 포함됩니다. 데이터가 표시되는 방식은 태스크의 컴퓨팅 옵션에 의해 결정됩니다.

Fargate를 사용하는 태스크의 경우 `lineItem/Operation` 열에 `FargateTask`가 표시되고 각 태스크와 연관된 비용이 표시됩니다.

EC2를 사용하는 태스크의 경우 `lineItem/Operation` 열에 `ECSTask-EC2`가 표시되고 태스크와 연관된 직접 비용은 표시되지 않습니다. 보고서에 표시된 측정 데이터(메모리 사용량 등)은 표시된 청구 기간 동안 태스크에 예약된 총 리소스를 나타냅니다. 이 데이터를 사용하여 Amazon EC2 인스턴스의 기본 클러스터 비용을 결정하는 데 사용할 수 있습니다. Amazon EC2 인스턴스에 대한 비용 및 사용량 데이터는 Amazon EC2 서비스 아래에 별도로 나열됩니다.

Amazon ECS 관리형 태그를 사용하면 각 작업이 속한 서비스 또는 클러스터를 식별할 수도 있습니다. 자세한 내용은 [결제에 태그 사용](ecs-using-tags.md#tag-resources-for-billing) 섹션을 참조하세요.

**중요**  
측정 데이터는 2018년 11월 16일 또는 그 이후에 시작된 작업에 대해서만 볼 수 있습니다. 이 날짜 이전에 시작된 작업에는 측정 데이터가 표시되지 않습니다.

Cost Explorer에서 사용자가 비용 할당 데이터를 정렬할 수 있는 필드 중 일부를 예로 들면 다음과 같습니다.
+ 클러스터 이름
+ 서비스 이름
+ 리소스 태그
+ 시작 유형
+ AWS 리전
+ 사용 유형

AWS 비용 및 사용 보고서 생성에 대한 자세한 내용은 *AWS Billing 사용 설명서*의 [AWS 비용 및 사용 보고서](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-reports-costusage.html)를 참조하세요.

## 작업 수준 비용 및 사용 보고서
<a name="task-cur"></a>

AWS Cost Management에서의 Fargate의 작업 및 EC2의 작업을 비롯한 Amazon ECS의 각 작업에 대한 CPU 및 메모리 사용 데이터를 AWS Cost and Usage Report에서 제공할 수 있습니다. 이 데이터를* *비용 할당 데이터 분할이라고 합니다. 이 데이터를 사용하여 애플리케이션의 비용 및 사용량을 분석할 수 있습니다. 또한 비용 할당 태그와 비용 범주를 사용하여 개별 사업부 및 팀으로 비용을 분할하고 할당할 수 있습니다. *비용 할당 데이터 분할*에 대한 자세한 내용은 AWS Cost and Usage Report 사용 설명서의 [Understanding split cost allocation data](https://docs.aws.amazon.com/cur/latest/userguide/split-cost-allocation-data.html)를 참조하세요.

AWS Cost Management Console에서 계정에 대해 작업 수준* *비용 할당 데이터 분할을 옵트인할 수 있습니다. 관리(지급인) 계정이 있는 경우 지급인 계정에서 옵트인하여 모든 연결 계정에 이 구성을 적용할 수 있습니다.

비용 할당 데이터 분할을* *설정하면 보고서에서 **splitLineItem** 헤더 아래에 추가 열이 표시됩니다. 자세한 내용은 AWS Cost and Usage Report 사용 설명서의 [Split line item details](https://docs.aws.amazon.com/cur/latest/userguide/split-line-item-columns.html)를 참조하세요.

EC2 작업의 경우 이 데이터에서는 리소스 사용량 또는 예약 및 인스턴스의 나머지 리소스를 기준으로 EC2 인스턴스의 비용을 분할합니다.

사전 조건은 다음과 같습니다.
+ `ECS_DISABLE_METRICS` Amazon ECS 에이전트 구성 파라미터를 `false`로 설정합니다.

  이 설정이 `false`이면 Amazon ECS 에이전트는 지표를 Amazon CloudWatch로 전송합니다. Linux에서는 이 설정이 기본적으로 `false`이고 지표가 CloudWatch로 전송됩니다. Windows에서는 이 설정이 기본적으로 `true`이므로, AWS Cost Management에서 사용할 지표를 CloudWatch로 전송하려면 설정을 `false`로 변경해야 합니다. ECS 에이전트 구성에 대한 자세한 내용은 [Amazon ECS 컨테이너 에이전트 구성](ecs-agent-config.md)을 참조하세요.
+ 신뢰할 수 있는 지표를 위한 최소 Docker 버전은 Docker 버전 v20.10.13 이상이며, 이 버전은 Amazon ECS 최적화 AMI 20220607 이상에 포함되어 있습니다.

비용 할당 데이터 분할을* *사용하려면 보고서를 생성하고 **비용 할당 데이터 분할**을 선택해야 합니다. 자세한 내용은 AWS Cost and Usage Report 사용 설명서의 [Creating Cost and Usage Reports](https://docs.aws.amazon.com/cur/latest/userguide/cur-create.html)를 참조하세요.

AWS Cost Management는 작업 CPU 및 메모리 사용량을 사용하여 비용 할당 데이터 분할을* *계산합니다. 사용량을 사용할 수 없는 경우 AWS Cost Management에서는 사용량 대신 작업 CPU 및 메모리 예약을 사용할 수 있습니다. CUR에서 예약을 사용하는 것으로 확인되면 컨테이너 인스턴스가 사전 조건을 충족하고 작업 리소스 사용량 지표가 CloudWatch에 나타나는지 확인합니다.