

# DynamoDB에 대한 CloudWatch Contributor Insights를 사용해 데이터 액세스 분석
<a name="contributorinsights"></a>

Amazon DynamoDB에 대한 Amazon CloudWatch Contributor Insights는 테이블 또는 인덱스에서 가장 자주 액세스하고 제한된 키를 한눈에 확인할 수 있는 진단 도구입니다. 이 도구는 [CloudWatch Contributor Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights.html)를 사용합니다.

테이블 또는 글로벌 보조 인덱스에서 DynamoDB에 대해 CloudWatch Contributor Insights를 활성화함으로써 이 리소스에서 가장 많이 액세스하고 제한된 항목을 확인할 수 있습니다.

**참고**  
DynamoDB에 대한 Contributor Insights에는 CloudWatch 비용이 부과됩니다. 요금에 대한 자세한 정보는 [Amazon CloudWatch 비용](https://aws.amazon.com/cloudwatch/pricing/)을 참조하세요.

**Topics**
+ [작동 방식](contributorinsights_HowItWorks.md)
+ [시작하기](contributorinsights_tutorial.md)
+ [IAM 사용](Contributor_Insights_IAM.md)

# DynamoDB에 대한 CloudWatch Contributor Insights: 작동 방식
<a name="contributorinsights_HowItWorks"></a>

Amazon DynamoDB는 테이블 또는 글로벌 보조 인덱스에서 가장 많이 액세스되고 제한된 항목에 대한 정보를 제공하기 위해 [CloudWatch Contributor Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights.html)와 통합됩니다. DynamoDB는 CloudWatch Contributor Insights [규칙](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights-RuleSyntax.html), [보고서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights-ViewReports.html) 및 [보고서 데이터 그래프](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights-GraphReportData.html)를 통해 정보를 제공합니다.

DynamoDB용 CloudWatch Contributor Insights는 DynamoDB 테이블에 성능 영향을 주지 않도록 설계되었습니다.

CloudWatch Contributor Insights에 대한 자세한 내용은 *Amazon CloudWatch 사용 설명서*의 [Contributor Insights를 사용하여 카디널리티가 높은 데이터 분석](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights.html)을 참조하세요.

 다음 섹션에서는 DynamoDB에 대한 CloudWatch Contributor Insights의 핵심 개념과 동작에 대해 설명합니다.

**Topics**
+ [DynamoDB에 대한 CloudWatch Contributor Insight 모드](#contributorinsights_HowItWorks.Modes)
+ [DynamoDB 규칙에 대한 CloudWatch Contributor Insights](#contributorinsights_HowItWorks.Rules)
+ [DynamoDB 그래프에 대한 CloudWatch Contributor Insights 이해](#contributorinsights_HowItWorks.Graphs)
+ [다른 DynamoDB 기능과 상호 작용](#contributorinsights_HowItWorks.OtherFeatures)
+ [DynamoDB 결제에 대한 CloudWatch Contributor Insights](#contributorinsights_HowItWorks.Billing)

## DynamoDB에 대한 CloudWatch Contributor Insight 모드
<a name="contributorinsights_HowItWorks.Modes"></a>

CloudWatch Contributor Insights for DynamoDB는 다양한 모니터링 요구 사항을 충족하기 위해 두 가지 고유한 모드를 제공합니다.

### 스로틀된 키 모드
<a name="contributorinsights_HowItWorks.Modes.ThrottledOnly"></a>

이 모드는 스로틀링이 발생할 때만 이벤트를 처리함으로써 스로틀된 요청에만 집중합니다. 모든 액세스 패턴을 추적하는 오버헤드 없이 성능 문제에 대한 인사이트를 제공합니다. 이 모드에서 DynamoDB는 다음 항목만 추적합니다.
+ **가장 많이 조절된 항목** - 스로틀링 이벤트를 가장 많이 경험한 항목

이 모드는 다음과 같은 경우에 적합합니다.
+ 주요 관심사가 스로틀링 문제 식별 및 해결인 경우
+ 실시간 스로틀링 감지를 위해 Contributor Insights를 지속적으로 활성화하려는 경우
+ 비용 최적화된 방식으로 스로틀링 문제를 모니터링하려는 경우

**참고**  
*스로틀된 키 모드*는 스로틀링이 발생할 때만 이벤트를 처리하므로 지속적인 모니터링에 비용 효율적입니다. 대상이 명확한 이 접근 방식을 통해 최소한의 비용 영향으로 기능을 영구적으로 활성화한 상태로 유지하면서도 스로틀링 문제가 발생할 때 즉시 가시성을 확보할 수 있습니다.

테이블에 스로틀링이 발생하지 않으면 Contributor Insights 그래프에 데이터가 표시되지 않으며 이는 정상적인 성능을 의미합니다. 스로틀링이 감지되면 생성된 그래프를 통해 성능 문제를 유발하는 특정 액세스 패턴을 식별할 수 있습니다. 이 정보는 균일하지 않은 액세스 패턴을 해결하기 위한 전략 수립에 활용할 수 있습니다.

포괄적인 모니터링 전략을 위해 이러한 스로틀링 인사이트를 다른 CloudWatch 지표와 통합하여 스로틀링 이벤트와 전체 테이블 성능을 연계시킨 통합 대시보드를 생성할 수 있습니다.

### 액세스된 키 및 스로틀된 키 모드
<a name="contributorinsights_HowItWorks.Modes.AccessedAndThrottled"></a>

이 모드는 액세스된 항목과 스로틀된 항목 모두에 대한 포괄적인 모니터링을 제공합니다. 이 모드에서 DynamoDB는 다음을 추적합니다.
+ **가장 많이 액세스한 항목** - 읽기 및 쓰기 용량을 가장 많이 소비하는 항목
+ **가장 많이 조절된 항목** - 스로틀링 이벤트를 가장 많이 경험한 항목

이 모드는 테이블의 액세스 패턴에 대한 완전한 가시성이 필요하고 트래픽이 많은 항목과 스로틀링 문제 모두를 이해하고자 할 때 이상적입니다.

### 모드 간 전환
<a name="contributorinsights_HowItWorks.Modes.Switching"></a>

DynamoDB 콘솔, AWS CLI 또는 API를 사용하여 언제든지 모드를 전환할 수 있습니다. 모드를 전환하면 다음이 적용됩니다.
+ 기존 CloudWatch 규칙이 새 모드에 맞게 업데이트됨
+ 스로틀된 키 CloudWatch 규칙은 그대로 유지되어 스로틀링 지표에 대한 지속적인 기록 데이터를 다음과 같이 유지합니다.
  + *스로틀된 키* 모드에서 *액세스된 키 및 스로틀된 키* 모드로 전환할 경우, 기존에 스로틀된 키 규칙은 보존되고 새로운 접근 키 규칙이 생성됨
  + *액세스된 키 및 스로틀된 키* 모드에서 *스로틀된 키* 모드로 전환하면 스로틀 키 규칙만 보존되고 액세스된 키 규칙은 제거됨
+ 결제는 새 모드의 이벤트 처리를 반영하도록 즉시 조정됨

## DynamoDB 규칙에 대한 CloudWatch Contributor Insights
<a name="contributorinsights_HowItWorks.Rules"></a>

테이블 또는 글로벌 보조 인덱스에서 CloudWatch Contributor Insights for DynamoDB를 활성화하면, DynamoDB는 다음과 같은 [규칙](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights-RuleSyntax.html)을 대신해서 생성합니다.

**참고**  
DynamoDB 테이블에서 Contributor Insights를 활성화해도 Contributor Insights 규칙 제한이 적용됩니다. 자세한 내용은 [CloudWatch 서비스 할당량](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_limits.html)을 참조하세요.

### 액세스된 키 및 스로틀된 키 모드 규칙
<a name="contributorinsights_HowItWorks.Rules.AccessedAndThrottled"></a>

*액세스된 키 및 스로틀된 키* 모드에서 DynamoDB는 다음 규칙을 생성합니다.
+ **가장 많이 액세스된 항목(파티션 키)** - 테이블 또는 글로벌 보조 인덱스에서 가장 많이 액세스된 항목의 파티션 키를 의미합니다.

  CloudWatch 규칙 이름 형식: `DynamoDBContributorInsights-PKC-[resource_name]-[creationtimestamp]`
+ **가장 많이 제한된 키(파티션 키)** - 테이블 또는 글로벌 보조 인덱스에서 가장 많이 제한된 항목의 파티션 키를 의미합니다.

  CloudWatch 규칙 이름 형식: `DynamoDBContributorInsights-PKT-[resource_name]-[creationtimestamp]`

테이블이나 글로벌 보조 인덱스에 정렬 키가 있는 경우 DynamoDB는 정렬 키에 대한 다음의 상세 규칙을 생성합니다.
+ **가장 많이 액세스된 키(파티션 및 정렬 키)** - 테이블 또는 글로벌 보조 인덱스에서 가장 많이 액세스된 항목의 파티션과 정렬 키를 의미합니다.

  CloudWatch 규칙 이름 형식: `DynamoDBContributorInsights-SKC-[resource_name]-[creationtimestamp]`
+ **가장 많이 제한된 키(파티션 및 정렬 키)** - 테이블 또는 글로벌 보조 인덱스에서 가장 많이 제한된 항목의 파티션 및 정렬 키를 의미합니다.

  CloudWatch 규칙 이름 형식: `DynamoDBContributorInsights-SKT-[resource_name]-[creationtimestamp]`

### 스로틀된 키 모드 규칙
<a name="contributorinsights_HowItWorks.Rules.ThrottledOnly"></a>

*스로틀된 키* 모드에서 DynamoDB는 스로틀링 관련 규칙만 생성합니다.
+ **가장 많이 제한된 키(파티션 키)** - 테이블 또는 글로벌 보조 인덱스에서 가장 많이 제한된 항목의 파티션 키를 의미합니다.

  CloudWatch 규칙 이름 형식: `DynamoDBContributorInsights-PKT-[resource_name]-[creationtimestamp]`

테이블 또는 글로벌 보조 인덱스에 정렬 키가 있는 경우 DynamoDB는 다음도 생성합니다.
+ **가장 많이 제한된 키(파티션 및 정렬 키)** - 테이블 또는 글로벌 보조 인덱스에서 가장 많이 제한된 항목의 파티션 및 정렬 키를 의미합니다.

  CloudWatch 규칙 이름 형식: `DynamoDBContributorInsights-SKT-[resource_name]-[creationtimestamp]`

이 집중된 접근 방식은 활성 규칙의 수를 줄이고 처리되는 이벤트의 양을 감소시켜 스로틀링 이벤트를 더 효과적으로 진단할 수 있도록 합니다.

**참고**  
CloudWatch 콘솔이나 API를 사용하여 CloudWatch Contributor Insights for DynamoDB를 확인할 때, 선택한 모드에 해당하는 규칙만 표시됩니다.
DynamoDB에 대한 CloudWatch Contributor Insights에 의해 생성된 규칙을 직접 수정하거나 삭제하기 위해 CloudWatch 콘솔 또는 API를 시용할 수 없습니다. 테이블 또는 글로벌 보조 인덱스에 있는 DynamoDB에 대한 CloudWatch Contributor Insights를 비활성화하는 것은 테이블 또는 글로벌 보조 인덱스에 생성된 규칙을 자동적으로 삭제합니다.
DynamoDB에서 생성한 CloudWatch Contributor Insights 규칙과 함께 [GetInsightRuleReport](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetInsightRuleReport.html) 작업을 사용하는 경우 `MaxContributorValue` 및 `Maximum`만 유용한 통계를 반환합니다. 이 목록에 있는 다른 통계는 의미 있는 값을 반환하지 않습니다.
DynamoDB에 대한 CloudWatch Contributor Insights에서는 기여자가 25개로 제한됩니다. 25개가 넘는 기여자를 요청하면 오류가 반환됩니다.

DynamoDB [규칙](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights-RuleSyntax.html)에 대한 CloudWatch Contributor Insights를 사용하여 CloudWatch 경보를 생성할 수 있습니다. 이렇게 하면 항목이 `ConsumedThroughputUnits` 또는 `ThrottleCount`에 대한 특정 임계값을 초과하거나 충족하는 경우 알림을 받을 수 있습니다. 자세한 내용은 [Contributor Insights 지표 데이터에 대한 경보 설정](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights-GraphReportData.html#ContributorInsights-GraphReportData-Alarm)을 참조하세요.

## DynamoDB 그래프에 대한 CloudWatch Contributor Insights 이해
<a name="contributorinsights_HowItWorks.Graphs"></a>

CloudWatch Contributor Insights for DynamoDB는 선택한 모드에 따라 DynamoDB 콘솔과 CloudWatch 콘솔 모두에 서로 다른 유형의 그래프를 표시합니다.

### 모드별 그래프 가용성
<a name="contributorinsights_HowItWorks.Graphs.ModeComparison"></a>

표시되는 그래프는 선택한 Contributor Insights 모드에 따라 달라집니다.
+ **액세스된 키 및 스로틀된 키**는 *가장 많이 액세스된 항목*과 *가장 많이 조절된 항목* 그래프를 모두 표시합니다.
+ **스로틀된 키 모드**는 *가장 많이 조절된 항목* 그래프만 표시합니다.

### 가장 많이 액세스한 항목
<a name="contributorinsights_HowItWorks.Graphs.most-accessed"></a>

이 그래프는 액세스된 키 및 스로틀된 키 모드에서만 사용할 수 있습니다. 이 그래프를 이용하여 테이블 또는 글로벌 보조 인덱스에서 가장 많이 액세스된 아이템을 확인할 수 있습니다. 그래프의 Y축은 `ConsumedThroughputUnits`를 나타내고 X축은 시간을 나타냅니다. 각 상위 N 키는 X축 아래에 있는 legend와 함께 특정 색상으로 표시됩니다.

DynamoDB는 결합된 읽기 및 쓰기 트래픽을 측정하는 `ConsumedThroughputUnits`를 사용하여 키 액세스 빈도를 측정합니다. `ConsumedThroughputUnits`는 다음과 같이 정의됩니다.
+ 프로비저닝 방식 - *(3 x 사용된 쓰기 용량 단위) \$1 사용된 읽기 용량 단위*
+ 온디맨드 방식 - *(3 x 쓰기 요청 단위) \$1 읽기 요청 단위*

DynamoDB 콘솔에서 그래프의 각 데이터 요소는 1분 주기 동안 최대 `ConsumedThroughputUnits`를 나타냅니다. 예를 들어 그래프 값이 180,000 `ConsumedThroughputUnits`이면 1분 주기(3,000 x 60초) 내에 60초의 시간 범위 동안 항목별 최대 처리량(1,000개의 쓰기 요청 유닛 또는 3,000개의 읽기 요청 유닛)으로 항목이 지속적으로 액세스되었음을 나타냅니다. 다시 말해 그래프 값은 각 1분 주기에서 가장 높은 트래픽을 보인 시간을 나타냅니다. CloudWatch 콘솔에서 `ConsumedThroughputUnits` 지표의 시간 세분성을 변경할 수 있습니다(예: 1분 대신 5분 지표를 보기 위해).

특이 사항이 없는데 여러 개의 군집 그래프 선이 보일 경우, 이는 해당 기간의 아이템에 대해 워크로드가 상대적으로 균형 잡혀 있음을 의미합니다. 그래프에서 연결된 선 외에 따로 떨어진 점이 있는 경우, 이는 짧은 기간 동안 자주 액세스된 아이템을 의미합니다.

테이블 또는 글로벌 보조 인덱스에 정렬 키가 있는 경우 DynamoDB는 2개의 그래프를 생성합니다. 한 그래프는 가장 많이 액세스된 파티션 키를 나타내고 다른 그래프는 가장 많이 액세스된 파티션과 정렬 키 페어를 의미합니다. 파티션 키 전용 그래프에서 파티션 키 수준의 트래픽을 확인할 수 있습니다. 파티션 및 정렬 키 그래프에서 항목 수준의 트래픽을 확인할 수 있습니다.

### 가장 제한된 항목
<a name="contributorinsights_HowItWorks.Graphs.most-throttled"></a>

이 그래프는 두 모드 모두에서 사용할 수 있습니다. 이 그래프를 이용하여 테이블 또는 글로벌 보조 인덱스에서 가장 많이 제한된 아이템을 확인할 수 있습니다. 그래프의 Y축은 `ThrottleCount`를 나타내고 X축은 시간을 나타냅니다. 각 상위 *N* 키는 X축 아래에 있는 legend와 함께 특정 색상으로 표시됩니다.

DynamoDB는 `ThrottleCount`를 이용하여 제한 빈도를 측정하며, 이는 `ProvisionedThroughputExceededException`, `ThrottlingException`, `RequestLimitExceeded` 에러를 계산한 것입니다.

글로벌 보조 인덱스의 쓰기 용량이 부족하여 발생하는 쓰기 제한은 측정되지 않습니다. 글로벌 보조 인덱스의 *가장 많이 액세스된 항목* 그래프를 사용하여 쓰기 제한을 일으킬 수 있는 불균형한 액세스 패턴을 식별할 수 있습니다. 자세한 내용은 [글로벌 보조 인덱스에서 프로비저닝된 처리량 고려 사항](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.html#GSI.ThroughputConsiderations)을 참조하세요.

DynamoDB 콘솔에서 그래프의 각 데이터 요소는 1분 주기 동안의 스로틀 이벤트 수를 나타냅니다.

이 그래프에서 데이터가 나타나지 않는다면 요청이 제한되지 않고 있음을 의미합니다. 그래프에서 연결된 선 외에 따로 떨어진 점이 있는 경우, 이는 짧은 기간 동안 자주 스로틀된 항목을 의미합니다.

테이블 또는 글로벌 보조 인덱스에 정렬 키가 있는 경우 DynamoDB는 2개의 그래프를 생성합니다. 한 그래프는 가장 많이 제한된 파티션 키를 나타내고 다른 그래프는 가장 많이 제한된 파티션과 정렬 키 페어를 의미합니다. 파티션 키만 있는 그래프에서 파티션 키 수준에 관한 제한 횟수를 확인할 수 있으며, 파티션과 정렬 키 조합 그래프에서 아이템 수준의 제한 횟수를 확인할 수 있습니다.

**참고**  
*스로틀된 키* 모드에서는 이 유형의 그래프만 표시됩니다. 이 그래프에 데이터가 없다는 것은 스로틀링이 발생하지 않아 테이블 성능이 양호함을 나타냅니다.

### 보고서 예
<a name="contributorinsights_HowItWorks.Graphs.examples"></a>

다음 예제에는 파티션 키와 정렬 키를 모두 가진 테이블에 대해 *액세스된 키 및 스로틀된 키* 모드에서 생성된 보고서가 표시됩니다. *스로틀된 키* 모드에서는 이 보고서의 스로틀링 관련 부분만 볼 수 있습니다.

![\[가장 많이 액세스한 항목과 가장 많이 스로틀된 항목을 보여주는 4가지 Contributor Insights 보고서입니다.\]](http://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/images/CI_Graphs_Example.png)


## 다른 DynamoDB 기능과 상호 작용
<a name="contributorinsights_HowItWorks.OtherFeatures"></a>

다음 섹션에서는 DynamoDB에 대한 CloudWatch Contributor Insights가 어떻게 동작하고 DynamoDB의 다른 여러 기능과 어떻게 상호 작용하는가에 대해 설명합니다. 이러한 동작은 별도로 명시되지 않는 한 두 모드 모두에 적용됩니다.

### 전역 테이블
<a name="contributorinsights_HowItWorks.OtherFeatures.GlobalTables"></a>

DynamoDB에 대한 CloudWatch Contributor Insights는 글로벌 테이블 복제본을 별개의 테이블로서 모니터링합니다. 한 AWS 리전의 복제본에 대한 Contributor Insights 그래프는 다른 리전과 동일한 패턴을 표시하지 않을 수 있습니다. 이것은 쓰기 데이터가 전역 테이블에 있는 모든 복제본에 복사되었기 때문입니다. 하지만 각 복제본은 지역 기반 읽기 트래픽만 수행할 수 있습니다.

각 복제본은 독립적으로 서로 다른 Contributor Insights 모드로 구성할 수 있습니다. 예를 들어, 기본 리전에서는 포괄적인 모니터링을 위해 *액세스된 키 및 스로틀된 키* 모드를 사용하고, 보조 리전에서는 성능 문제에 대한 가시성을 유지하기 위해 *스로틀된 키* 모드를 사용할 수 있습니다.

### DynamoDB Accelerator(DAX)
<a name="contributorinsights_HowItWorks.OtherFeatures.DAX"></a>

DynamoDB에 대한 CloudWatch Contributor Insights는 DAX 캐시 응답을 표시하지 않습니다. 테이블 또는 글로벌 보조 인덱스의 액세스에 대한 응답만 표시합니다.

**참고**  
DynamoDB CloudWatch Contributor Insights는 PartiQL 요청을 지원하지 않습니다.

### 저장 시 암호화
<a name="contributorinsights_HowItWorks.OtherFeatures.Encryption"></a>

DynamoDB에 대한 CloudWatch Contributor Insights는 DynamoDB에서 암호화가 작동하는 방식에 영향을 미치지 않습니다. CloudWatch에 게시되는 기본 키 데이터는 AWS 소유 키로 암호화됩니다. 그러나 DynamoDB에서는 AWS 관리형 키 및 고객 관리형 키도 지원합니다.

DynamoDB에 대한 CloudWatch Contributor Insights는 자주 액세스하는 항목과 자주 스로틀링되는 항목의 파티션 키와 정렬 키(해당하는 경우)를 표시합니다. CloudWatch Contributor Insights는 암호화된 DynamoDB 테이블에서 작동하지만 테이블의 구성된 암호화와는 별개인 자체 Amazon 소유 암호화 컨텍스트를 사용한다는 점에 유의해야 합니다.

DynamoDB 테이블의 프라이머리 키에 민감한 정보가 포함되어 있고 조직의 보안 정책이 암호화 프로세스를 완전히 제어할 것을 요구하는 경우 CloudWatch Contributor Insights를 활성화하는 것이 적합하지 않을 수 있습니다.

### 세분화된 액세스 제어
<a name="contributorinsights_HowItWorks.OtherFeatures.FGAC"></a>

DynamoDB에 대한 CloudWatch Contributor Insights는 세분화된 액세스 제어(FGAC)가 제공되는 테이블에서 다르게 작동하지 않습니다. 다시 말하면 적절한 CloudWatch 권한이 있는 사용자는 CloudWatch Contributor Insights 그래프에서 FGAC로 보호된 기본 키를 볼 수 있습니다.

테이블에 있는 프라이머리 키에 CloudWatch에 발행하고 싶지 않은 FGAC로 보호된 데이터가 있는 경우, 해당 테이블에서 CloudWatch Contributor Insights for DynamoDB를 활성화하지 않아야 합니다.

### 액세스 관리
<a name="contributorinsights_HowItWorks.OtherFeatures.AccessControl"></a>

DynamoDB 제어 영역 권한 및 CloudWatch 데이터 영역 권한을 제한해 AWS Identity and Access Management(IAM)를 사용하는 DynamoDB에 대한 CloudWatch Contributor Insights에 대한 액세스를 제어합니다. 자세한 정보는 [DynamoDB에 대한 CloudWatch Contributor Insights와 함께 IAM 사용하기](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Contributor_Insights_IAM.html)를 참조하세요.

## DynamoDB 결제에 대한 CloudWatch Contributor Insights
<a name="contributorinsights_HowItWorks.Billing"></a>

DynamoDB에 대한 CloudWatch Contributor Insights 요금은 월별 청구서의 [CloudWatch](https://aws.amazon.com/cloudwatch/pricing/) 섹션에 표시됩니다. 이 요금은 처리되는 DynamoDB 이벤트 수와 선택한 모드를 기준으로 계산됩니다.

### 모드별 결제
<a name="contributorinsights_HowItWorks.Billing.ModeComparison"></a>

두 가지 Contributor Insights 모드는 결제 특성이 서로 다릅니다.
+ **액세스된 키 및 스로틀된 키 모드 결제** - 이 모드에서는 [데이터 플레인](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.API.html#HowItWorks.API.DataPlane) 작업을 통해 쓰거나 읽는 각 항목이 요청 성공 여부나 스로틀 적용 여부와 관계없이 하나의 이벤트로 간주됩니다. 테이블 또는 글로벌 보조 인덱스에 정렬 키가 포함되어 있는 경우, 읽기 또는 쓰기가 수행된 각 항목이 두 개의 이벤트를 나타냅니다. 이는 DynamoDB가 별도의 시계열에서 최상위 기여자를 식별하기 때문입니다(하나는 파티션 키만을 위한 것이고 다른 하나는 파티션 및 정렬 키 페어를 위한 것).
+ **스로틀된 키 모드 결제** - 이 모드에서는 스로틀된 요청만 결제 대상 이벤트를 생성합니다. 이벤트는 요청이 `ProvisionedThroughputExceededException`, `ThrottlingException` 또는 `RequestLimitExceeded` 오류로 이어질 때만 생성됩니다. 테이블이나 글로벌 보조 인덱스에 정렬 키가 포함된 경우, 스로틀된 각 항목은 두 개의 이벤트(파티션 키 추적 및 파티션 \$1 정렬 키 추적)를 나타냅니다.

### 결제 예제
<a name="contributorinsights_HowItWorks.Billing.Examples"></a>

예를 들어 애플리케이션에서 5개의 항목을 투입하는 `GetItem`, `PutItem` 및 `BatchWriteItem`이라는 DynamoDB 작업을 수행한다고 가정합니다. 또한 `PutItem` 작업이 스로틀되지만 다른 모든 작업은 성공한다고 가정합니다.
+ **액세스된 키 및 스로틀된 키 모드**
  + 테이블 또는 글로벌 보조 인덱스에 파티션 키만 있는 경우, 7개의 이벤트가 발생합니다(`GetItem`에 대해 1개, `PutItem`에 대해 1개, `BatchWriteItem`에 대해 5개).
  + 테이블 또는 글로벌 보조 인덱스에 파티션 키와 정렬 키가 있는 경우에는 14개의 이벤트가 발생합니다(`GetItem`에 대해 2개, `PutItem`에 대해 2개, `BatchWriteItem`에 대해 10개).
+ **스로틀된 키 모드**
  + 테이블 또는 글로벌 보조 인덱스에 파티션 키만 있는 경우, 1개의 이벤트가 발생합니다(스로틀된 `PutItem`에 대해서만 해당).
  + 테이블 또는 글로벌 보조 인덱스에 파티션 키와 정렬 키가 있는 경우, 2개의 이벤트가 발생합니다(스로틀된 `PutItem`에 대해서는 2개).

  성공적인 `GetItem` 및 `BatchWriteItem` 작업은 스로틀된 키 모드에서 이벤트를 생성하지 않습니다.

### 공통적인 결제 요소
<a name="contributorinsights_HowItWorks.Billing.CommonFactors"></a>

`Query` 작업에서는 반환된 항목의 모드나 수에 관계없이 항상 1개의 이벤트가 발생합니다.

다른 DynamoDB 기능과 달리 DynamoDB 결제에 대한 CloudWatch Contributor Insights는 다음에 따라 달라지지 *않습니다.*
+ [용량 모드](capacity-mode.md)(프로비저닝 방식 대 온디맨드 방식)
+ 읽기 또는 쓰기 요청 수행 여부
+ 읽기 또는 쓰기가 수행된 항목의 크기 (KB)

# DynamoDB용 CloudWatch Contributor Insights 사용 시작
<a name="contributorinsights_tutorial"></a>

이 섹션에서는 Amazon DynamoDB 콘솔 또는 AWS Command Line Interface(AWS CLI)를 통해 Amazon CloudWatch Contributor Insights를 다양한 모드로 활성화하고 활용하여 모니터링 요구 사항을 충족하는 방법을 설명합니다.

다음 예에서는 [DynamoDB 시작하기](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStartedDynamoDB.html) 자습서에서 정의한 DynamoDB 테이블을 사용합니다.

**Topics**
+ [Contributor Insights 모드 선택](#contributorinsights_tutorial.modes)
+ [Contributor Insights 사용(콘솔)](#usecontributorinsights_console)
+ [Contributor Insights(AWS CLI) 사용](#usecontributorinsights_cli)

## Contributor Insights 모드 선택
<a name="contributorinsights_tutorial.modes"></a>

Contributor Insights를 활성화하기 전에 사용 가능한 두 가지 모드를 이해해야 합니다. 모드 비교를 검토하여 특정 요구 사항에 가장 부합하는 옵션을 선택하세요.


| 속성 | 액세스된 키 및 스로틀된 키 모드 | 스로틀된 키 모드 | 
| --- | --- | --- | 
| 모니터 | 모든 요청(성공한 요청 및 스로틀된 요청) | 스로틀된 요청만 | 
| 그래프: | 가장 많이 액세스한 항목 및 가장 많이 조절된 항목 | 가장 많이 조절된 항목만 | 
| 최적의 용도 | 대상 분석 및 최적화 | 스로틀링 모니터링 | 
| 사용 상황 | 액세스 패턴에 대한 완전한 가시성이 필요합니다. 단기 분석이나 디버깅을 수행하고 있습니다. | 주요 관심사가 스로틀링 문제를 식별하고 해결하는 것입니다. 실시간 스로틀링 알림을 위해 Contributor Insights를 지속적으로 활성화하려고 합니다. | 

## Contributor Insights 사용(콘솔)
<a name="usecontributorinsights_console"></a>

콘솔은 Contributor Insights를 활성화하고 모니터링 요구 사항에 적합한 모드를 선택할 수 있는 직관적인 방법을 제공합니다.

**콘솔에서 Contributor Insights를 사용하려면**

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

1. 콘솔 왼쪽의 탐색 창에서 **테이블(Tables)**을 선택합니다.

1. `Music` 테이블을 선택합니다.

1. **모니터링** 탭을 선택합니다.

1. **CloudWatch Contributor Insights 켜기**를 선택합니다.  
![\[모니터 탭 및 버튼을 보여주는 콘솔 스크린샷입니다.\]](http://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/images/CI_ChooseAndManageNew.PNG)

1. **CloudWatch Contributor Insights 설정 관리** 대화 상자에서 `Music` 기본 테이블과 `AlbumTitle-index` 글로벌 보조 인덱스 모두에 대해 **켜기**를 전환합니다.

1. **스로틀된 키 전용 모드** 토글을 둘 다 끄기 위치로 전환한 다음 **변경 사항 저장**을 선택합니다.  
![\[Contributor Insights 상태 목록 옵션을 보여 주는 콘솔 스크린샷\]](http://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/images/CI_Enable.png)

   이렇게 하면 테이블과 GSI 모두에 대해 기본 *액세스된 키 및 스로틀된 키* 모드를 활성화하여, 액세스한 항목과 조절된 항목 모두를 모니터링할 수 있습니다. **스로틀된 키 전용 모드** 토글을 켜기 위치로 전환하면 *스로틀된 키* 모드가 활성화됩니다.

   작업이 실패할 경우 *Amazon DynamoDB API 참조*의 [DescribeContributorInsights FailureException](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeContributorInsights.html#DDB-DescribeContributorInsights-response-FailureException)에서 가능한 이유을 확인하세요.

1. 이제 CloudWatch Contributor Insights 그래프가 `Music` 테이블의 **모니터** 탭에 표시됩니다. *액세스된 키 및 스로틀된 키* 모드를 활성화했으므로 액세스한 항목과 조절된 항목 그래프가 모두 표시됩니다.  
![\[음악 테이블에 대한 여러 가지 그래프가 있는 Contributor Insights 탭을 보여 주는 콘솔 스크린샷\]](http://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/images/CI_Graphs.png)

### 모드 간 전환
<a name="usecontributorinsights_console.switching-modes"></a>

Contributor Insights를 비활성화하지 않고 언제든지 모드 간에 전환할 수 있습니다.

**Contributor Insights 모드를 전환하려면**

1. 테이블의 **모니터** 탭에서 **CloudWatch Contributor Insights 관리**를 선택합니다.

1. **Contributor Insights 설정 관리** 대화 상자에서 각 기본 테이블 또는 GSI에 대해 다음과 같이 설정합니다.
   + **스로틀된 키 전용 모드**를 켜기 또는 끄기로 전환하여 *스로틀된 키* 모드를 활성화하거나 기본 모드인 *액세스된 키 및 스로틀된 키*로 돌아갑니다.
   + 테이블 또는 GSI에 대해 CloudWatch Contributor Insight를 비활성화하려면 **켜기**를 끄기로 전환합니다.

1. **변경 사항 저장**을 선택합니다.

   완료되면 그래프에 새 모드가 반영됩니다.

### CloudWatch 경보 생성
<a name="usecontributorinsights_console_alarms"></a>

CloudWatch 경보를 생성하고 파티션 키가 50,000개 이상의 [ConsumedThroughputUnits](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/contributorinsights_HowItWorks.html#contributorinsights_HowItWorks.Graphs.most-accessed)를 소비하거나 스로틀링을 경험하는 경우에 알림을 받으려면 다음 단계를 따르세요.

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

1. 콘솔 왼쪽의 탐색 창에서 **Contributor Insights**를 선택합니다.

1. 다음과 같이 모드와 모니터링하려는 항목에 따라 적절한 규칙을 선택합니다.
   + 액세스한 항목 모니터링(액세스 및 제한된 키 모드만 해당): **DynamoDBContributorInsights-PKC-Music**을 선택합니다.
   + 조절된 항목 모니터링(두 모드 모두): **DynamoDBContributorInsights-PKT-Music**을 선택합니다.

1. **작업** 드롭다운 메뉴를 선택합니다.

1. **지표에서 보기**를 선택합니다.

1. **최대 기고자 값**을 선택합니다.
**참고**  
`Max Contributor Value` 및 `Maximum`만 유용한 통계를 반환합니다. 이 목록에 있는 다른 통계는 의미 있는 값을 반환하지 않습니다.  
![\[Contributor Insights 탭과 버튼을 보여 주는 콘솔 스크린샷\]](http://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/images/CI_AlarmsViewinMetrics.png)

1. **작업** 열에서 **경보 생성**을 선택합니다.  
![\[Contributor Insights 상태 목록 옵션을 보여 주는 콘솔 스크린샷\]](http://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/images/CI_AlarmsSetAlarm.png)

1. 적절한 임계값을 입력하고 **다음**을 선택합니다.
   + 액세스한 항목(PKC 규칙): `ConsumedThroughputUnits`에 50000을 입력합니다.
   + 조절된 항목(PKT 규칙): 스로틀링 발생 시 알림을 받으려면 `ThrottleCount`에 1을 입력합니다.  
![\[Contributor Insights 탭과 버튼을 보여 주는 콘솔 스크린샷\]](http://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/images/CI_AlarmsSetAlarmThreashold.png)

1.  경보에 대한 알림을 구성하는 방법에 대한 자세한 내용은 [Amazon CloudWatch 경보 사용](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)을 참조하세요.

## Contributor Insights(AWS CLI) 사용
<a name="usecontributorinsights_cli"></a>

AWS CLI는 두 모드 모두를 완벽하게 지원하며 Contributor Insights에 대한 프로그래밍 방식 액세스를 제공합니다. Contributor Insights를 활성화할 때 모드를 지정하거나 나중에 모드를 전환할 수 있습니다.

### 기본 모드를 사용한 기본 작업
<a name="usecontributorinsights_cli.basic"></a>

**Contributor Insights를 기본 설정으로 사용하려면**

1. `Music` 기본 테이블에서 CloudWatch Contributor Insights for DynamoDB를 *액세스된 키 및 스로틀된 키* 모드로 활성화합니다. `ACCESSED_AND_THROTTLED_KEYS`가 기본 모드이므로 `--contributor-insights-mode=ACCESSED_AND_THROTTLED_KEYS` 파라미터는 생략할 수 있습니다.

   ```
   aws dynamodb update-contributor-insights \
                       --table-name Music \
                       --contributor-insights-action=ENABLE
   ```

1. `AlbumTitle-index` 글로벌 보조 인덱스에 있는 DynamoDB에 대한 Contributor Insights를 활성화합니다.

   ```
   aws dynamodb update-contributor-insights \
                       --table-name Music \
                       --index-name AlbumTitle-index \
                       --contributor-insights-action=ENABLE
   ```

1. `Music` 테이블과 모든 인덱스에 대한 상태와 규칙을 확인합니다.

   ```
   aws dynamodb describe-contributor-insights 
                       --table-name Music
   ```

   응답에는 `ACCESSED_AND_THROTTLED_KEYS`가 표시된 `ContributorInsightsMode` 필드가 포함됩니다.

1. `Music` 테이블과 모든 인덱스에 대한 상태를 나열합니다.

   ```
   aws dynamodb list-contributor-insights --table-name Music
   ```

### 스로틀된 키 모드 활성화
<a name="usecontributorinsights_cli.throttled-mode"></a>

**스로틀된 키 모드로 Contributor Insights를 활성화하려면**

1. `Music` 기본 테이블에서 CloudWatch Contributor Insights for DynamoDB를 *스로틀된 키* 모드로 활성화합니다.

   ```
   aws dynamodb update-contributor-insights \
       --table-name Music \
       --contributor-insights-action=ENABLE \
       --contributor-insights-mode=THROTTLED_KEYS
   ```

1. `AlbumTitle-index` 글로벌 보조 인덱스에 대해 *스로틀된 키* 모드로 Contributor Insights를 활성화합니다.

   ```
   aws dynamodb update-contributor-insights \
       --table-name Music \
       --index-name AlbumTitle-index \
       --contributor-insights-action=ENABLE \
       --contributor-insights-mode=THROTTLED_KEYS
   ```

1. Contributor Insights 구성을 설명하여 모드를 확인합니다.

   ```
   aws dynamodb describe-contributor-insights --table-name Music
   ```

   응답에는 `ContributorInsightsMode`가 `THROTTLED_KEYS`로 표시되며 기본 모드에 비해 규칙 수가 줄어듭니다.

### 모드 간 전환
<a name="usecontributorinsights_cli.switching-modes"></a>

**Contributor Insights 모드를 전환하려면**

1. *스로틀된 키* 모드에서 *액세스한 키 및 스로틀된 키* 모드로 전환합니다.

   ```
   aws dynamodb update-contributor-insights \
       --table-name Music \
       --contributor-insights-action=ENABLE \
       --contributor-insights-mode=ACCESSED_AND_THROTTLED_KEYS
   ```

1. *액세스한 키 및 스로틀된 키* 모드에서 *스로틀된 키* 모드로 전환합니다.

   ```
   aws dynamodb update-contributor-insights \
       --table-name Music \
       --contributor-insights-action=ENABLE \
       --contributor-insights-mode=THROTTLED_KEYS
   ```

1. 전환 중에 상태를 확인합니다.

   ```
   aws dynamodb describe-contributor-insights --table-name Music
   ```

   모드 전환 중에는 `ContributorInsightsStatus`가 `ENABLING`으로 표시됩니다. 완료되면 새 모드가 `ENABLED`으로 표시됩니다.

### Contributor Insights 관리
<a name="usecontributorinsights_cli.management"></a>

**Contributor Insights 설정을 관리하려면**

1. `AlbumTitle-index` 글로벌 보조 인덱스에 있는 CloudWatch Contributor Insights for DynamoDB를 비활성화합니다.

   ```
   aws dynamodb update-contributor-insights \
                       --table-name Music --index-name AlbumTitle-index \
                       --contributor-insights-action=DISABLE
   ```

1. 계정 내 모든 Contributor Insights 구성을 나열합니다.

   ```
   aws dynamodb list-contributor-insights
   ```

   여기에는 Contributor Insights가 활성화된 모든 테이블과 인덱스가 해당 모드와 함께 표시됩니다.

1. 특정 구성에 대한 자세한 정보를 확인합니다.

   ```
   aws dynamodb describe-contributor-insights \
                       --table-name Music \
                       --index-name AlbumTitle-index
   ```

### 예제 응답
<a name="usecontributorinsights_cli.examples"></a>

다음은 모드 간 차이를 보여주는 예제 응답입니다.

#### 액세스된 키 및 스로틀된 키 모드 응답
<a name="usecontributorinsights_cli.examples.accessed-throttled"></a>

```
{
    "TableName": "Music",
    "ContributorInsightsRuleList": [
        "DynamoDBContributorInsights-PKC-Music-1234567890123",
        "DynamoDBContributorInsights-PKT-Music-1234567890123",
        "DynamoDBContributorInsights-SKC-Music-1234567890123",
        "DynamoDBContributorInsights-SKT-Music-1234567890123"
    ],
    "ContributorInsightsStatus": "ENABLED",
    "ContributorInsightsMode": "ACCESSED_AND_THROTTLED_KEYS",
    "LastUpdateDateTime": "2024-01-15T10:30:00.000Z"
}
```

#### 스로틀된 키 모드 응답
<a name="usecontributorinsights_cli.examples.throttled-only"></a>

```
{
    "TableName": "Music",
    "ContributorInsightsRuleList": [
        "DynamoDBContributorInsights-PKT-Music-1234567890123",
        "DynamoDBContributorInsights-SKT-Music-1234567890123"
    ],
    "ContributorInsightsStatus": "ENABLED",
    "ContributorInsightsMode": "THROTTLED_KEYS",
    "LastUpdateDateTime": "2024-01-15T10:35:00.000Z"
}
```

스로틀된 키 모드에는 규칙이 더 적으며(PKT 및 SKT만 해당), 이는 보다 집중적인 모니터링에 부합합니다.

# DynamoDB용 CloudWatch Contributor Insights와 함께 IAM 사용
<a name="Contributor_Insights_IAM"></a>

Amazon DynamoDB에 대한 Amazon CloudWatch Contributor Insights를 처음 활성화하면, DynamoDB는 자동적으로 고객님을 위한 AWS Identity and Access Management(IAM) 서비스 링크 역할을 생성합니다. 이 역할, `AWSServiceRoleForDynamoDBCloudWatchContributorInsights`는 DynamoDB가 고객님을 대신해 CloudWatch Contributor Insights 규칙을 관리할 수 있도록 합니다. 이 서비스 연결 역할을 삭제하지 마세요. 이를 삭제하면 모든 관리 규칙은 테이블 또는 글로벌 보조 인덱스를 삭제할 때 더 이상 정리되지 않습니다.

서비스 연결 역할에 대한 자세한 내용은 *IAM 사용 설명서*의 [서비스 연결 역할 사용](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)을 참조하세요

다음 권한이 필요합니다.
+ DynamoDB에 대한 CloudWatch Contributor Insights를 활성화하거나 비활성화하려면, 테이블 또는 인덱스에 대한 `dynamodb:UpdateContributorInsights` 권한이 반드시 필요합니다.
+ DynamoDB 그래프에 대한 CloudWatch Contributor Insights를 보려면, `cloudwatch:GetInsightRuleReport` 권한이 반드시 필요합니다.
+ 주어진 DynamoDB 테이블 또는 인덱스에 대한 DynamoDB용 CloudWatch Contributor Insights를 설명하려면 `dynamodb:DescribeContributorInsights` 권한이 있어야 합니다.
+ 각 테이블 및 글로벌 보조 인덱스에 대한 DynamoDB CloudWatch Contributor Insights 상태를 작성하려면, `dynamodb:ListContributorInsights` 권한이 반드시 필요합니다.

## 예: DynamoDB용 CloudWatch Contributor Insights 활성화 또는 비활성화
<a name="access-policy-Contributor_Insights-example1"></a>

다음 IAM 정책은 DynamoDB용 CloudWatch Contributor Insights를 활성화 또는 비활성화할 권한을 부여합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::*:role/aws-service-role/contributorinsights.dynamodb.amazonaws.com/AWSServiceRoleForDynamoDBCloudWatchContributorInsights",
            "Condition": {"StringLike": {"iam:AWSServiceName": "contributorinsights.dynamodb.amazonaws.com"}}
        },
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:UpdateContributorInsights"
            ],
            "Resource": "arn:aws:dynamodb:*:*:table/*"
        }
    ]
}
```

------

 KMS 키로 암호화된 테이블의 경우 사용자에게 Contributor Insights를 업데이트하려면 kms:Decrypt 권한이 있어야 합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::*:role/aws-service-role/contributorinsights.dynamodb.amazonaws.com/AWSServiceRoleForDynamoDBCloudWatchContributorInsights",
            "Condition": {
                "StringLike": {
                    "iam:AWSServiceName": "contributorinsights.dynamodb.amazonaws.com"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:UpdateContributorInsights"
            ],
            "Resource": "arn:aws:dynamodb:*:*:table/*"
        },
        {
            "Effect": "Allow",
            "Resource": "arn:aws:kms:*:*:key/*",
            "Action": [
                "kms:Decrypt"
            ]
        }
    ]
}
```

------

## 예: CloudWatch Contributor Insights 규칙 보고서 검색
<a name="access-policy-Contributor_Insights-example2"></a>

다음 IAM 정책은 CloudWatch Contributor Insights 규칙 보고서를 검색할 수 있는 권한을 부여합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:GetInsightRuleReport"
            ],
            "Resource": "arn:aws:cloudwatch:*:*:insight-rule/DynamoDBContributorInsights*"
        }
    ]
}
```

------

## 예: 리소스를 기반으로 DynamoDB용 CloudWatch Contributor Insights 권한을 선택적으로 적용
<a name="access-policy-Contributor_Insights-example3"></a>

다음 IAM 정책은 특정 글로벌 보조 인덱스에 대해 `ListContributorInsights` 및 `DescribeContributorInsights` 작업에 대한 권한을 부여하고, `UpdateContributorInsights` 작업을 거부합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:ListContributorInsights",
                "dynamodb:DescribeContributorInsights"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "dynamodb:UpdateContributorInsights"
            ],
            "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/Books/index/Author-index"
        }
    ]
}
```

------

## DynamoDB용 CloudWatch Contributor Insights의 서비스 연결 역할 사용
<a name="contributorinsights-service-linked-roles"></a>

DynamoDB용 CloudWatch Contributor Insights는 AWS Identity and Access Management(IAM) [서비스 연결 역할](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)을 사용합니다. 서비스 연결 역할은 DynamoDB용 CloudWatch Contributor Insights에 직접 연결된 고유한 유형의 IAM 역할입니다. 서비스 연결 역할은 DynamoDB용 CloudWatch Contributor Insights에서 사전 정의하며 서비스에서 다른 AWS 서비스를 자동으로 호출하기 위해 필요한 모든 권한을 포함합니다.

필요한 권한을 수동으로 추가할 필요가 없으므로 서비스 연결 역할은 DynamoDB용 CloudWatch Contributor Insights를 더 쉽게 설정할 수 있습니다. DynamoDB용 CloudWatch Contributor Insights는 서비스 연결 역할의 권한을 정의하며, 달리 정의하지 않은 한 DynamoDB용 CloudWatch Contributor Insights만 해당 역할을 가질 수 있습니다. 정의된 권한에는 신뢰 정책과 권한 정책이 포함되며 이 권한 정책은 다른 IAM 엔터티에 연결할 수 없습니다.

서비스 연결 역할을 지원하는 기타 서비스에 대한 자세한 내용은 [IAM으로 작업하는 AWS 서비스](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) 섹션을 참조하고 **서비스 연결 역할** 열에 **예**가 있는 서비스를 찾습니다. 해당 서비스에 대한 서비스 연결 역할 설명서를 보려면 **예(Yes)** 링크를 선택합니다.

### DynamoDB용 CloudWatch Contributor Insights의 서비스 연결 역할 권한
<a name="slr-permissions"></a>

DynamoDB용 CloudWatch Contributor Insights는 **AWSServiceRoleForDynamoDBCloudWatchContributorInsights**라는 서비스 연결 역할을 사용합니다. 서비스 연결 역할의 목적은 Amazon DynamoDB가 사용자 대신 DynamoDB 테이블 및 글로벌 보조 인덱스에 대해 생성된 Amazon CloudWatch Contributor Insights 규칙을 관리할 수 있도록 하는 것입니다.

`AWSServiceRoleForDynamoDBCloudWatchContributorInsights` 서비스 연결 역할은 역할을 수임하기 위해 다음 서비스를 신뢰합니다.
+ `contributorinsights.dynamodb.amazonaws.com `

역할 권한 정책은 DynamoDB용 CloudWatch Contributor Insights가 지정된 리소스에서 다음 작업을 완료하도록 허용합니다.
+ 작업: `DynamoDBContributorInsights`에 대한 `Create and manage Insight Rules`

IAM 엔터티(사용자, 그룹, 역할 등)가 서비스 링크 역할을 생성하고 편집하거나 삭제할 수 있도록 권한을 구성할 수 있습니다. 자세한 내용은 IAM 사용 설명서**의 [서비스 연결 역할 권한](https://docs.aws.amazon.com/IAM/latest/UserGuide/contributorinsights-service-linked-roles.html#service-linked-role-permissions) 섹션을 참조하세요.

### DynamoDB용 CloudWatch Contributor Insights의 서비스 연결 역할 생성
<a name="create-slr"></a>

서비스 연결 역할은 수동으로 생성할 필요가 없습니다. AWS Management Console, AWS CLI 또는AWS API에서 Contributor Insights를 활성화하면 DynamoDB용 CloudWatch Contributor Insights는 서비스 연결 역할을 생성합니다.

이 서비스 연결 역할을 삭제했다가 다시 생성해야 하는 경우 동일한 프로세스를 사용하여 계정에서 역할을 다시 생성할 수 있습니다. Contributor Insights를 활성화하면 DynamoDB용 CloudWatch Contributor Insights는 서비스 연결 역할을 다시 생성합니다.

### DynamoDB용 CloudWatch Contributor Insights의 서비스 연결 역할 편집
<a name="edit-slr"></a>

DynamoDB용 CloudWatch Contributor Insights는 `AWSServiceRoleForDynamoDBCloudWatchContributorInsights` 서비스 연결 역할 편집을 허용하지 않습니다. 서비스 연결 역할을 생성한 후에는 다양한 개체가 역할을 참조할 수 있기 때문에 역할 이름을 변경할 수 없습니다. 하지만 IAM을 사용하여 역할의 설명을 편집할 수 있습니다. 자세한 내용은 *IAM 사용 설명서*의 [서비스 연결 역할 편집](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)을 참조하세요.

### DynamoDB용 CloudWatch Contributor Insights의 서비스 연결 역할 삭제
<a name="delete-slr"></a>

`AWSServiceRoleForDynamoDBCloudWatchContributorInsights` 역할은 수동으로 삭제할 필요가 없습니다. AWS Management Console, AWS CLI 또는 AWS API에서 Contributor Insights를 비활성화하면 DynamoDB용 CloudWatch Contributor Insights는 리소스를 정리합니다.

또한 IAM 콘솔, AWS CLI 또는 AWS API를 사용하여 서비스 연결 역할을 수동으로 삭제할 수 있습니다. 단, 서비스 연결 역할에 대한 리소스를 먼저 정리해야 수동으로 삭제할 수 있습니다.

**참고**  
리소스를 삭제하려 할 때 DynamoDB용 CloudWatch Contributor Insights 서비스가 역할을 사용 중이면 삭제에 실패할 수 있습니다. 이 문제가 발생하면 몇 분 기다렸다가 작업을 다시 시도하세요.

**IAM을 사용하여 수동으로 서비스 연결 역할을 삭제하려면**

IAM 콘솔, AWS CLI 또는 AWS API를 사용하여 `AWSServiceRoleForDynamoDBCloudWatchContributorInsights` 서비스 연결 역할을 삭제합니다. 자세한 내용은 IAM 사용 설명서의 [서비스 연결 역할 삭제](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)**를 참조하십시오.