

# DynamoDB의 리소스에 태그 및 레이블 추가
<a name="Tagging"></a>

Amazon DynamoDB 리소스에 *태그*를 사용하여 레이블을 지정할 수 있습니다. 태그를 사용하면 용도, 소유자, 환경 또는 다른 기준 등 다양한 방식으로 리소스를 분류할 수 있습니다. 태그를 사용하면 다음이 가능합니다.
+ 지정한 태그를 기반으로 리소스를 신속하게 식별합니다.
+ AWS 청구서를 태그별로 구분할 수 있습니다.
**참고**  
태그가 지정된 테이블과 관련된 로컬 보조 인덱스(LSI) 및 글로벌 보조 인덱스(GSI)는 동일한 태그로 레이블이 자동 지정됩니다. 현재 DynamoDB Streams 사용량에 태그를 지정할 수 없습니다.

태그 지정은 Amazon EC2, Amazon S3, DynamoDB 등의 AWS 서비스에서 지원됩니다. 효율적으로 태그를 지정하면 특정 태그와 연결하여 서비스 전체에 대해 생성된 보고서를 통해 비용을 분석할 수 있습니다.

태그 지정을 시작하려면 다음을 수행합니다.

1. [DynamoDB의 태그 지정 제한 사항](#TaggingRestrictions)를 파악합니다.

1. [DynamoDB에서 리소스 태그 지정](Tagging.Operations.md)를 사용하여 태그를 생성합니다.

1. [DynamoDB 태그를 사용하여 비용 할당 보고서 생성](#CostAllocationReports)를 사용하여 활성 태그당 AWS 비용을 추적합니다.

끝으로, 최적화된 태깅 전략을 따르는 것이 좋습니다. 자세한 내용은 [AWS 태깅 전략](https://d0.awsstatic.com/aws-answers/AWS_Tagging_Strategies.pdf)을 참조하세요.

## DynamoDB의 태그 지정 제한 사항
<a name="TaggingRestrictions"></a>

 각 태그는 사용자가 정의하는 키와 값으로 구성됩니다. 다음과 같은 제한 사항이 있습니다.
+  각 DynamoDB 테이블은 동일한 키에 대해 한 가지 태그만을 사용합니다. 기존 태그(동일한 키)를 추가하는 경우 기존 태그 값이 새 값으로 업데이트됩니다.
+  태그 키와 값은 대소문자를 구분합니다.
+  최대 키 길이는 유니코드 문자 128자입니다.
+ 최대 값 길이는 유니코드 문자 256자입니다.
+  허용되는 문자는 문자, 공백, 숫자, 특수 문자(`+ - = . _ : /`)입니다.
+  리소스당 최대 태그 수는 50개입니다.
+ 테이블의 모든 태그에 지원되는 최대 크기는 10KB입니다.
+ AWS 할당 태그 이름과 값에는 사용자가 할당할 수 없는 `aws:` 접두사가 자동으로 할당됩니다. AWS 할당 태그 이름은 태그 제한인 50개 또는 최대 크기 제한인 10KB에 포함되지 않습니다. 비용 할당 보고서에는 사용자가 지정한 태그 이름인 `user:` 접두사가 포함됩니다.
+  태그를 소급해서 적용할 수 없습니다.

# DynamoDB에서 리소스 태그 지정
<a name="Tagging.Operations"></a>

Amazon DynamoDB 콘솔 또는 AWS Command Line Interface(AWS CLI)를 사용하여 태그를 추가, 나열, 편집 또는 삭제할 수 있습니다. 이러한 사용자 정의 태그를 활성화하면 AWS 결제 및 비용 관리 콘솔에 표시되어 비용 할당을 추적할 수 있습니다. 자세한 내용은 [DynamoDB 태그를 사용하여 비용 할당 보고서 생성](Tagging.md#CostAllocationReports) 섹션을 참조하세요.

 일괄 편집을 위해 AWS Management Console에서 Tag Editor를 사용할 수 있습니다. 자세한 내용은 [Tag Editor 작업](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/tag-editor.html)을 참조하세요.

 대신 DynamoDB API를 사용하려면 [Amazon DynamoDB API 참조](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/)의 다음 작업을 참조하세요.
+ [TagResource](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_TagResource.html)
+ [UntagResource](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UntagResource.html)
+ [ListTagsOfResource](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListTagsOfResource.html)

**Topics**
+ [태그별로 필터링할 사용 권한 설정](#Tagging.Operations.permissions)
+ [신규 또는 기존 테이블에 태그 추가(AWS Management Console)](#Tagging.Operations.using-console)
+ [신규 또는 기존 테이블에 태그 추가(AWS CLI)](#Tagging.Operations.using-cli)

## 태그별로 필터링할 사용 권한 설정
<a name="Tagging.Operations.permissions"></a>

태그를 사용하여 DynamoDB 콘솔에서 테이블 목록을 필터링하려면 사용자의 정책에 다음 작업에 대한 액세스 권한이 포함되어 있는지 확인합니다.
+ `tag:GetTagKeys`
+ `tag:GetTagValues`

아래 단계에 따라 사용자에게 새 IAM 정책을 연결하여 이러한 작업에 액세스할 수 있습니다.

1. 관리자로 [IAM 콘솔](https://console.aws.amazon.com/iam/)로 이동합니다.

1. 왼쪽 탐색 창에서 “정책”을 선택합니다.

1. “정책 생성”을 선택합니다.

1. 다음 정책을 JSON 편집기에 붙여넣습니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "tag:GetTagKeys",
                   "tag:GetTagValues"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. 마법사를 완료하고 정책에 이름을 할당합니다(예: `TagKeysAndValuesReadAccess`).

1. 왼쪽 탐색 메뉴에서 “사용자”를 선택합니다.

1. 목록에서 DynamoDB 콘솔에 액세스하는 데 일반적으로 사용하는 사용자를 선택합니다.

1. “Add permissions(권한 추가)”를 선택합니다.

1. “Attach existing policies directly(기존 정책 직접 연결)”를 선택합니다.

1. 목록에서 이전에 생성한 정책을 선택합니다.

1. 마법사를 완료합니다.

## 신규 또는 기존 테이블에 태그 추가(AWS Management Console)
<a name="Tagging.Operations.using-console"></a>

DynamoDB 콘솔을 사용하여 생성한 신규 테이블에 태그를 추가하거나 기존 테이블에 태그를 추가, 편집 또는 삭제할 수 있습니다.

**생성 시 리소스에 태그를 지정하려면(콘솔)**

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)에서 DynamoDB 콘솔을 엽니다.

1. 탐색 창에서 **테이블**을 선택한 다음 **테이블 생성**을 선택합니다.

1. **Create DynamoDB table(DynamoDB 테이블 만들기)** 페이지에서 이름과 기본 키를 입력합니다. **태그(Tags)** 섹션에서 **새 태그 추가(Add new tag)**를 선택하고 사용하려는 태그를 입력합니다.

   태그 구조에 대한 자세한 내용은 [DynamoDB의 태그 지정 제한 사항](Tagging.md#TaggingRestrictions) 섹션을 참조하세요.

   테이블 생성에 대한 자세한 내용은 [DynamoDB 테이블에 대한 기본 작업](WorkingWithTables.Basics.md) 단원을 참조하세요.

**기존 리소스에 태그를 지정하려면(콘솔)**

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

1. 탐색 창에서 **테이블**을 선택합니다.

1. 목록에서 테이블을 선택한 다음 **추가 설정(Additional settings)** 탭을 선택합니다. 페이지 하단의 **태그(Tags)** 섹션에서 태그를 추가, 편집 또는 삭제할 수 있습니다.

## 신규 또는 기존 테이블에 태그 추가(AWS CLI)
<a name="Tagging.Operations.using-cli"></a>

다음 예제에서는 AWS CLI를 사용하여 테이블 및 인덱스 생성 시 태그를 지정하고 기존 리소스에 태그를 지정하는 방법을 보여줍니다.

**생성 시 리소스에 태그를 지정하려면(AWS CLI)**
+ 다음 예제에서는 새 `Movies` 테이블을 생성하고 값이 `Owner`인 `blueTeam` 태그를 추가합니다.

  ```
  aws dynamodb create-table \
      --table-name Movies \
      --attribute-definitions AttributeName=Title,AttributeType=S \
      --key-schema AttributeName=Title,KeyType=HASH \
      --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 \
      --tags Key=Owner,Value=blueTeam
  ```

**기존 리소스에 태그를 지정하려면(AWS CLI)**
+ 다음 예제에서는 `Owner` 테이블에 대해 값이 `blueTeam`인 `Movies` 태그를 추가합니다.

  ```
  aws dynamodb tag-resource \
      --resource-arn arn:aws:dynamodb:us-east-1:123456789012:table/Movies \
      --tags Key=Owner,Value=blueTeam
  ```

**테이블에 대한 태그를 모두 나열하려면(AWS CLI)**
+ 다음 예제는 `Movies` 테이블과 연결된 모든 태그를 나열합니다.

  ```
  aws dynamodb list-tags-of-resource \
      --resource-arn arn:aws:dynamodb:us-east-1:123456789012:table/Movies
  ```

## DynamoDB 태그를 사용하여 비용 할당 보고서 생성
<a name="CostAllocationReports"></a>

AWS에서는 태그를 사용하여 비용 할당 보고서에서 리소스 비용을 구성합니다. AWS에서는 두 가지 비용 할당 태그 유형을 제공합니다.
+ AWS 생성 태그 AWS는 사용자를 위해 태그를 정의, 생성 및 적용합니다.
+ 사용자 정의 태그로, 사용자가 태그를 정의, 생성 또는 적용합니다.

두 유형의 태그 모두 개별적으로 활성화해야만 Cost Explorer나 비용 할당 보고서에 표시됩니다.

 AWS 생성 태그 활성화 방법 

1.  AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/billing/home\$1/](https://console.aws.amazon.com/billing/home#/.)에서 Billing and Cost Management 콘솔을 엽니다.

1.  탐색 창에서 **비용 할당 태그**를 선택합니다.

1.  **AWS 생성 비용 할당 태그**에서 **활성화**를 선택합니다.

 사용자 정의 태그 활성화 방법 

1.  AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/billing/home\$1/](https://console.aws.amazon.com/billing/home#/.)에서 Billing and Cost Management 콘솔을 엽니다.

1.  탐색 창에서 **비용 할당 태그**를 선택합니다.

1.  **사용자 정의 비용 할당 태그**에서 **활성화**를 선택합니다.

 태그를 생성하여 활성화한 후 AWS에서는 사용 내역 및 비용별로 집계한 태그를 사용하여 비용 할당 보고서를 만듭니다. 비용 할당 보고서에는 각 결제 기간의 모든 AWS 비용이 포함되어 있습니다. 보고서에 태그가 지정된 리소스와 태그가 지정되지 않은 리소스가 모두 포함되어 있어 리소스에 대한 요금을 알아보기 쉽게 정리할 수 있습니다.

**참고**  
 현재 DynamoDB에서 이전한 모든 데이터에 대해 비용 할당 보고서의 태그로 구분되지는 않습니다.

 자세한 내용은 [비용 할당 태그 사용](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)을 참조하세요.