DynamoDB에 대한 CloudWatch Contributor Insights: 작동 방식 - Amazon DynamoDB

DynamoDB에 대한 CloudWatch Contributor Insights: 작동 방식

Amazon DynamoDB는 테이블 또는 글로벌 보조 인덱스에서 가장 많이 액세스되고 제한된 항목에 대한 정보를 제공하기 위해 CloudWatch Contributor Insights와 통합됩니다. DynamoDB는 CloudWatch Contributor Insights 규칙, 보고서보고서 데이터 그래프를 통해 정보를 제공합니다.

CloudWatch Contributor Insights에 대한 자세한 내용은 Amazon CloudWatch 사용 설명서Contributor Insights를 사용하여 카디널리티가 높은 데이터 분석을 참조하세요.

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

DynamoDB 규칙에 대한 CloudWatch Contributor Insights

테이블 또는 글로벌 보조 인덱스에서 DynamoDB에 대한 CloudWatch Contributor Insights를 활성화하면, DynamoDB는 다음과 같은 규칙을 대신해서 생성합니다.

  • 가장 많이 액세스된 항목(파티션 키) - 테이블 또는 글로벌 보조 인덱스에서 가장 많이 액세스된 항목의 파티션 키를 의미합니다.

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

  • 가장 많이 제한된 키(파티션 키) - 테이블 또는 글로벌 보조 인덱스에서 가장 많이 제한된 항목의 파티션 키를 의미합니다.

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

참고

DynamoDB 테이블에서 Contributor Insights를 활성화해도 Contributor Insights 규칙 제한이 계속 적용됩니다. 자세한 내용은 CloudWatch Logs 서비스 할당량을 참조하세요.

테이블이나 글로벌 보조 인덱스에 정렬 키가 있는 경우 DynamoDB는 정렬 키에 대한 다음의 상세 규칙을 생성합니다.

  • 가장 많이 액세스된 키(파티션 및 정렬 키) - 테이블 또는 글로벌 보조 인덱스에서 가장 많이 액세스된 항목의 파티션과 정렬 키를 의미합니다.

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

  • 가장 많이 제한된 키(파티션 및 정렬 키) - 테이블 또는 글로벌 보조 인덱스에서 가장 많이 제한된 항목의 파티션 및 정렬 키를 의미합니다.

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

참고
  • DynamoDB에 대한 CloudWatch Contributor Insights에 의해 생성된 규칙을 직접 수정하거나 삭제하기 위해 CloudWatch 콘솔 또는 API를 시용할 수 없습니다. 테이블 또는 글로벌 보조 인덱스에 있는 DynamoDB에 대한 CloudWatch Contributor Insights를 비활성화하는 것은 테이블 또는 글로벌 보조 인덱스에 생성된 규칙을 자동적으로 삭제합니다.

  • DynamoDB에서 생성한 CloudWatch Contributor Insights 규칙과 함께 GetInsightRuleReport 작업을 사용하는 경우 MaxContributorValueMaximum만 유용한 통계를 반환합니다. 이 목록에 있는 다른 통계는 의미 있는 값을 반환하지 않습니다.

  • DynamoDB에 대한 CloudWatch Contributor Insights에서는 기여자가 25개로 제한됩니다. 25개가 넘는 기여자를 요청하면 오류가 반환됩니다.

DynamoDB 규칙에 대한 CloudWatch Contributor Insights를 사용하여 CloudWatch 경보를 생성할 수 있습니다. 이렇게 하면 항목이 ConsumedThroughputUnits 또는 ThrottleCount에 대한 특정 임계값을 초과하거나 충족하는 경우 알림을 받을 수 있습니다. 자세한 내용은 Contributor Insights 지표 데이터에 대한 경보 설정을 참조하세요.

DynamoDB 그래프에 대한 CloudWatch Contributor Insights 이해

DynamoDB에 대한 CloudWatch Contributor Insights는 DynamoDB 및 CloudWatch 콘솔 모두에 두 가지 유형의 그래프, 즉 가장 많이 액세스된 항목가장 많이 제한된 항목 그래프를 표시합니다.

가장 많이 액세스한 항목

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

DynamoDB는 결합된 읽기 및 쓰기 트래픽을 측정하는 ConsumedThroughputUnits를 사용하여 키 액세스 빈도를 측정합니다. ConsumedThroughputUnits는 다음과 같이 정의됩니다.

  • 프로비저닝 방식 - (3 x 사용된 쓰기 용량 단위) + 사용된 읽기 용량 단위

  • 온디맨드 방식 - (3 x 쓰기 요청 단위) + 읽기 요청 단위

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

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

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

가장 제한된 항목

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

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

글로벌 보조 인덱스의 쓰기 용량이 부족하여 발생하는 쓰기 제한은 측정되지 않습니다. 글로벌 보조 인덱스의 가장 많이 액세스된 항목 그래프를 사용하여 쓰기 제한을 일으킬 수 있는 불균형한 액세스 패턴을 식별할 수 있습니다. 자세한 내용은 글로벌 보조 인덱스에서 프로비저닝된 처리량 고려 사항을 참조하세요.

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

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

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

보고서 예

다음은 파티션 키와 정렬 키가 있는 테이블에서 생성된 보고서의 예제입니다.

가장 많이 액세스한 항목과 가장 많이 스로틀된 항목을 보여주는 4가지 Contributor Insights 보고서입니다.

다른 DynamoDB 기능과 상호 작용

다음 단원에서는 DynamoDB에 대한 CloudWatch Contributor Insights가 어떻게 동작하고 DynamoDB의 다른 여러 기능과 어떻게 상호 작용하는가에 대해 설명합니다.

전역 테이블

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

DynamoDB Accelerator(DAX)

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

참고

DynamoDB CCI는 PartiQL 요청을 지원하지 않습니다.

저장 중 암호화

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

DynamoDB에 대한 CloudWatch Contributor Insights 그래프는 자주 액세스하는 항목과 자주 조절되는 항목의 파티션 키와 정렬 키(해당하는 경우)를 일반 텍스트로 표시합니다. AWS 키 관리 서비스(KMS)를 사용하여 이 테이블의 파티션 키를 암호화하고 키 데이터를 AWS 관리형 키 또는 고객 관리형 키와 정렬해야 하는 경우 이 테이블에서 DynamoDB에 대한 CloudWatch Contributor Insights를 활성화해서는 안 됩니다.

AWS 관리형 키 또는 고객 관리형 키 형태로 기본 키 데이터를 암호화하고자 하는 경우, 테이블에서 DynamoDB에 대한 CloudWatch Contributor Insights를 활성화하지 않아야 합니다.

세분화된 액세스 제어

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

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

액세스 제어

DynamoDB 제어 영역 권한 및 CloudWatch 데이터 영역 권한을 제한해 AWS Identity and Access Management(IAM)를 사용하는 DynamoDB에 대한 CloudWatch Contributor Insights에 대한 액세스를 제어합니다. 자세한 정보는 DynamoDB에 대한 CloudWatch Contributor Insights와 함께 IAM 사용하기를 참조하세요.

DynamoDB 결제에 대한 CloudWatch Contributor Insights

DynamoDB에 대한 CloudWatch Contributor Insights 요금은 월별 청구서의 CloudWatch 섹션에 표시됩니다. 이러한 요금은 처리되는 DynamoDB 이벤트 수를 기준으로 계산됩니다. 활성화된 DynamoDB에 대한 CloudWatch Contributor Insights가 있는 테이블 및 글로벌 보조 인덱스에서 데이터 영역 작업을 통해 쓰기 및 읽기가 된 각 항목은 하나의 이벤트를 의미합니다.

테이블 또는 글로벌 보조 인덱스에 정렬 키가 포함되어 있는 경우, 읽기 또는 쓰기가 수행된 각 항목이 두 개의 이벤트를 나타냅니다. 왜냐하면 DynamoDB가 별도의 시계열에서 최상위 기여자를 식별하기 때문입니다(하나는 파티션 키만을 위한 것이고 다른 하나는 파티션 및 정렬 키 페어를 위한 것).

예를 들어 애플리케이션에서 5개의 항목을 투입하는 GetItem, PutItemBatchWriteItem이라는 DynamoDB 작업을 수행한다고 가정합니다.

  • 테이블 또는 글로벌 보조 인덱스에 파티션 키만 있는 경우, 7개의 이벤트가 발생합니다(GetItem에 대해 1개, PutItem에 대해 1개, BatchWriteItem에 대해 5개).

  • 테이블 또는 글로벌 보조 인덱스에 파티션 키와 정렬 키가 있는 경우에는 14개의 이벤트가 발생합니다(GetItem에 대해 2개, PutItem에 대해 2개, BatchWriteItem에 대해 10개).

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

다른 DynamoDB 기능과 달리 DynamoDB 결제에 대한 CloudWatch Contributor Insights는 다음에 따라 달라지지 않습니다.

  • 용량 모드(프로비저닝 방식 대 온디맨드 방식)

  • 읽기 또는 쓰기 요청 수행 여부

  • 읽기 또는 쓰기가 수행된 항목의 크기 (KB)