DAX 클러스터 크기 조정 안내서 - Amazon DynamoDB

DAX 클러스터 크기 조정 안내서

이 안내서는 애플리케이션에 적합한 Amazon DynamoDB Accelerator(DAX) 클러스터 크기 및 노드 유형을 선택하는 방법에 대한 조언을 제공합니다. 이 지침은 애플리케이션의 DAX 트래픽을 추정하고 클러스터 구성을 선택하고 테스트하는 단계를 안내합니다.

기존 DAX 클러스터가 있고 노드의 수와 크기가 적절한지 여부를 평가하려면 DAX 클러스터 크기 조정 단원을 참조하세요.

개요

새 클러스터를 생성하든 기존 클러스터를 유지하든 상관없이 워크로드에 맞게 DAX 클러스터 크기를 조정하는 것이 중요합니다. 시간이 지남에 따라 애플리케이션의 워크로드가 변경되면 주기적으로 조정 결정을 재검토하여 해당 결정이 여전히 적합한지 확인해야 합니다.

이 프로세스는 일반적으로 다음 단계를 따릅니다.

  1. 트래픽 추정. 이 단계에서는 애플리케이션이 DAX에 전송할 트래픽 볼륨, 트래픽의 특성(읽기 및 쓰기 작업) 및 예상 캐시 적중률을 예측합니다.

  2. 로드 테스트. 이 단계에서는 클러스터를 생성하고 이전 단계에서 추정한 트래픽을 반영하여 트래픽을 보냅니다. 적합한 클러스터 구성을 찾을 때까지 이 단계를 반복합니다.

  3. 프로덕션 모니터링. 애플리케이션이 프로덕션 환경에서 DAX를 사용하는 동안 클러스터를 모니터링하여 시간에 따라 워크로드가 변경되어도 여전히 올바르게 크기 조정되는지 지속적으로 확인해야 합니다.

트래픽 추정

일반적인 DAX 워크로드를 특성화하는 다음 세 가지 주요 요소가 있습니다.

캐시 적중률 추정

DAX 클러스터가 이미 있는 경우 ItemCacheHitsItemCacheMisses Amazon CloudWatch 지표를 사용하여 캐시 적중률을 확인할 수 있습니다. 캐시 적중률은 ItemCacheHits/(ItemCacheHits + ItemCacheMisses)와(과) 같습니다. 워크로드에 Query 또는 Scan 작업이 포함되어 있는 경우 QueryCacheHits, QueryCacheMisses, ScanCacheHitsScanCacheMisses 지표도 확인해야 합니다. 캐시 적중률은 애플리케이션마다 다르며 클러스터 유지 시간(TTL) 설정의 영향을 많이 받습니다. DAX를 사용하는 애플리케이션의 일반적인 적중률은 85~95%입니다.

읽기 및 쓰기 용량 단위 추정

애플리케이션의 DynamoDB 테이블이 이미 있는 경우 ConsumedReadCapacityUnitsConsumedWriteCapacityUnits CloudWatch 지표를 확인하세요. Sum 통계를 사용하고 기간(초)으로 나눕니다.

이미 DAX 클러스터가 있는 경우 DynamoDB ConsumedReadCapacityUnits 지표는 캐시 누락만 설명합니다. 따라서 DAX 클러스터에서 처리하는 초당 읽기 용량 단위에 대해 알아보려면 숫자를 캐시 누락률(즉, 1 - 캐시 적중률)로 나눕니다.

DynamoDB 테이블이 없는 경우 읽기 및 쓰기 용량 단위에 대한 설명서를 참조하여 애플리케이션의 추정 요청 비율, 요청당 액세스한 항목 및 항목 크기에 따라 트래픽을 추정합니다.

트래픽을 추정할 때는 클러스터가 트래픽 증가를 위한 충분한 공간을 확보할 수 있도록 향후 증가와 예상된 피크 및 예상치 못한 피크에 대한 계획을 세워야 합니다.

로드 테스트.

트래픽을 추정한 후 다음 단계는 로드에서 클러스터 구성을 테스트하는 것입니다.

  1. 초기 로드 테스트의 경우 가장 저렴한 고정 성능의 메모리 최적화 노드 유형인 dax.r4.large 노드 유형부터 시작하는 것이 좋습니다.

  2. 내결함성 클러스터에는 3개의 가용 영역에 분산된 최소 3개의 노드가 필요합니다. 이 경우 가용 영역을 사용할 수 없게 되면 유효 가용 영역 수가 1/3 가량 감소합니다. 초기 로드 테스트의 경우 3노드 클러스터에서 하나의 가용 영역의 장애를 시뮬레이션하는 2노드 클러스터로 시작하는 것이 좋습니다.

  3. 로드 테스트 기간 동안 테스트 클러스터로 지속적 트래픽(이전 단계에서 추정)을 유도합니다.

  4. 로드 테스트 중에 클러스터의 성능을 모니터링합니다.

이상적으로, 로드 테스트 중에 유도하는 트래픽 프로필은 애플리케이션의 실제 트래픽과 최대한 유사해야 합니다. 여기에는 작업 배포(예: 70% GetItem, 25% Query, 5% PutItem), 각 작업에 대한 요청 비율, 요청당 액세스되는 항목 수 및 항목 크기 배포가 포함됩니다. 애플리케이션의 예상 캐시 적중률과 유사한 캐시 적중률을 달성하려면 테스트 트래픽의 키 분포에 주의해야 합니다.

참고

T2 노드 유형(dax.t2.smalldax.t2.medium)을 로드 테스트할 때 주의하세요. T2 노드 유형은 노드의 CPU 크레딧 밸런스에 따라 시간이 지남에 따라 달라지는 버스트 가능한 CPU 성능을 제공합니다. T2 노드에서 실행 중인 DAX 클러스터가 정상적으로 작동하는 것처럼 보일 수 있지만 노드가 인스턴스의 기준 성능을 초과하면 노드가 누적된 CPU 크레딧 밸런스를 사용하게 됩니다. 크레딧 밸런스가 낮으면 성능이 점차 기준 성과 수준으로 낮아집니다.

로드 테스트 중에 DAX 클러스터를 모니터링하여 로드 테스트에 사용 중인 노드 유형이 적합한 노드 유형인지 확인합니다. 또한 로드 테스트 중에 요청 속도와 캐시 적중률을 모니터링하여 테스트 인프라에서 의도한 트래픽 양을 실제로 유도하는지 확인해야 합니다.

선택한 클러스터 인스턴스 유형의 네트워크 바이트 사용량에 주의를 기울여야 합니다. Amazon EC2 인스턴스의 사용 가능한 기준 대역폭을 초과하면 클러스터가 애플리케이션 워크로드를 감당하지 못할 수 있으므로 규모를 조정해야 합니다.

로드 테스트 결과 선택한 클러스터 구성이 애플리케이션의 워크로드를 유지할 수 없는 것으로 나타나는 경우, 특히 클러스터의 프라이머리 노드에서 CPU 사용률이 높거나 제거율이 높거나 캐시 메모리 사용률이 높은, 더 큰 노드 유형으로 전환해야 합니다. 적중률이 지속적으로 높고 읽기 대 쓰기 트래픽의 비율이 높으면 클러스터에 노드를 추가하는 것을 고려해 볼 수 있습니다. 더 큰 노드 유형을 사용하거나(수직적 조정) 노드를 더 추가하는 경우(수평적 조정)에 대한 추가 지침은 DAX 클러스터 크기 조정 단원을 참조하세요.

클러스터 구성을 변경한 후 로드 테스트를 반복해야 합니다.