Amazon Web Services 한국 블로그

Amazon CloudWatch Contributor Insights for DynamoDB – 정식 출시 (서울 리전 포함)

Amazon DynamoDB는 매월 몇 건의 요청에서 초당 수백만 건의 요청으로 손쉽게 확장할 수 있는 완전관리형 키-값 데이터베이스 서비스를 고객에게 제공합니다. DynamoDB는 규모에 관계없이 10밀리초 미만의 일정한 응답 시간을 제공하며 세계 최대 규모의 여러 애플리케이션을 지원하고 있습니다.

거의 무제한의 처리량과 스토리지 용량으로 애플리케이션을 구축할 수 있습니다. DynamoDB 글로벌 테이블은 여러 AWS 리전에 걸쳐 데이터를 복제하여 전 세계에 분산된 애플리케이션에 빠른 로컬 데이터 액세스를 제공합니다. 더욱 빠른 액세스 속도와 마이크로초 단위의 지연 시간이 요구되는 사용 사례에서 DynamoDB Accelerator(DAX)는 완전관리형 인메모리 캐시를 제공합니다.

2019년 11월에 Amazon은 Amazon CloudWatch Contributor Insights for Amazon DynamoDB평가판으로 발표했습니다. 그리고 오늘 모든 AWS 리전에서 정식 출시되었음을 발표하게 되어 기쁩니다.

Amazon CloudWatch Contributor Insights for Amazon DynamoDB

2019년 11월에 함께 발표된 Amazon CloudWatch Contributor Insights는 로그 데이터를 분석하고 시계열 시각화 정보를 생성하여 시스템 성능에 가장 많이 영향을 미치는 항목을 한눈에 볼 수 있게 합니다. 이를 위해서는 Contributor Insights 규칙을 사용하여 CloudWatch Logs(AWS 서비스에서 수집되는 로그 포함)와 서비스 또는 온프레미스 서버에서 전송되는 모든 사용자 지정 로그를 평가해야 합니다. 예를 들어 문제가 있는 호스트를 찾거나, 사용량이 가장 많은 네트워크 사용자를 식별하거나, 오류를 가장 많이 일으키는 URL을 찾을 수 있습니다.

DynamoDB를 기반으로 애플리케이션을 구축하는 개발자의 경우 트래픽 추세 및 자주 액세스되는 키와 같은 데이터베이스 액세스 패턴을 파악하면 DynamoDB 비용과 성능을 최적화하는 데 도움이 됩니다. 콘솔에서 클릭 몇 번으로 CloudWatch Contributor Insights for DynamoDB를 사용하여 이 같은 패턴의 시각화 정보를 생성할 수 있습니다. DynamoDB가 필요한 CloudWatch 리소스를 자동으로 생성한 후 그래프의 요약 보기를 제공합니다. 이 요약 보기는 DynamoDB 콘솔에 표시되지만 CloudWatch 콘솔에서 다른 CloudWatch Contributor Insights 규칙, 보고서 및 보고서 데이터의 그래프를 사용하여 개별 규칙 세부 정보를 볼 수도 있습니다.

이러한 그래프를 사용하면 DynamoDB 테이블의 트래픽 추세와 핫 키를 확인할 수 있습니다.

작동 원리

그러면 작동 원리와 개발자에게 어떤 이점이 있는지 살펴보겠습니다. 여기에 DynamoDB의 테이블이 나와 있습니다.

테이블을 하나 선택하면 해당 테이블의 세부 정보를 볼 수 있습니다. [Contributor Insights]라는 새 탭을 클릭합니다.

지금은 CloudWatch Contributor Insights가 [비활성화]되어 있습니다. 상단의 [Contributor Insights] 탭을 선택하여 활성화할 수 있습니다.

[Contributor Insights] 탭에 액세스하면 Contributor Insights의 상태를 확인할 수 있습니다. 활성화 프로세스는 매우 간단합니다. 이 기능에서 제가 개인적으로 가장 마음에 들어하는 부분이기도 하죠. [Contributor Insights 관리]를 클릭하면 팝업 대화 상자가 나타납니다.

[활성화]를 선택하고 [확인]을 클릭하면 대시보드가 나타나고 CloudWatch Contributor Insights for DynamoDB가 테이블에 대한 모든 액세스를 기록합니다.

시간이 조금 지나면 몇 가지 그래프를 통해 테이블 분석 정보를 확인할 수 있습니다.

대시보드의 오른쪽 상단에서 또는 그래프를 직접 클릭하고 끌어 시간 범위를 변경할 수 있습니다.

대시보드에서 제공하는 정보

대시보드에는 애플리케이션 성능 튜닝에 유용한 분석 정보를 제공하는 네 가지 지표가 표시됩니다. DynamoDB는 파티션 키, 그리고 파티션+정렬 키에 대해 서로 다른 별개의 시각화 정보를 생성하므로 테이블에 정렬 키가 없는 경우 4개가 아니라 2개의 그래프만 표시됩니다.

  • 가장 많이 액세스된 항목(파티션 키만) – 테이블 또는 글로벌 보조 인덱스에서 가장 많이 액세스된 항목의 파티션 키를 식별합니다.
  • 가장 많이 액세스된 항목(파티션 키+정렬 키) – 테이블 또는 글로벌 보조 인덱스에서 가장 많이 액세스된 항목의 파티션 키와 정렬 키를 식별합니다.
  • 가장 많이 조절된 항목(파티션 키만) – 테이블 또는 글로벌 보조 인덱스에서 가장 많이 조절된 항목의 파티션 키를 식별합니다.
  • 가장 많이 조절된 항목(파티션 키+정렬 키) – 테이블 또는 글로벌 보조 인덱스에서 가장 많이 조절된 항목의 파티션 키와 정렬 키를 식별합니다.

가장 많이 액세스된 항목

먼저 “가장 많이 액세스된 항목” 지표부터 지표와 그래프의 의미를 알아보겠습니다. 이 지표는 읽기 및 쓰기 트래픽 모두를 기준으로 키가 액세스되는 빈도를 보여 줍니다.

이들 그래프의 특이값은 가장 자주 액세스된 키 또는 가장 핫한 키입니다. 많은 DynamoDB 워크로드에서는 일정 정도 불균형한 트래픽이 발생하기 마련이지만, 이 그래프를 통해 워크로드가 DynamoDB의 키당 한도에 도달하는지 확인할 수 있습니다. 반면 눈에 띄는 특이값 없이 여러 개의 선이 서로 가깝게 모여 있는 경우 지정된 기간 동안 모든 항목에 걸쳐 워크로드가 비교적 균형을 이루고 있는 것입니다. 즉, 워크로드를 균형 있게 잘 설정한 것입니다.

가장 많이 조절된 항목

“가장 많이 조절된 항목”은 가장 많이 조절된 키의 일정 시간 동안의 조절 횟수 그래프를 보여 줍니다. 이 그래프에 데이터가 없는 경우 요청이 하나도 조절되지 않은 것입니다. 연결된 선이 아니라 분리된 점으로 표시될 경우 아주 잠깐 동안 한 항목이 조절된 것입니다.

블로그 게시물 “Choosing the Right DynamoDB Partition Key”에서는 Amazon DynamoDB를 사용하는 스키마를 설계할 때 적절한 파티션 키를 선택하기 위한 고려 사항과 전략이 얼마나 중요한지 설명하고 있습니다. 적절한 파티션 키를 선택하는 것은 DynamoDB를 기반으로 확장성과 안정성이 뛰어난 애플리케이션을 설계 및 구축하는 데 있어 중요한 단계입니다. 또한 DynamoDB 설명서 페이지 “Best Practices for Designing and Using Partition Keys Effectively“도 참조하시기 바랍니다.

CloudWatch 대시보드 통합

이 기능은 간편하게 사용할 수 있도록 CloudWatch와 통합됩니다. 원하는 그래프를 기존 CloudWatch 대시보드에 통합할 수 있습니다. 통합하는 방법을 살펴보겠습니다. DynamoDB 대시보드로 돌아가 [대시보드에 추가]를 클릭합니다.
그러면 CloudWatch 관리 콘솔로 리디렉션되고 추가할 대시보드를 묻는 메시지가 나타납니다.

기존 대시보드 중 하나를 선택하거나 새 대시보드를 생성할 수 있습니다. 예를 들어 저는 이들 지표를 기존 테스트 대시보드에 [test20180321]로 추가했습니다.

이 기능을 활성화하더라도 기존 프로덕션 환경에는 전혀 영향을 미치지 않습니다. 언제든지 이 기능을 활성화하거나 비활성화할 수 있습니다.  이 기능은 현재 모든 AWS 리전에서 정식으로 이용할 수 있습니다.

– Kame;