온디맨드 Amazon DynamoDB 테이블이 제한되고 있는데 그 이유를 모르겠습니다.
해결 방법
온디맨드 용량 모드를 사용하는 DynamoDB 테이블은 애플리케이션의 트래픽 볼륨에 맞게 자동으로 조정됩니다. 그러나 온디맨드 모드를 사용하는 테이블에는 여전히 제한이 있을 수 있습니다. 다음과 같은 이유로 인해 DB 테이블이 제한될 수 있습니다.
트래픽이 이전 최대치의 두 배 이상입니다.
30분 이내에 이전 트래픽 최대치의 두 배를 초과하면 제한이 발생할 수 있습니다. 이전 트래픽의 최대치를 초과하기 전에 최소 30분 동안 트래픽 증가를 분산하는 것이 좋습니다. 테이블 트래픽을 모니터링하려면 Amazon CloudWatch에서 ConsumedReadCapacityUnits 지표를 사용하세요. 자세한 내용은 DynamoDB 지표 및 차원을 참고하세요.
새로운 온디맨드 테이블의 경우, 최대 4,000개 쓰기 요청 단위 또는 최대 12,000개 읽기 요청 단위까지 또는 이 둘의 선형 조합까지 즉시 사용할 수 있습니다.
온디맨드 용량 모드로 전환한 기존 테이블의 경우, 이전 최대치는 다음 값 중 하나입니다.
- 테이블에서 이전에 프로비저닝된 처리량의 절반
- 온디맨드 용량 모드에서 새로 생성된 테이블에 대한 설정
자세한 내용은 초기 처리량 및 속성 크기 조정을 참조하세요.
트래픽이 각 파티션의 최대치를 초과함
테이블의 각 파티션은 최대 3,000개 쓰기 요청 단위 또는 1,000개 읽기 요청 단위까지, 또는 이 둘의 선형 조합까지 사용할 수 있습니다. 파티션 트래픽이 이 할당량을 초과하면 파티션이 제한될 수 있습니다.
이 문제를 해결하려면 다음 단계를 완료하세요.
- DynamoDB용 CloudWatch Contributor Insights를 사용하여 테이블에 가장 자주 액세스하면서 제한된 키를 식별합니다.
- 테이블 요청을 무작위로 지정해 핫 파티션 키로 가는 요청이 시간이 지남에 따라 분산되도록 합니다. 자세한 내용은 쓰기 샤딩을 사용하여 워크로드를 균등하게 분산하는 방법을 참조하세요.
트래픽이 각 테이블의 계정 할당량을 초과함
온디맨드 테이블의 경우 테이블 수준 읽기 처리량 및 테이블 수준 쓰기 처리량 할당량이 계정 수준에서 적용됩니다. 기본적으로 테이블 처리량은 최대 40,000개의 읽기 요청 단위 및 최대 40,000개의 쓰기 요청 단위입니다. 테이블로 향하는 트래픽이 각 테이블의 처리량 할당량을 초과하면 테이블이 제한될 수 있습니다.
이 문제를 해결하려면 테이블 수준의 읽기 처리량 및 쓰기 처리량에 대한 계정 수준의 할당량 증가를 요청하세요.
테이블의 전역 보조 인덱스가 제한됨
DynamoDB 테이블에 제한된 전역 보조 인덱스가 있으면 이 제한으로 인해 기본 테이블에 역압력 제한이 발생할 수 있습니다. 자세한 내용은 전역 보조 인덱스에 제한이 있으면 Amazon DynamoDB 테이블에 어떤 영향을 미칩니까?와 DynamoDB에서 전역 보조 인덱스 사용을 참조하세요.
트래픽이 구성된 최대 처리량을 초과함
온디맨드 테이블에 설정한 최대 읽기 또는 쓰기 처리량을 초과하면 테이블이 제한되고 ThrottlingException 오류 메시지가 표시됩니다.
사용 사례에 따라 다음 작업을 완료하세요.
테이블 또는 전역 보조 인덱스에 대해 구성된 최대 처리량을 모니터링하려면 CloudWatch 콘솔에서 OnDemandMaxReadRequestUnits 및 OnDemandMaxWriteRequestUnits 지표를 사용하세요.
관련 정보
버스트 및 적응형 용량
Amazon DynamoDB 테이블에 적합한 기본 키는 어떻게 선택합니까?
DynamoDB 콘솔의 지표가 CloudWatch 메트릭과 다른 이유는 무엇인가요?
Amazon DynamoDB의 서비스, 계정, 테이블 할당량
Amazon DynamoDB 온디맨드에 구성 가능한 최대 처리량 소개