DynamoDB 버스트 및 조정 용량 - Amazon DynamoDB

DynamoDB 버스트 및 조정 용량

처리량 예외로 인한 제한을 최소화하기 위해 DynamoDB는 버스트 용량을 사용하여 사용량 급증을 처리합니다. DynamoDB는 조정 용량을 사용하여 고르지 않은 액세스 패턴을 지원합니다.

버스트 용량

DynamoDB는 버스트 용량을 통해 처리량 프로비저닝에서 어느 정도 유연성을 제공합니다. 사용 가능한 처리량을 완전히 사용하지 않을 때마다 DynamoDB는 나중에 사용량 급증을 처리하기 위해 처리량 버스트에 사용하지 않은 용량 일부를 예약해 둡니다. 원래는 조절되어야 하는 예상치 못한 읽기 또는 쓰기 요청도 버스트 용량으로 해결할 수 있습니다.

DynamoDB는 현재 최대 5분(300초)의 사용되지 않은 읽기 및 쓰기 용량을 유지합니다. 가끔 발생하는 읽기 또는 쓰기 작업의 버스트 중 이러한 추가 용량 단위는 빠르게, 테이블에 대해 정의한 초당 프로비저닝된 처리량 용량보다도 신속하게 소모될 수 있습니다.

DynamoDB는 또한 사전 통지 없이 배경 유지 관리와 다른 작업에 버스트 용량을 사용할 수도 있습니다.

향후 버스트 용량의 세부 정보가 변경될 수도 있습니다.

조정 용량

DynamoDB는 AWS 클라우드의 여러 서버에 저장되어 있는 파티션에 데이터를 자동으로 분산합니다. 항상 읽기와 쓰기 작업을 골고루 배포할 수 있는 것은 아닙니다. 데이터 액세스가 불균형할 때, '핫' 파티션은 다른 파티션보다 볼륨이 많은 읽기와 쓰기 트래픽을 받을 수 있습니다. 파티션의 읽기 및 쓰기 작업은 독립적으로 관리되므로 단일 파티션이 3,000개 이상의 읽기 작업 또는 1,000개 이상의 쓰기 작업을 수신할 경우 제한이 발생합니다. 조정 용량은 더 많은 트래픽을 받는 파티션의 처리량 용량을 자동으로 증가시킵니다.

균일하지 않은 액세스 패턴을 더 효과적으로 수용하기 위해 DynamoDB 조정 용량을 사용하면 트래픽이 테이블의 총 프로비저닝된 용량이나 파티션 최대 용량을 초과하지 않을 경우 애플리케이션에서는 조절 없이 핫 파티션에 계속 읽기 및 쓰기 작업을 수행할 수 있습니다. 조정 용량은 더 많은 트래픽을 받는 파티션의 처리량 용량을 즉시 자동으로 증가시킵니다.

다음 다이어그램은 조정 용량 작동 방식을 설명합니다. 예제 테이블은 4개의 파티션에 균일하게 공유된 400WCU로 프로비저닝되어 있어 각 파티션은 초당 최대 100WCU를 유지할 수 있습니다. 파티션 1, 2 및 3은 각각 50WCU/초의 쓰기 트래픽을 수신합니다. 파티션 4는 150WCU/초를 수신합니다. 이 핫 파티션은 사용되지 않은 버스트 용량이 아직 있어도 쓰기 트래픽을 수락할 수 있지만, 결국 100WCU/초를 초과하는 트래픽을 제한합니다.

DynamoDB 조정 용량은 파티션 4의 용량을 늘리는 것으로 대응하므로 해당 파티션이 제한되지 않고 150WCU/초의 높은 워크로드를 유지할 수 있습니다.

조정 용량은 트래픽이 많은 파티션 4의 처리량을 자동으로 증가시켜 제한을 방지합니다.

조정 용량은 모든 DynamoDB 테이블에 대해 추가 비용 없이 자동으로 활성화됩니다. 조정 용량을 명시적으로 활성화하거나 비활성화할 필요가 없습니다.

자주 액세스하는 항목 분리

애플리케이션 트래픽이 하나 이상의 항목으로 너무 많이 이동하는 경우 자주 액세스하는 항목이 동일한 파티션에 상주하지 않도록 조정 용량이 파티션 균형을 재조정합니다. 자주 액세스하는 항목을 분리하면 워크로드가 단일 파티션의 처리량 할당량을 초과하여 요청이 조절될 가능성이 줄어듭니다. 항목 컬렉션이 정렬 키의 일시적인 증가 또는 감소로 추적되는 트래픽이 아닌 한, 항목 컬렉션을 정렬 키를 통해 세그먼트로 나눌 수도 있습니다.

애플리케이션이 단일 항목에 지속적으로 높은 트래픽을 발생시키는 경우, 자주 액세스하는 단일 항목만 파티션에 포함되도록 조정 용량이 데이터를 리밸런싱할 수 있습니다. 이 경우 DynamoDB는 파티션에 최대 3,000RCU 및 1,000WCU 처리량을 단일 항목의 프라이머리 키에 전달할 수 있습니다. 조정 용량은 테이블에 로컬 보조 인덱스가 있는 경우 테이블의 여러 파티션에 항목 컬렉션을 분할하지 않습니다.