

# 온디맨드 테이블의 최대 처리량
<a name="on-demand-capacity-mode-max-throughput"></a>

온디맨드 테이블의 경우, 선택적으로 개별 테이블 및 연결된 글로벌 보조 인덱스(GSI)의 초당 최대 읽기 또는 쓰기(또는 둘 다) 처리량을 지정할 수도 있습니다. 최대 온디맨드 처리량을 지정하면 테이블 수준의 사용량과 비용을 제한하는 데 도움이 됩니다. 기본적으로 최대 처리량 설정은 적용되지 않으며 온디맨드 처리량은 계정 내 모든 테이블의 40,000 테이블 수준 읽기 및 쓰기 처리량 [AWS 서비스 할당량](ServiceQuotas.md#default-limits-throughput)에 따라 제한됩니다. 필요한 경우 서비스 할당량 증가를 요청할 수 있습니다.

온디맨드 테이블의 최대 처리량을 구성하면 지정된 최대 처리량을 초과하는 처리량 요청은 제한됩니다. 애플리케이션 요구 사항에 따라 언제든지 테이블 수준의 처리량 설정을 수정할 수 있습니다.

다음은 온디맨드 테이블의 최대 처리량을 사용할 때 도움이 될 수 있는 몇 가지 일반적인 사용 사례입니다.
+ **처리량 비용 최적화** - 온디맨드 테이블에 최대 처리량을 사용하면 비용 예측성과 관리 용이성이 향상됩니다. 또한 온디맨드 모드로 트래픽 패턴과 예산이 서로 다른 워크로드를 지원할 수 있는 뛰어난 유연성을 누리게 됩니다.
+ **과도한 사용 방지** - 최대 처리량을 설정하면 온디맨드 테이블에서 최적화되지 않은 코드나 악성 프로세스로 인해 발생할 수 있는 우발적인 읽기 또는 쓰기 사용량 급증을 방지할 수 있습니다. 이 테이블 수준의 설정은 조직이 특정 기간 내에 리소스를 과도하게 소비하지 않도록 보호할 수 있습니다.
+ **다운스트림 서비스 보호** - 고객 애플리케이션에는 서버리스 및 비서버리스 기술이 포함될 수 있습니다. 서버리스 아키텍처 부분은 수요에 맞춰 빠르게 규모를 조정할 수 있습니다. 하지만 용량이 고정된 다운스트림 구성 요소에는 과부하가 걸릴 수 있습니다. 온디맨드 테이블에 최대 처리량 설정을 구현하면 대규모 이벤트가 여러 다운스트림 구성 요소로 전파되어 예상치 못한 부작용을 초래하는 것을 방지할 수 있습니다.

신규 및 기존 단일 리전 테이블, 글로벌 테이블 및 GSI에 대해 온디맨드 모드의 최대 처리량을 구성할 수 있습니다. Amazon S3 워크플로에서 테이블 복원 및 데이터 가져오기 중에 최대 처리량을 구성할 수도 있습니다.

[DynamoDB 콘솔](https://console.aws.amazon.com/dynamodb/), [AWS CLI](AccessingDynamoDB.md#Tools.CLI), [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html) 또는 [DynamoDB API](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/Welcome.html)를 사용하여 온디맨드 테이블의 최대 처리량 설정을 지정할 수 있습니다.

**참고**  
온디맨드 테이블의 최대 처리량은 최선의 방식으로 적용되며 보장된 요청 최대치가 아닌 목표로 생각해야 합니다. [*버스트 용량*](burst-adaptive-capacity.md#burst-capacity) 때문에 워크로드가 일시적으로 지정된 최대 처리량을 초과할 수 있습니다. DynamoDB는 테이블의 최대 처리량 설정을 초과하는 읽기 또는 쓰기를 수용하기 위해 경우에 따라 *버스트 용량*을 사용하기도 합니다. 원래는 조절되어야 하는 예상치 못한 읽기 또는 쓰기 요청도 버스트 용량으로 해결할 수 있습니다.

**Topics**
+ [온디맨드 모드에서 최대 처리량을 사용할 때 고려할 사항](#consideration-use-max-throughput-ondemand)
+ [요청 제한 및 CloudWatch 지표](#max-throughput-ondemand-request-throttle)

## 온디맨드 모드에서 최대 처리량을 사용할 때 고려할 사항
<a name="consideration-use-max-throughput-ondemand"></a>

온디맨드 모드에서 테이블의 최대 처리량을 사용하는 경우 다음 고려 사항이 적용됩니다.
+ 온디맨드 테이블 또는 해당 테이블 내의 개별 글로벌 보조 인덱스에 대한 최대 읽기 및 쓰기 처리량을 독립적으로 설정하여 특정 요구 사항에 따라 접근 방식을 세밀하게 조정할 수 있습니다.
+ Amazon CloudWatch를 사용하여 DynamoDB 테이블 수준 사용 지표를 모니터링 및 파악하고 온디맨드 모드에 적합한 최대 처리량 설정을 결정할 수 있습니다. 자세한 내용은 [DynamoDB 지표 및 차원](metrics-dimensions.md) 섹션을 참조하세요.
+ 하나의 글로벌 테이블 복제본에서 최대 읽기 또는 쓰기(또는 둘 다) 처리량 설정을 지정하면 모든 복제본 테이블에 동일한 최대 처리량 설정이 자동으로 적용됩니다. 글로벌 테이블의 복제본 테이블과 보조 인덱스의 쓰기 처리량을 동일하게 설정해 데이터를 적절히 복제하는 것이 중요합니다. 자세한 내용은 [글로벌 테이블에 대한 모범 사례](globaltables-bestpractices.md) 섹션을 참조하세요.
+ 지정할 수 있는 가장 작은 최대 읽기 또는 쓰기 처리량은 초당 요청 단위 1개입니다.
+ 지정하는 최대 처리량은 온디맨드 테이블 또는 해당 테이블 내 개별 글로벌 보조 인덱스에 사용할 수 있는 기본 처리량 할당량보다 낮아야 합니다.

## 요청 제한 및 CloudWatch 지표
<a name="max-throughput-ondemand-request-throttle"></a>

애플리케이션이 온디맨드 테이블에 설정한 최대 읽기 또는 쓰기 처리량을 초과하는 경우 DynamoDB는 해당 요청을 제한하기 시작합니다. DynamoDB는 읽기 또는 쓰기를 제한할 때 호출자에게 `ThrottlingException`을 반환합니다. 그런 다음 필요한 경우 적절한 조치를 취할 수 있습니다. 예를 들어, 최대 테이블 처리량 설정을 늘리거나 비활성화하거나 잠시 기다린 후 요청을 다시 시도할 수 있습니다.

테이블 또는 글로벌 보조 인덱스에 구성된 최대 처리량 모니터링을 단순화하기 위해 CloudWatch는 다음과 같은 지표를 제공합니다. [OnDemandMaxReadRequestUnits](metrics-dimensions.md#OnDemandMaxReadRequestUnits) 및 [OnDemandMaxWriteRequestUnits](metrics-dimensions.md#OnDemandMaxWriteRequestUnits)