온디맨드 DynamoDB 테이블이 병목 현상이 발생하는 이유는 무엇인가요?

2분 분량
0

온디맨드 Amazon DynamoDB 테이블에 제한 기능이 있습니다.

해결 방법


온디맨드 용량 모드를 사용하는 DynamoDB 테이블은 애플리케이션의 트래픽 볼륨에 맞게 자동으로 조정됩니다. 그러나 온디맨드 모드를 사용하는 테이블에는 여전히 제한이 있을 수 있습니다. 사용 사례 문제를 해결하려면 제한과 관련한 다음 일반적인 원인을 참고하세요.

트래픽이 이전 최대치의 두 배 이상입니다.

30분 이내에 이전 트래픽 최대치의 두 배를 초과하면 제한이 발생할 수 있습니다. 이전 트래픽의 최대치를 초과하기 전에 최소 30분 동안 트래픽 증가를 분산하는 것이 좋습니다. 테이블 트래픽을 모니터링하려면 Amazon CloudWatch에서 ConsumedReadCapacityUnits 지표를 사용하세요. 자세한 내용은 DynamoDB 지표 및 차원을 참고하세요.

새로운 온디맨드 테이블의 경우, 쓰기 요청 최대 4,000개나 읽기 요청 12,000개, 또는 이 둘을 선형으로 조합한 형태를 즉시 사용할 수 있습니다.

기존 테이블에서 온디맨드 용량으로 바꾼 경우, 이전 최대치는 다음 값 중 하나입니다.

  • 테이블에서 이전에 프로비저닝된 처리량의 절반

  • 온디맨드 용량 모드에서 새로 생성된 테이블 설정

자세한 내용은 온디맨드 용량 모드 초기 처리량을 참고하세요.

트래픽이 파티션당 최대치를 초과함

테이블의 각 파티션은 읽기 요청 최대 3,000개, 쓰기 요청 1,000개, 또는 이 두 가지를 선형적으로 조합해 사용할 수 있습니다. 파티션 트래픽이 이 제한을 초과하면 파티션에 제한이 발생할 수 있습니다.

이 문제를 해결하려면 다음 조치를 취하세요.

  1. DynamoDB용 CloudWatch 기여자 인사이트를 사용해 테이블에 가장 자주 접근하면서 제한된 키를 식별합니다.
  2. 테이블 요청을 무작위로 지정해 핫 파티션 키로 가는 요청이 시간이 지남에 따라 분산되도록 합니다. 자세한 내용은 쓰기 샤딩을 사용해 워크로드를 균등하게 분산하는 방법을 참고하세요.

트래픽이 테이블 계정당 할당량을 초과합니다.

온디맨드 테이블의 경우 테이블 수준 읽기 처리량 및 테이블 수준 쓰기 처리량 할당량이 계정 수준에서 적용됩니다. 기본적으로 테이블 처리량은 읽기 요청 최대 40,000개, 쓰기 요청 최대 40,000개입니다. 테이블 트래픽이 테이블 계정별 처리 할당량을 초과하면 테이블에 제한이 발생합니다. 이 문제를 해결하려면 Service Quotas 콘솔을 사용해 계정의 테이블 수준 읽기 처리량 및 쓰기 처리량 할당량을 늘리세요.

테이블의 글로벌 보조 인덱스가 제한됨

DynamoDB 테이블에 제한이 있는 보조 글로벌 인덱스가 있으면 제한으로 인해 기본 테이블에 역압력 제한이 발생할 수 있습니다. 자세한 내용은 글로벌 보조 인덱스에 제한이 있으면 Amazon DynamoDB 테이블에 어떤 영향을 미치나요?DynamoDB에서 글로벌 보조 인덱스 사용을 참고하세요.

관련 정보


최대 트래픽 및 크기 조정 속성

Amazon DynamoDB 테이블에 적합한 기본 키를 선택하려면 어떻게 해야 하나요?

DynamoDB 콘솔의 지표가 CloudWatch 메트릭과 다른 이유는 무엇인가요?

Amazon DynamoDB의 서비스, 계정, 테이블 할당량

AWS 공식
AWS 공식업데이트됨 일 년 전