DynamoDB에 대한 CloudWatch Contributor Insights: 작동 방식
Amazon DynamoDB는 테이블 또는 글로벌 보조 인덱스에서 가장 많이 액세스되고 제한된 항목에 대한 정보를 제공하기 위해 CloudWatch Contributor Insights와 통합됩니다. DynamoDB는 CloudWatch Contributor Insights 규칙, 보고서 및 보고서 데이터 그래프를 통해 정보를 제공합니다.
DynamoDB용 CloudWatch Contributor Insights는 DynamoDB 테이블에 성능 영향을 주지 않도록 설계되었습니다.
CloudWatch Contributor Insights에 대한 자세한 내용은 Amazon CloudWatch 사용 설명서의 Contributor Insights를 사용하여 카디널리티가 높은 데이터 분석을 참조하세요.
다음 섹션에서는 DynamoDB에 대한 CloudWatch Contributor Insights의 핵심 개념과 동작에 대해 설명합니다.
주제
DynamoDB에 대한 CloudWatch Contributor Insight 모드
CloudWatch Contributor Insights for DynamoDB는 다양한 모니터링 요구 사항을 충족하기 위해 두 가지 고유한 모드를 제공합니다.
스로틀된 키 모드
이 모드는 스로틀링이 발생할 때만 이벤트를 처리함으로써 스로틀된 요청에만 집중합니다. 모든 액세스 패턴을 추적하는 오버헤드 없이 성능 문제에 대한 인사이트를 제공합니다. 이 모드에서 DynamoDB는 다음 항목만 추적합니다.
-
가장 많이 조절된 항목 - 스로틀링 이벤트를 가장 많이 경험한 항목
이 모드는 다음과 같은 경우에 적합합니다.
-
주요 관심사가 스로틀링 문제 식별 및 해결인 경우
-
실시간 스로틀링 감지를 위해 Contributor Insights를 지속적으로 활성화하려는 경우
-
비용 최적화된 방식으로 스로틀링 문제를 모니터링하려는 경우
참고
스로틀된 키 모드는 스로틀링이 발생할 때만 이벤트를 처리하므로 지속적인 모니터링에 비용 효율적입니다. 대상이 명확한 이 접근 방식을 통해 최소한의 비용 영향으로 기능을 영구적으로 활성화한 상태로 유지하면서도 스로틀링 문제가 발생할 때 즉시 가시성을 확보할 수 있습니다.
테이블에 스로틀링이 발생하지 않으면 Contributor Insights 그래프에 데이터가 표시되지 않으며 이는 정상적인 성능을 의미합니다. 스로틀링이 감지되면 생성된 그래프를 통해 성능 문제를 유발하는 특정 액세스 패턴을 식별할 수 있습니다. 이 정보는 균일하지 않은 액세스 패턴을 해결하기 위한 전략 수립에 활용할 수 있습니다.
포괄적인 모니터링 전략을 위해 이러한 스로틀링 인사이트를 다른 CloudWatch 지표와 통합하여 스로틀링 이벤트와 전체 테이블 성능을 연계시킨 통합 대시보드를 생성할 수 있습니다.
액세스된 키 및 스로틀된 키 모드
이 모드는 액세스된 항목과 스로틀된 항목 모두에 대한 포괄적인 모니터링을 제공합니다. 이 모드에서 DynamoDB는 다음을 추적합니다.
-
가장 많이 액세스한 항목 - 읽기 및 쓰기 용량을 가장 많이 소비하는 항목
-
가장 많이 조절된 항목 - 스로틀링 이벤트를 가장 많이 경험한 항목
이 모드는 테이블의 액세스 패턴에 대한 완전한 가시성이 필요하고 트래픽이 많은 항목과 스로틀링 문제 모두를 이해하고자 할 때 이상적입니다.
모드 간 전환
DynamoDB 콘솔, AWS CLI 또는 API를 사용하여 언제든지 모드를 전환할 수 있습니다. 모드를 전환하면 다음이 적용됩니다.
-
기존 CloudWatch 규칙이 새 모드에 맞게 업데이트됨
-
스로틀된 키 CloudWatch 규칙은 그대로 유지되어 스로틀링 지표에 대한 지속적인 기록 데이터를 다음과 같이 유지함
-
스로틀된 키 모드에서 액세스된 키 및 스로틀된 키 모드로 전환할 경우, 기존에 스로틀된 키 규칙은 보존되고 새로운 접근 키 규칙이 생성됨
-
액세스된 키 및 스로틀된 키 모드에서 스로틀된 키 모드로 전환하면 스로틀 키 규칙만 보존되고 액세스된 키 규칙은 제거됨
-
-
결제는 새 모드의 이벤트 처리를 반영하도록 즉시 조정됨
DynamoDB 규칙에 대한 CloudWatch Contributor Insights
테이블 또는 글로벌 보조 인덱스에서 CloudWatch Contributor Insights for DynamoDB를 활성화하면, DynamoDB는 다음과 같은 규칙을 대신해서 생성합니다.
참고
DynamoDB 테이블에서 Contributor Insights를 활성화해도 Contributor Insights 규칙 제한이 적용됩니다. 자세한 내용은 CloudWatch 서비스 할당량을 참조하세요.
액세스된 키 및 스로틀된 키 모드 규칙
액세스된 키 및 스로틀된 키 모드에서 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]
스로틀된 키 모드 규칙
스로틀된 키 모드에서 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 작업을 사용하는 경우
MaxContributorValue및Maximum만 유용한 통계를 반환합니다. 이 목록에 있는 다른 통계는 의미 있는 값을 반환하지 않습니다. -
DynamoDB에 대한 CloudWatch Contributor Insights에서는 기여자가 25개로 제한됩니다. 25개가 넘는 기여자를 요청하면 오류가 반환됩니다.
DynamoDB 규칙에 대한 CloudWatch Contributor Insights를 사용하여 CloudWatch 경보를 생성할 수 있습니다. 이렇게 하면 항목이 ConsumedThroughputUnits 또는 ThrottleCount에 대한 특정 임계값을 초과하거나 충족하는 경우 알림을 받을 수 있습니다. 자세한 내용은 Contributor Insights 지표 데이터에 대한 경보 설정을 참조하세요.
DynamoDB 그래프에 대한 CloudWatch Contributor Insights 이해
CloudWatch Contributor Insights for DynamoDB는 선택한 모드에 따라 DynamoDB 콘솔과 CloudWatch 콘솔 모두에 서로 다른 유형의 그래프를 표시합니다.
모드별 그래프 가용성
표시되는 그래프는 선택한 Contributor Insights 모드에 따라 달라집니다.
-
액세스된 키 및 스로틀된 키는 가장 많이 액세스된 항목과 가장 많이 조절된 항목 그래프를 모두 표시합니다.
-
스로틀된 키 모드는 가장 많이 조절된 항목 그래프만 표시합니다.
가장 많이 액세스한 항목
이 그래프는 액세스된 키 및 스로틀된 키 모드에서만 사용할 수 있습니다. 이 그래프를 이용하여 테이블 또는 글로벌 보조 인덱스에서 가장 많이 액세스된 아이템을 확인할 수 있습니다. 그래프의 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개의 그래프를 생성하며, 하나는 가장 많이 제한된 파티션 키를 나타내고 다른 하나는 가장 많이 제한된 파티션과 정렬 키 페어를 의미합니다. 파티션 키만 있는 그래프에서 파티션 키 수준에 관한 제한 횟수를 확인할 수 있으며, 파티션과 정렬 키 조합 그래프에서 아이템 수준의 제한 횟수를 확인할 수 있습니다.
참고
스로틀된 키 모드에서는 이 유형의 그래프만 표시됩니다. 이 그래프에 데이터가 없다는 것은 스로틀링이 발생하지 않아 테이블 성능이 양호함을 나타냅니다.
보고서 예
다음 예제에는 파티션 키와 정렬 키를 모두 가진 테이블에 대해 액세스된 키 및 스로틀된 키 모드에서 생성된 보고서가 표시됩니다. 스로틀된 키 모드에서는 이 보고서의 스로틀링 관련 부분만 볼 수 있습니다.
다른 DynamoDB 기능과 상호 작용
다음 섹션에서는 DynamoDB에 대한 CloudWatch Contributor Insights가 어떻게 동작하고 DynamoDB의 다른 여러 기능과 어떻게 상호 작용하는가에 대해 설명합니다. 이러한 동작은 별도로 명시되지 않는 한 두 모드 모두에 적용됩니다.
글로벌 테이블
DynamoDB에 대한 CloudWatch Contributor Insights는 글로벌 테이블 복제본을 별개의 테이블로서 모니터링합니다. 한 AWS 리전의 복제본에 대한 Contributor Insights 그래프는 다른 리전과 동일한 패턴을 표시하지 않을 수 있습니다. 이것은 쓰기 데이터가 전역 테이블에 있는 모든 복제본에 복사되었기 때문입니다. 하지만 각 복제본은 지역 기반 읽기 트래픽만 수행할 수 있습니다.
각 복제본은 독립적으로 서로 다른 Contributor Insights 모드로 구성할 수 있습니다. 예를 들어, 기본 리전에서는 포괄적인 모니터링을 위해 액세스된 키 및 스로틀된 키 모드를 사용하고, 보조 리전에서는 성능 문제에 대한 가시성을 유지하기 위해 스로틀된 키 모드를 사용할 수 있습니다.
DynamoDB Accelerator(DAX)
DynamoDB에 대한 CloudWatch Contributor Insights는 DAX 캐시 응답을 표시하지 않습니다. 테이블 또는 글로벌 보조 인덱스의 액세스에 대한 응답만 표시합니다.
참고
DynamoDB CloudWatch Contributor Insights는 PartiQL 요청을 지원하지 않습니다.
저장 시 암호화
DynamoDB에 대한 CloudWatch Contributor Insights는 DynamoDB에서 암호화가 작동하는 방식에 영향을 미치지 않습니다. CloudWatch에 게시되는 기본 키 데이터는 AWS 소유 키로 암호화됩니다. 그러나 DynamoDB에서는 AWS 관리형 키 및 고객 관리형 키도 지원합니다.
DynamoDB에 대한 CloudWatch Contributor Insights는 자주 액세스하는 항목과 자주 스로틀링되는 항목의 파티션 키와 정렬 키(해당하는 경우)를 표시합니다. CloudWatch Contributor Insights는 암호화된 DynamoDB 테이블에서 작동하지만 테이블의 구성된 암호화와는 별개인 자체 Amazon 소유 암호화 컨텍스트를 사용한다는 점에 유의해야 합니다.
DynamoDB 테이블의 프라이머리 키에 민감한 정보가 포함되어 있고 조직의 보안 정책이 암호화 프로세스를 완전히 제어할 것을 요구하는 경우 CloudWatch Contributor Insights를 활성화하는 것이 적합하지 않을 수 있습니다.
세분화된 액세스 제어
DynamoDB에 대한 CloudWatch Contributor Insights는 세분화된 액세스 제어(FGAC)가 제공되는 테이블에서 다르게 작동하지 않습니다. 다시 말하면 적절한 CloudWatch 권한이 있는 사용자는 CloudWatch Contributor Insights 그래프에서 FGAC로 보호된 기본 키를 볼 수 있습니다.
테이블에 있는 프라이머리 키에 CloudWatch에 발행하고 싶지 않은 FGAC로 보호된 데이터가 있는 경우, 해당 테이블에서 CloudWatch Contributor Insights for DynamoDB를 활성화하지 않아야 합니다.
액세스 제어
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
모드별 결제
두 가지 Contributor Insights 모드는 결제 특성이 서로 다릅니다.
-
액세스된 키 및 스로틀된 키 모드 결제 - 이 모드에서는 데이터 플레인 작업을 통해 쓰거나 읽는 각 항목이 요청 성공 여부나 스로틀 적용 여부와 관계없이 하나의 이벤트로 간주됩니다. 테이블 또는 글로벌 보조 인덱스에 정렬 키가 포함되어 있는 경우, 읽기 또는 쓰기가 수행된 각 항목이 두 개의 이벤트를 나타냅니다. 왜냐하면 DynamoDB가 별도의 시계열에서 최상위 기여자를 식별하기 때문입니다(하나는 파티션 키만을 위한 것이고 다른 하나는 파티션 및 정렬 키 페어를 위한 것).
-
스로틀된 키 모드 결제 - 이 모드에서는 스로틀된 요청만 결제 대상 이벤트를 생성합니다. 이벤트는 요청이
ProvisionedThroughputExceededException,ThrottlingException또는RequestLimitExceeded오류로 이어질 때만 생성됩니다. 테이블이나 글로벌 보조 인덱스에 정렬 키가 포함된 경우, 스로틀된 각 항목은 두 개의 이벤트(파티션 키 추적 및 파티션 + 정렬 키 추적)를 나타냅니다.
결제 예제
예를 들어 애플리케이션에서 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작업은 스로틀된 키 모드에서 이벤트를 생성하지 않습니다. -
공통적인 결제 요소
Query 작업에서는 반환된 항목의 모드나 수에 관계없이 항상 1개의 이벤트가 발생합니다.
다른 DynamoDB 기능과 달리 DynamoDB 결제에 대한 CloudWatch Contributor Insights는 다음에 따라 달라지지 않습니다.
-
용량 모드(프로비저닝 방식 대 온디맨드 방식)
-
읽기 또는 쓰기 요청 수행 여부
-
읽기 또는 쓰기가 수행된 항목의 크기 (KB)