온디맨드 테이블의 최대 처리량
온디맨드 테이블의 경우, 선택적으로 개별 테이블 및 연결된 글로벌 보조 인덱스(GSI)의 초당 최대 읽기 또는 쓰기(또는 둘 다) 처리량을 지정할 수도 있습니다. 최대 온디맨드 처리량을 지정하면 테이블 수준의 사용량과 비용을 제한하는 데 도움이 됩니다. 기본적으로 최대 처리량 설정은 적용되지 않으며 온디맨드 처리량은 테이블 내 모든 테이블 또는 GSI의 AWS 서비스 할당량에 따라 제한됩니다. 필요한 경우 서비스 할당량 증가를 요청할 수 있습니다.
온디맨드 테이블의 최대 처리량을 구성하면 지정된 최대 처리량을 초과하는 처리량 요청은 제한됩니다. 애플리케이션 요구 사항에 따라 언제든지 테이블 수준의 처리량 설정을 수정할 수 있습니다.
다음은 온디맨드 테이블의 최대 처리량을 사용할 때 도움이 될 수 있는 몇 가지 일반적인 사용 사례입니다.
-
처리량 비용 최적화 - 온디맨드 테이블에 최대 처리량을 사용하면 비용 예측성과 관리 용이성이 향상됩니다. 또한 온디맨드 모드로 트래픽 패턴과 예산이 서로 다른 워크로드를 지원할 수 있는 뛰어난 유연성을 누리게 됩니다.
-
과도한 사용 방지 - 최대 처리량을 설정하면 온디맨드 테이블에서 최적화되지 않은 코드나 악성 프로세스로 인해 발생할 수 있는 우발적인 읽기 또는 쓰기 사용량 급증을 방지할 수 있습니다. 이 테이블 수준의 설정은 조직이 특정 기간 내에 리소스를 과도하게 소비하지 않도록 보호할 수 있습니다.
-
다운스트림 서비스 보호 - 고객 애플리케이션에는 서버리스 및 비서버리스 기술이 포함될 수 있습니다. 서버리스 아키텍처 부분은 수요에 맞춰 빠르게 규모를 조정할 수 있습니다. 하지만 용량이 고정된 다운스트림 구성 요소에는 과부하가 걸릴 수 있습니다. 온디맨드 테이블에 최대 처리량 설정을 구현하면 대규모 이벤트가 여러 다운스트림 구성 요소로 전파되어 예상치 못한 부작용을 초래하는 것을 방지할 수 있습니다.
신규 및 기존 단일 리전 테이블, 글로벌 테이블 및 GSI에 대해 온디맨드 모드의 최대 처리량을 구성할 수 있습니다. Amazon S3 워크플로에서 테이블 복원 및 데이터 가져오기 중에 최대 처리량을 구성할 수도 있습니다.
DynamoDB 콘솔
참고
온디맨드 테이블의 최대 처리량은 최선의 방식으로 적용되며 보장된 요청 최대치가 아닌 목표로 생각해야 합니다. 버스트 용량 때문에 워크로드가 일시적으로 지정된 최대 처리량을 초과할 수 있습니다. DynamoDB는 테이블의 최대 처리량 설정을 초과하는 읽기 또는 쓰기를 수용하기 위해 경우에 따라 버스트 용량을 사용하기도 합니다. 원래는 조절되어야 하는 예상치 못한 읽기 또는 쓰기 요청도 버스트 용량으로 해결할 수 있습니다.
온디맨드 모드에서 최대 처리량을 사용할 때 고려할 사항
온디맨드 모드에서 테이블의 최대 처리량을 사용하는 경우 다음 고려 사항이 적용됩니다.
-
온디맨드 테이블 또는 해당 테이블 내의 개별 글로벌 보조 인덱스에 대한 최대 읽기 및 쓰기 처리량을 독립적으로 설정하여 특정 요구 사항에 따라 접근 방식을 세밀하게 조정할 수 있습니다.
-
Amazon CloudWatch를 사용하여 DynamoDB 테이블 수준 사용 지표를 모니터링 및 파악하고 온디맨드 모드에 적합한 최대 처리량 설정을 결정할 수 있습니다. 자세한 내용은 DynamoDB 지표 및 차원 단원을 참조하십시오.
-
하나의 글로벌 테이블 복제본에서 최대 읽기 또는 쓰기(또는 둘 다) 처리량 설정을 지정하면 모든 복제본 테이블에 동일한 최대 처리량 설정이 자동으로 적용됩니다. 글로벌 테이블의 복제본 테이블과 보조 인덱스의 쓰기 처리량을 동일하게 설정해 데이터를 적절히 복제하는 것이 중요합니다. 자세한 내용은 DynamoDB 글로벌 테이블 관리에 관한 모범 사례 및 요구 사항 단원을 참조하십시오.
-
지정할 수 있는 가장 작은 최대 읽기 또는 쓰기 처리량은 초당 요청 단위 1개입니다.
-
지정하는 최대 처리량은 온디맨드 테이블 또는 해당 테이블 내 개별 글로벌 보조 인덱스에 사용할 수 있는 기본 처리량 할당량보다 낮아야 합니다.
요청 제한 및 CloudWatch 지표
애플리케이션이 온디맨드 테이블에 설정한 최대 읽기 또는 쓰기 처리량을 초과하는 경우 DynamoDB는 해당 요청을 제한하기 시작합니다. DynamoDB는 읽기 또는 쓰기를 제한할 때 호출자에게 ThrottlingException
을 반환합니다. 그런 다음 필요한 경우 적절한 조치를 취할 수 있습니다. 예를 들어, 최대 테이블 처리량 설정을 늘리거나 비활성화하거나 잠시 기다린 후 요청을 다시 시도할 수 있습니다.
테이블 또는 글로벌 보조 인덱스에 구성된 최대 처리량 모니터링을 단순화하기 위해 CloudWatch는 다음과 같은 지표를 제공합니다. OnDemandMaxReadRequestUnits 및 OnDemandMaxWriteRequestUnits