

# Amazon CloudWatch로 DynamoDB에서 지표 모니터링
<a name="Monitoring-metrics-with-Amazon-CloudWatch"></a>

DynamoDB의 원시 데이터를 수집하여 읽기 가능하며 실시간에 가까운 지표로 처리하는 CloudWatch를 통해 DynamoDB를 모니터링할 수 있습니다. 이러한 통계는 일정 기간 동안 유지되므로 기록 정보를 보고 웹 애플리케이션이나 서비스가 어떻게 실행되고 있는지 전체적으로 더 잘 파악할 수 있습니다. 기본적으로 DynamoDB 지표 데이터는 CloudWatch에 자동으로 전송됩니다. 자세한 내용은 [Amazon CloudWatch 사용 설명서](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html)의 [Amazon CloudWatch란 무엇인가요?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#metrics-retention) 및 *지표 보존 기간*을 참조하세요.

**Topics**
+ [DynamoDB 지표 사용 방법](#How-do-I-use-DynamoDB-metrics)
+ [CloudWatch 콘솔에서 지표 보기](#Viewing-metrics-in-CloudWatch-console)
+ [AWS CLI에서 지표 보기](#Viewing-metrics-in-the-cli)
+ [DynamoDB 지표 및 차원](metrics-dimensions.md)
+ [DynamoDB에 CloudWatch 경보 생성](Monitoring-metrics-creating-cloudwatch-alarms.md)

## DynamoDB 지표 사용 방법
<a name="How-do-I-use-DynamoDB-metrics"></a>

DynamoDB에서 보고하는 지표는 다양한 방법으로 분석이 기능한 정보를 제공합니다. 다음 목록은 몇 가지 일반적인 지표 사용 사례를 보여 줍니다. 모든 사용 사례를 망라한 것은 아니지만 시작하는 데 참고가 될 것입니다.


**DynamoDB 지표 사용 방법**  

|  사용 방법  |  관련 지표  | 
| --- | --- | 
| 내 테이블의 TTL 삭제 속도를 모니터링하려면 어떻게 해야 하나요? | 지정한 시간 동안 `TimeToLiveDeletedItemCount`를 모니터링하여 테이블에 대한 TTL 삭제 속도를 추적할 수 있습니다. `TimeToLiveDeletedItemCount` 지표를 사용하는 서버리스 애플리케이션의 예를 보려면 [Automatically archive items to S3 using DynamoDB time to live (TTL) with AWS Lambda and Amazon Data Firehose](https://aws.amazon.com/blogs/database/automatically-archive-items-to-s3-using-dynamodb-time-to-live-with-aws-lambda-and-amazon-kinesis-firehose/)를 참조하세요. | 
| 프로비저닝된 처리량이 얼마나 사용되고 있는지 어떻게 알 수 있나요? | 일정 시간 `ConsumedReadCapacityUnits` 또는 `ConsumedWriteCapacityUnits`를 모니터링하여 할당된 처리량이 얼마나 사용되는지 추적할 수 있습니다. | 
| 테이블의 프로비저닝된 처리량 할당량을 초과하는 요청을 어떻게 확인할 수 있나요? | `ThrottledRequests`요청에 포함된 이벤트가 프로비저닝된 처리량 할당량을 초과하면 가 1씩 증분됩니다. 그런 다음 요청의 병목 현상 원인이 되는 이벤트는 `ThrottledRequests`를 테이블과 테이블 인덱스의 `ReadThrottleEvents` 및 `WriteThrottleEvents` 지표와 비교해보면 알 수 있습니다. | 
| 시스템 오류가 발생했는지 어떻게 확인할 수 있나요? | `SystemErrors`를 모니터링하여 HTTP 500(서버 오류) 코드가 발생한 요청이 있는지 확인할 수 있습니다. 일반적으로 이 지표는 0이어야 합니다. 그렇지 않다면 조사가 필요합니다. | 
| 테이블 작업의 지연 시간 값을 모니터링하려면 어떻게 해야 하나요? | 백분위수 지표(p50)를 통해 평균 지연 시간 및 중앙값 지연 시간을 추적하여 `SuccessfulRequestLatency`를 모니터링할 수 있습니다. 가끔 지연 시간이 급증하는 것은 걱정할 필요가 없습니다. 그러나 평균 지연 시간 또한 p50(중앙값)이 높으면 해결해야 할 근본적인 문제가 있을 수 있습니다. 자세한 정보는 [Amazon DynamoDB의 지연 시간 문제 해결](TroubleshootingLatency.md)을 참조하세요. | 

## CloudWatch 콘솔에서 지표 보기
<a name="Viewing-metrics-in-CloudWatch-console"></a>

지표는 먼저 서비스 네임스페이스별로 그룹화된 다음, 각 네임스페이스 내에서 다양한 차원 조합별로 그룹화됩니다.

**CloudWatch 콘솔에서 지표 보기**

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

1. 탐색 창에서 **지표, 모든 지표**를 선택합니다.

1. **DynamoDB** 네임스페이스를 선택합니다. **사용량(Usage)** 네임스페이스를 선택하여 DynamoDB 사용량 지표를 확인할 수도 있습니다. 사용량 지표에 대한 자세한 내용은 [AWS 사용량 지표](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Service-Quota-Integration.html)를 참조하세요.

1. **찾아보기** 탭에 네임스페이스의 모든 지표가 표시됩니다.

1. (선택 사항) 이 지표 그래프를 CloudWatch 대시보드에 추가하려면 **작업, 대시보드에 추가**를 선택합니다.

## AWS CLI에서 지표 보기
<a name="Viewing-metrics-in-the-cli"></a>

AWS CLI를 사용하여 지표 정보를 얻으려면 CloudWatch 명령 `list-metrics`를 사용합니다. 다음 예에서는 `AWS/DynamoDB` 네임스페이스의 모든 지표를 나열합니다.

```
1.                 aws cloudwatch list-metrics --namespace "AWS/DynamoDB"
```

지표 통계를 얻으려면 명령을 사용합니다`get-metric-statistics` 다음 명령은 5분 단위로 특정 24시간 동안의 `ProductCatalog` 테이블에 대한 `ConsumedReadCapacityUnits` 통계를 가져옵니다.

```
aws cloudwatch get-metric-statistics —namespace AWS/DynamoDB \
     —metric-name ConsumedReadCapacityUnits \
     —start-time 2023-11-01T00:00:00Z \
     —end-time 2023-11-02T00:00:00Z \
     —period 360 \
     —statistics Average \
     —dimensions Name=TableName,Value=ProductCatalog
```

샘플 출력은 다음과 같이 나타납니다.

```
{
    "Datapoints": [
        {
            "Timestamp": "2023-11-01T 09:18:00+00:00", 
            "Average": 20, 
            "Unit": "Count"
        }, 
        {
            "Timestamp": "2023-11-01T 04:36:00+00:00", 
            "Average": 22.5, 
            "Unit": "Count"
        }, 
        {
            "Timestamp": "2023-11-01T 15:12:00+00:00", 
            "Average": 20, 
            "Unit": "Count"
        }, ...
        {
            "Timestamp": "2023-11-01T 17:30:00+00:00", 
            "Average": 25, 
            "Unit": "Count"
        }
    ], 
    "Label": " ConsumedReadCapacityUnits "
}
```