

# Amazon DynamoDB의 할당량
<a name="ServiceQuotas"></a>

이 섹션에서는 Amazon DynamoDB 내의 현재 할당량(이전에는 제한이라고 함)에 대해 설명합니다. 각 할당량은 다르게 지정되지 않는 한 리전별로 적용됩니다.

**참고**  
DynamoDB의 모든 크기 측정은 이진 기반 단위를 사용합니다. DynamoDB는 1KB = 1024바이트, 1MB = 1024KB, 1GB = 1024MB, 1TB = 1024GB를 나타냅니다.

**Topics**
+ [읽기/쓰기 처리량](#default-limits-throughput-capacity-modes)
+ [예약 용량](#reserved-capacity)
+ [테이블](#limits-tables)
+ [전역 테이블](#gt-limits-throughput)
+ [보조 인덱스](#limits-secondary-indexes)
+ [프로젝션된 보조 인덱스 속성](#projected-secondary-index-attributes)
+ [DynamoDB Streams](#limits-dynamodb-streams)
+ [Amazon S3에서 가져오기](#import-limits)
+ [Amazon S3로 테이블 내보내기](#limits-table-export)
+ [백업 및 복원](#limits-backup-restore)
+ [Contributor Insights](#contributor-insights-quotas)

## 읽기/쓰기 처리량
<a name="default-limits-throughput-capacity-modes"></a>

### 처리량 기본 할당량
<a name="default-limits-throughput"></a>

AWS는 계정이 한 리전 내에서 프로비저닝하고 소비할 수 있는 처리량에 몇 가지 기본 할당량을 둡니다.

계정 수준 읽기 처리량 및 계정 수준 쓰기 처리량 할당량은 계정 수준에서 적용됩니다. 이러한 계정 수준 할당량은 해당 리전의 모든 계정 테이블 및 글로벌 보조 인덱스에 대해 프로비저닝된 처리량 용량의 합계에 적용됩니다. 모든 계정의 사용 가능 처리량은 한 테이블 또는 여러 테이블에 프로비저닝할 수 있습니다. 이러한 할당량은 프로비저닝된 용량 모드를 사용하는 테이블에만 적용됩니다.

테이블 수준 읽기 처리량 할당량 및 테이블 수준 쓰기 처리량 할당량은 프로비저닝된 용량 모드를 사용하는 테이블과 온디맨드 용량 모드를 사용하는 테이블에 다르게 적용됩니다.

프로비저닝된 용량 모드 테이블 및 GSI의 경우 할당량은 리전의 모든 테이블 또는 해당 GSI에 프로비저닝할 수 있는 최대 읽기 및 쓰기 용량 단위입니다. 개별 테이블과 모든 GSI의 합계도 계정 수준의 읽기 및 쓰기 처리량 할당량 이하로 유지되어야 합니다. 이는 프로비저닝된 모든 테이블과 해당 GSI의 합계가 계정 수준의 읽기 및 쓰기 처리량 할당량 이하로 유지되어야 한다는 요구 사항에 추가됩니다.

온디맨드 용량 모드 테이블 및 GSI의 경우 테이블 수준 할당량은 모든 테이블 또는 해당 테이블 내의 개별 GSI에 사용할 수 있는 최대 읽기 및 쓰기 용량 단위입니다. 온디맨드 모드의 테이블에는 계정 수준의 읽기 및 쓰기 처리량 할당량이 적용되지 않습니다.

다음은 기본적으로 계정에 적용되는 처리량 할당량입니다.

**참고**  
모든 용량 단위 및 요청 단위 할당량은 초당 측정됩니다. 예를 들어, 40,000개의 읽기 용량 단위 할당량은 초당 40,000개의 읽기를 의미합니다.

**참고**  
서비스 할당량 증가를 통해 DynamoDB 테이블에 대한 읽기 용량 단위(RCU) 또는 쓰기 용량 단위(WCU)를 원하는 수만큼 요청할 수 있습니다. 다음 표에 나열된 값은 초기 기본 할당량을 나타냅니다. 이는 테이블의 최대 한도가 아닙니다.


| 처리량 할당량 이름 | 온디맨드 | 프로비저닝됨 | 조정 가능 | 
| --- | --- | --- | --- | 
| 테이블당 | 40,000 읽기 요청 단위 및 40,000 쓰기 요청 단위 | 40,000 읽기 용량 단위 및 40,000 쓰기 용량 단위 |  예  | 
| 계정당 | 해당 사항 없음 | 80,000 읽기 용량 단위 및 80,000 쓰기 용량 단위 |  예  | 
| 모든 테이블 또는 글로벌 보조 인덱스의 최소 처리량 | 해당 사항 없음 | 1 읽기 용량 단위 및 1 쓰기 용량 단위 |  예  | 

### 처리량 늘리기 또는 줄이기(프로비저닝된 테이블의 경우)
<a name="decreasing-increasing-throughput"></a>

#### 프로비저닝된 처리량 늘리기
<a name="limits-increasing-provisioned-throughput"></a>

`ReadCapacityUnits` 또는 `WriteCapacityUnits` 작업을 사용하여 필요한 만큼 자주 AWS Management Console 또는 `UpdateTable`를 늘릴 수 있습니다. 단일 호출에서 테이블, 해당 테이블의 모든 글로벌 보조 인덱스 또는 테이블과 인덱스 조합의 할당된 처리량을 늘릴 수 있습니다. 새 설정은 `UpdateTable` 작업이 완료된 후에 적용됩니다.

프로비저닝된 용량을 추가할 때는 계정당 할당량을 초과할 수 없으며, DynamoDB가 프로비저닝된 용량이 너무 빠르게 늘지 않도록 제한합니다. 이러한 제한 사항을 만족하는 경우에는 원하는 만큼 테이블의 할당된 용량을 늘릴 수 있습니다. 계정당 할당량에 대한 자세한 내용은 앞의 [처리량 기본 할당량](#default-limits-throughput) 섹션을 참조하세요.

#### 프로비저닝된 처리량 줄이기
<a name="limits-decreasing-provisioned-throughput"></a>

`UpdateTable` 작업의 모든 테이블 및 글로벌 보조 인덱스에 대해 `ReadCapacityUnits` 또는 `WriteCapacityUnits`(또는 둘 다)를 줄일 수 있습니다. 새 설정은 `UpdateTable` 작업이 완료된 후에 적용됩니다.

DynamoDB 테이블에서 하루에 수행할 수 있는 프로비저닝된 용량 감소 횟수에는 기본 할당량이 있습니다. 하루는 협정 세계시(UTC)에 따라 정의됩니다. 매일 4개의 사용 가능한 감소로 시작합니다. 매시간 최대 4개까지 1회 추가 감소를 사용할 수 있습니다. 하루 24시간 동안 최대 27회까지 줄일 수 있습니다(첫 1시간에는 4회, 나머지 23시간에는 1회).

**중요**  
테이블 감소 제한과 글로벌 보조 인덱스 감소 제한은 별개이므로 특정 테이블에 대한 모든 글로벌 보조 인덱스는 자체 감소 제한을 갖습니다. 그러나 단일 요청이 테이블 및 글로벌 보조 인덱스에 대한 처리량을 감소시키는 경우에는 둘 중 하나가 현재 제한을 초과하게 되면 요청이 거부됩니다. 요청은 부분적으로 처리되지 않습니다.

**Example**  
하루의 첫 4시간 동안에는 글로벌 보조 인덱스가 있는 테이블을 다음과 같이 수정할 수 있습니다.  
+  테이블의 `WriteCapacityUnits` 또는 `ReadCapacityUnits`(또는 둘 다)를 네 번 감소합니다.
+  글로벌 보조 인덱스의 `WriteCapacityUnits` 또는 `ReadCapacityUnits`(또는 둘 다)를 네 번 감소합니다.
 같은 날의 종료 시간에 테이블 및 글로벌 보조 인덱스 처리량은 잠재적으로 각각 총 27회 감소될 수 있습니다.

## 예약 용량
<a name="reserved-capacity"></a>

 AWS는 계정에서 구매할 수 있는 활성 예약 용량에 기본 할당량을 지정합니다. 할당량 한도는 쓰기 용량 단위(WCU)와 읽기 용량 단위(RCU)의 예약 용량 조합입니다.


| 예약 용량 할당량 | 활성 예약 용량 | 조정 가능 | 
| --- | --- | --- | 
|   계정당   |   1,000,000개의 프로비저닝 용량 단위(WCUs \$1 RCUs)   |   예   | 

 한 번의 구매로 1,000,000개 이상의 프로비저닝 용량 단위를 구매하려고 하면 이 서비스 할당량 한도에 대한 오류 메시지가 표시됩니다. 활성 예약 용량이 있는 상태에서 활성 프로비저닝 용량 단위가 1,000,000개를 초과하도록 추가 예약 용량을 구매하려고 할 경우 이 서비스 할당량 한도에 대한 오류 메시지가 표시됩니다.

## 테이블
<a name="limits-tables"></a>

### 테이블 크기
<a name="limits-table-size"></a>

테이블 크기는 실제로 제한이 없습니다. 테이블의 항목 수 또는 바이트 수에는 제약이 없습니다.

### 계정당 최대 테이블 수(리전당)
<a name="limits-tables-per-account"></a>

임의의 AWS 계정에 대해 AWS 리전당 2,500개 테이블의 초기 할당량이 있습니다.

단일 계정에 2,500개 이상의 테이블이 필요한 경우 AWS 계정 팀에 문의하여 최대 1만 개의 테이블까지 늘릴 수 있는 방안을 모색하세요. 1만 개 이상의 경우 권장되는 모범 사례는 여러 계정을 설정하는 것입니다. 각 계정은 최대 1만 개의 테이블을 제공할 수 있습니다.

## 전역 테이블
<a name="gt-limits-throughput"></a>

글로벌 테이블을 사용할 때 다음과 같은 기본 할당량이 적용됩니다.


| 기본 글로벌 테이블 할당량 | 온디맨드 | 프로비저닝됨 | 
| --- | --- | --- | 
| MRSC 글로벌 테이블 수([일관성 모델](V2globaltables_HowItWorks.md#V2globaltables_HowItWorks.consistency-modes) 참조) | 모든 용량 모드에서 400개의 총 MRSC 글로벌 테이블 | 모든 용량 모드에서 400개의 총 MRSC 글로벌 테이블 | 
| 다중 리전 최종 일관성(MREC)을 위해 구성된 테이블당 처리량 | 40,000 읽기 요청 단위 및 40,000 쓰기 요청 단위 | 40,000 읽기 용량 단위 및 40,000 쓰기 용량 단위 | 
| 다중 리전 강력한 일관성(MRSC)을 위해 구성된 테이블당 처리량 | 40,000 읽기 요청 단위 및 40,000 쓰기 요청 단위 | 40,000 읽기 용량 단위 및 40,000 쓰기 용량 단위 | 
| 계정별, 리전별, 일별 새 복제본에 대해 백필된 데이터 | 10TB | 10TB | 

**참고**  
AWS Support를 통해 할당량 한도 증가를 요청해야 하는 경우가 있을 수 있습니다. 다음 중 하나라도 해당하는 경우 [https://aws.amazon.com/support](https://aws.amazon.com/support)를 참조하세요.  
복제본 생성에 성공하려면 글로벌 테이블 처리량 할당량이 테이블당 처리량 할당량보다 크거나 같아야 합니다. MREC 및 MRSC 글로벌 테이블에는 별도의 글로벌 테이블 처리량 할당량이 있습니다.
24시간 내에 하나의 대상 리전에 총 합계가 10TB를 초과하는 복제본을 추가하는 경우 추가 복제본 데이터 채우기 할당량에 대한 서비스 할당량 증가를 요청해야 합니다.
다음과 비슷한 오류가 발생하는 경우  
'example\$1region\$1B' 리전의 현재 계정 한도를 초과하므로 'example\$1region\$1A' 리전에 'example\$1table' 테이블의 복제본을 생성할 수 없습니다.

## 보조 인덱스
<a name="limits-secondary-indexes"></a>

테이블당 최대 5개의 로컬 보조 인덱스를 정의할 수 있습니다.

 기본적으로 테이블당 20개의 글로벌 보조 인덱스 할당량이 있습니다.

## 프로젝션된 보조 인덱스 속성
<a name="projected-secondary-index-attributes"></a>

테이블의 모든 로컬 및 글로벌 보조 인덱스에 속성을 최대 100개까지 프로젝션할 수 있습니다. 사용자 지정 프로젝션 속성에만 이 할당량이 적용됩니다.

`CreateTable` 작업에서 `INCLUDE`의 `ProjectionType`을 지정할 경우 모든 보조 인덱스에서 합계한 `NonKeyAttributes`에 지정되는 속성의 총 개수는 100을 초과하지 않아야 합니다. 동일한 속성을 2개의 다른 인덱스에 프로젝션할 경우 할당량을 확인할 때 2개의 서로 다른 속성으로 계산됩니다.

이 할당량은 `ProjectionType`이 `KEYS_ONLY` 또는 `ALL`인 보조 인덱스에는 적용되지 않습니다.

## DynamoDB Streams
<a name="limits-dynamodb-streams"></a>

### DynamoDB Streams 내 샤드의 동시 리더
<a name="limits-dynamodb-streams-simultaneous"></a>

글로벌 테이블이 아닌 단일 리전 테이블의 경우 최대 2개의 동시 프로세스가 한 번에 동일 DynamoDB Streams 샤드에서 읽기 작업을 수행하도록 설계할 수 있습니다. 이 제한을 초과하면 요청 병목이 발생할 수 있습니다. 글로벌 테이블의 경우 요청 제한을 피하기 위해 동시 리더 수를 1로 제한하는 것이 좋습니다.

### DynamoDB Streams가 활성화된 테이블에 대한 최대 쓰기 용량
<a name="limits-dynamodb-streams-max-write-capacity"></a>

AWS는 DynamoDB Streams이 활성화된 DynamoDB 테이블에 대한 쓰기 용량에 몇 가지 기본 할당량을 둡니다. 이러한 기본 할당량은 프로비저닝된 읽기/쓰기 용량 모드의 테이블에만 적용됩니다.
+ 테이블당 - 쓰기 용량 단위 40,000

## Amazon S3에서 가져오기
<a name="import-limits"></a>

Amazon S3에서 DynamoDB 가져오기는 us-east-1, us-west-2 및 eu-west-1 리전에서 한 번에 총 가져오기 소스 객체 크기가 15TB인 최대 50개의 동시 가져오기 작업을 지원할 수 있습니다. 다른 모든 리전에서는 총 크기가 1TB인 최대 50개의 동시 가져오기 작업이 지원됩니다. 각 가져오기 작업은 모든 리전에서 최대 5만 개의 Amazon S3 객체를 가져올 수 있습니다. 가져오기 및 검증에 대한 자세한 내용은 [가져오기 형식 할당량 및 검증](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/S3DataImport.Validation.html#S3DataImport.Validation.limits)을 참조하세요.

## Amazon S3로 테이블 내보내기
<a name="limits-table-export"></a>

전체 내보내기: 최대 300개의 동시 내보내기 태스크 또는 모든 진행 중인 테이블 내보내기에서 최대 총 100TB를 내보낼 수 있습니다. 이러한 두 제한 모두 내보내기가 대기열에 추가되기 전에 확인됩니다.

증분 내보내기: Amazon S3로 DynamoDB 증분 내보내기는 최대 300개의 동시 내보내기 작업 또는 모든 진행 중인 테이블 내보내기에서 최대 총 100TB를 지원할 수 있습니다. 내보내기 기간 제한은 최소 15분, 최대 24시간입니다.

## 백업 및 복원
<a name="limits-backup-restore"></a>

DynamoDB는 DynamoDB 온디맨드 또는 연속 백업을 통해 총 50TB의 동시 복원을 최대 50개까지 지원합니다. AWS Backup은 총 25TB의 동시 복원을 최대 50개까지 지원합니다.

## Contributor Insights
<a name="contributor-insights-quotas"></a>

DynamoDB 테이블에서 고객 인사이트를 활성화해도 Contributor Insights 규칙 제한이 계속 적용됩니다. 자세한 내용은 [CloudWatch 서비스 할당량](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_limits.html)을 참조하세요.