4- 온디맨드 최대 처리량 초과
온디맨드 테이블 또는 GSI를 구성할 때, 비용이 급증하는 것을 방지하거나 다운스트림 시스템이 과부하되는 것을 막기 위해 테이블 또는 인덱스 수준에서 최대 처리량 한도(MaxReadRequestUnits 및 MaxWriteRequestUnits)를 선택적으로 설정할 수 있습니다. 최대 처리량에 대한 자세한 내용은 온디맨드 테이블의 최대 처리량 섹션을 참조하세요.
읽기 또는 쓰기 사용량이 이러한 자체 설정 한도를 초과하면 한도를 초과할 추가 요청에 대해 신속한 스로틀링 응답이 발생합니다. DynamoDB는 MaxOnDemandThroughputExceeded 스로틀링 원인 유형의 예외를 반환하여 어떤 리소스가 처리량 한도에 도달했는지 표시합니다.
온디맨드 최대 처리량 초과 스로틀링
이 섹션에서는 온디맨드 최대 처리량 초과 스로틀링 시나리오에 대한 해결 방법 지침을 제공합니다. 이 가이드를 사용하기 전에 애플리케이션의 예외 처리에서 특정 스로틀링 사유를 확인하고 영향을 받은 리소스의 Amazon 리소스 이름(ARN)을 파악했는지 확인하세요. 스로틀링 사유 검색 및 스로틀된 리소스 식별에 대한 정보는 DynamoDB 스로틀링 진단 프레임워크 섹션을 참조하세요.
특정 스로틀링 시나리오를 살펴보기 전에 먼저 조치가 실제로 필요한지 고려하세요.
-
최대 처리량 설정 평가: 이러한 한도는 의도적으로 비용을 제어하거나 다운스트림 시스템을 보호하도록 구성되었습니다.
MaxOnDemandThroughputExceeded스로틀링 이벤트를 수신하는 경우, 한도가 설계된 대로 작동되고 있는 것입니다. 이러한 한도를 늘리는 것이 원 비용 제어 또는 시스템 보호 목표와 부합하는지 고려하세요. -
애플리케이션 영향 평가: 스로틀링이 실제로 애플리케이션이나 사용자에게 문제를 일으키는지 판단합니다. 애플리케이션이 재시도를 효과적으로 처리하고 가끔 발생하는 스로틀링에도 성능 요구 사항을 충족한다면 현재 제한을 유지하는 것이 적절한 선택일 수 있습니다.
-
트래픽 패턴 검토: 스로틀링이 예상된 트래픽 패턴인지, 아니면 비정상적인 급증인지 분석합니다. 예측 가능하고 반복적으로 한도를 초과하는 트래픽 패턴의 경우 최대 처리량 설정 조정이 필요할 수 있습니다. 일시적인 급증의 경우 한도 상향보다 더 나은 요청 분산 전략 구현이 더 적합할 수 있습니다.
검토 후 최대 처리량 설정 조정이 필요하다고 판단되면, 아래의 특정 스로틀링 시나리오를 참조하여 대상 수정 옵션을 확인하세요.
TableReadMaxOnDemandThroughputExceeded
이 스로틀링이 발생하는 경우
온디맨드 테이블이 구성된 최대 읽기 처리량 용량을 초과했습니다. 공통 진단 및 모니터링에서 CloudWatch 지표로 스로틀링 이벤트를 분석할 수 있습니다.
문제 해결 옵션
스로틀링 이벤트를 해결하려면 다음 단계를 고려하세요.
-
최대 처리량 한도 증가: DynamoDB 콘솔
, AWS CLI 또는 DynamoDB UpdateTableAPI를 사용하여 영향을 받는 테이블의MaxReadRequestUnits값을 증가시킨 후 모니터링하고 조정합니다. 렇게 하면 스로틀링이 발생하기 전에 테이블이 더 높은 읽기 처리량을 처리할 수 있습니다. -
최대 한도 제거:
MaxReadRequestUnits를-1로 설정하여 상한선을 제거하면 계정 수준 처리량 할당량까지 수요에 따라 확장할 수 있습니다. 이렇게 하면 사용자 지정 한도는 제거되지만 AWS의 계정 수준 보호 장치는 유지됩니다. 그러나 이 한도를 제거한 후에는 테이블이 계정 수준 할당량에 도달하기 전에 훨씬 더 많은 용량을 소비할 수 있으므로 지출을 면밀히 모니터링하는 것이 중요합니다.
TableWriteMaxOnDemandThroughputExceeded
이 스로틀링이 발생하는 경우
온디맨드 테이블이 구성된 최대 쓰기 처리량 용량을 초과했습니다. 공통 진단 및 모니터링에서 CloudWatch 지표로 스로틀링 이벤트를 분석할 수 있습니다.
문제 해결 옵션
스로틀링 이벤트를 해결하려면 다음 단계를 고려하세요.
-
최대 처리량 한도 증가: DynamoDB 콘솔
, AWS CLI 또는 DynamoDB UpdateTableAPI를 사용하여 영향을 받는 테이블의MaxWriteRequestUnits값을 증가시킨 후 모니터링하고 조정합니다. -
최대 한도 제거:
MaxWriteRequestUnits를-1로 설정하여 상한선을 제거하면 계정 수준 처리량 할당량까지 수요에 따라 확장할 수 있습니다. 이렇게 하면 사용자 지정 한도는 제거되지만 AWS의 계정 수준 보호 장치는 유지됩니다. 그러나 이 한도를 제거한 후에는 테이블이 계정 수준 할당량에 도달하기 전에 훨씬 더 많은 용량을 소비할 수 있으므로 지출을 면밀히 모니터링하는 것이 중요합니다.
IndexReadMaxOnDemandThroughputExceeded
이 스로틀링이 발생하는 경우
온디맨드 모드에서 GSI에 대한 읽기 요청이 GSI의 구성된 최대 읽기 처리량 용량을 초과했습니다. 공통 진단 및 모니터링에서 CloudWatch 지표로 스로틀링 이벤트를 분석할 수 있습니다.
문제 해결 옵션
스로틀링 이벤트를 해결하려면 다음 단계를 고려하세요.
-
GSI 최대 처리량 한도 증가: DynamoDB 콘솔
, AWS CLI 또는 DynamoDB UpdateTableAPI를 사용하여 영향을 받는 GSI의MaxReadRequestUnits값을 증가시킨 후 모니터링하고 조정합니다. -
GSI 최대 한도 제거: GSI의
MaxReadRequestUnits를-1로 설정하여 상한선을 제거하면 계정 수준 처리량 할당량까지 수요에 따라 확장할 수 있습니다. 이렇게 하면 사용자 지정 한도는 제거되지만 AWS의 계정 수준 보호 장치는 유지됩니다. 그러나이 한도를 제거한 후에는 지출을 면밀히 모니터링하는 것이 중요합니다.
IndexWriteMaxOnDemandThroughputExceeded
이 스로틀링이 발생하는 경우
기본 테이블의 항목 업데이트는 GSI의 구성된 최대 쓰기 처리량 용량을 초과하는 쓰기를 온디맨드 모드의 GSI로 트리거하여 백 프레셔 스로틀링을 유발합니다. 공통 진단 및 모니터링에서 CloudWatch 지표로 스로틀링 이벤트를 분석할 수 있습니다.
문제 해결 옵션
스로틀링 이벤트를 해결하려면 다음 단계를 고려하세요.
-
GSI 최대 처리량 한도 증가: DynamoDB 콘솔
, AWS CLI 또는 DynamoDB UpdateTableAPI를 사용하여 영향을 받는 GSI의MaxWriteRequestUnits값을 증가시킨 후 모니터링하고 조정합니다. -
GSI 최대 한도 제거: GSI의
MaxWriteRequestUnits를-1로 설정하여 상한선을 제거하면 계정 수준 처리량 할당량까지 수요에 따라 확장할 수 있습니다. 이렇게 하면 사용자 지정 한도는 제거되지만 AWS의 계정 수준 보호 장치는 유지됩니다. 그러나이 한도를 제거한 후에는 지출을 면밀히 모니터링하는 것이 중요합니다.
공통 진단 및 모니터링
온디맨드 최대 처리량 초과 스로틀링 이벤트를 해결할 때, 여러 CloudWatch 지표들을 통해 근본 원인과 확장 패턴을 파악할 수 있습니다.
필수 CloudWatch 지표
온디맨드 최대 처리량 초과로 인한 스로틀링을 진단하려면 다음 주요 지표들을 모니터링합니다.
-
최대 처리량 스로틀링 이벤트:
ReadMaxOnDemandThroughputThrottleEvents및WriteMaxOnDemandThroughputThrottleEvents는 요청이 최대 한도를 초과하여 스로틀링되는 시점을 추적합니다.ReadThrottleEvents및WriteThrottleEvents는 읽기 또는 쓰기 요청이 프로비저닝된 용량을 초과하는 시점을 추적합니다. -
테이블 또는 글로벌 보조 인덱스에 대해 현재 구성된 최대 처리량:
OnDemandMaxReadRequestUnits및OnDemandMaxWriteRequestUnits는 현재 최대 용량 한도를 표시합니다. -
실제 용량 사용량:
ConsumedReadCapacityUnits및ConsumedWriteCapacityUnits는 실제 사용 패턴을 보여줍니다.
분석 접근 방식
온디맨드 최대 처리량 초과 진단을 확인하려면 다음 단계를 따르세요.
-
소비된 용량을 최대 용량 한도와 비교 - 소비량이 지속적으로 최대 한도에 근접하거나 초과하는지 확인합니다.
-
스로틀링 이벤트 빈도와 시점을 검토하여 패턴을 식별합니다. 스로틀링 이벤트와 동시에 발생한 소비 용량이 급증하는 부분을 찾습니다.
-
CloudWatch Contributor Insights를 사용하여 가장 많은 용량을 소비하는 항목 또는 파티션 키를 식별합니다.