Read/Write Capacity Mode - Amazon DynamoDB

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

Read/Write Capacity Mode

Amazon DynamoDB에는 테이블에 대한 읽기 및 쓰기 처리를 위한 두 가지 읽기/쓰기 용량 모드가 있습니다.

  • On-demand

  • Provisioned (default, free-tier eligible)

읽기/쓰기 용량 모드는 읽기 및 쓰기 처리량에 대한 청구 방법과 용량 관리 방법을 제어합니다. 테이블을 생성할 때 읽기/쓰기 용량 모드를 설정하거나 나중에 변경할 수 있습니다.

로컬 보조 인덱스는 기본 테이블에서 읽기/쓰기 용량 모드를 상속합니다. 자세한 정보는 읽기/쓰기 용량 모드 변경 시 고려 사항 단원을 참조하십시오.

On-Demand Mode

Amazon DynamoDB 온디맨드는 용량 계획 없이 초당 수천 개의 요청을 처리할 수 있는 유연한 청구 옵션입니다. DynamoDB 온디맨드는 읽기 및 쓰기 요청에 대해 요청당 지불 가격을 제공하므로 사용하는 만큼에 대해서만 비용을 지불하면 됩니다.

온디맨드 모드를 선택하면 DynamoDB는 이전에 도달한 트래픽 수준까지 확장 또는 축소할 때 즉시 워크로드를 수용합니다. 워크로드 트래픽 수준이 새로운 피크를 기록할 경우에는 DynamoDB가 워크로드를 수용하기 위해 신속하게 조정을 수행합니다. 온디맨드 모드를 사용하는 테이블은 DynamoDB가 이미 제공하는 것과 동일한 한 자릿수 밀리초 지연 시간, 서비스 수준 계약(SLA) 약정 및 보안을 제공합니다. 새로운 테이블과 기존 테이블에 모두 온디맨드를 선택할 수 있으며, 코드를 변경하지 않고 기존 DynamoDB API를 계속 사용할 수 있습니다.

온디맨드 모드는 다음 중 하나에 해당되는 경우에 유용한 옵션입니다.

  • You create new tables with unknown workloads.

  • You have unpredictable application traffic.

  • You prefer the ease of paying for only what you use.

요청 빈도는 DynamoDB 처리량 기본 테이블 할당량에 의해서만 제한되지만, 요청에 따라 늘릴 수 있습니다. 자세한 정보는 처리량 기본 할당량 단원을 참조하십시오.

온디맨드 방식으로 시작하려면 온디맨드 모드를 사용하도록 테이블을 생성하거나 업데이트할 수 있습니다. 자세한 정보는 DynamoDB 테이블에 대한 기본 작업 단원을 참조하십시오.

24시간마다 한 번 읽기/쓰기 용량 모드를 전환할 수 있습니다. 읽기/쓰기 용량 모드를 전환할 때 고려해야 하는 문제는 읽기/쓰기 용량 모드 변경 시 고려 사항 단원을 참조하십시오.

참고

온디맨드는 현재 DynamoDB 가져오기/내보내기 도구에서 지원되지 않습니다.

Read Request Units and Write Request Units

온디맨드 모드 테이블의 경우 애플리케이션에서 수행할 것으로 예상되는 읽기 및 쓰기 처리량을 지정할 필요가 없습니다. DynamoDB에서는 읽기 요청 단위 및 쓰기 요청 단위의 측면에서 애플리케이션이 테이블에 대해 수행하는 읽기 및 쓰기에 대해 요금이 부과됩니다.

  • One read request unit represents one strongly consistent read request, or two eventually consistent read requests, for an item up to 4 KB in size. Two read request units represent one transactional read for items up to 4 KB. If you need to read an item that is larger than 4 KB, DynamoDB needs additional read request units. The total number of read request units required depends on the item size, and whether you want an eventually consistent or strongly consistent read. For example, if your item size is 8 KB, you require 2 read request units to sustain one strongly consistent read, 1 read request unit if you choose eventually consistent reads, or 4 read request units for a transactional read request.

    참고

    To learn more about DynamoDB read consistency models, see Read Consistency.

  • One write request unit represents one write for an item up to 1 KB in size. If you need to write an item that is larger than 1 KB, DynamoDB needs to consume additional write request units. Transactional write requests require 2 write request units to perform one write for items up to 1 KB. The total number of write request units required depends on the item size. For example, if your item size is 2 KB, you require 2 write request units to sustain one write request or 4 write request units for a transactional write request.

DynamoDB 온디맨드를 사용할 수 있는 AWS 리전 목록은 Amazon DynamoDB 요금을 참조하십시오.

Peak Traffic and Scaling Properties

온디맨드 용량 모드를 사용하는 DynamoDB 테이블은 애플리케이션의 트래픽 볼륨에 따라 자동으로 조정됩니다. 온디맨드 용량 모드의 테이블은 이전 패크 트래픽의 최대 2배 용량을 즉시 수용합니다. 예를 들어, 애플리케이션의 트래픽 패턴이 25,000~50,000회 사이의 강력히 일관된 초당 읽기 범위 내에서 달라지고 이전 트래픽 피크의 초당 읽기 횟수가 50,000회인 경우 온디맨드 용량 모드에서는 초당 최대 100,000회 읽기 지속적 트래픽을 즉시 수용합니다. 애플리케이션이 초당 100,000회 읽기 트래픽을 지속하는 경우 해당 피크가 새로운 이전 피크가 되어 후속 트래픽은 초당 최대 200,000회 읽기에 도달할 수 있습니다.

테이블에 이전 피크의 2배 이상 용량이 필요한 경우 DynamoDB는 트래픽 볼륨이 증가할 때 워크로드 조절이 발생하지 않도록 더 많은 용량을 자동으로 할당합니다. 하지만 30분 이내에 이전 피크의 2배 용량을 초과할 경우 조절이 발생할 수 있습니다. 예를 들어, 애플리케이션의 트래픽 패턴이 25,000~50,000회 사이의 강력히 일관된 초당 읽기 범위 내에서 달라지고 이전에 도달한 트래픽 피크의 초당 읽기 횟수가 50,000회인 경우 DynamoDB에서 최대 100,000회 이상 읽기를 구동하기 이전에 최소 30분 이상의 간격을 두고 트래픽을 늘리는 것이 좋습니다.

Initial Throughput for On-Demand Capacity Mode

최근에 처음으로 기존 테이블을 온디맨드 용량 모드로 전환했거나 온디맨드 용량 모드를 활성화한 상태에서 새 테이블을 생성한 경우, 이전에 온디맨드 용량 모드를 사용하여 테이블에서 트래픽을 처리한 적이 없더라도 테이블의 이전 피크 설정은 다음과 같습니다.

  • Newly created table with on-demand capacity mode: The previous peak is 2,000 write request units or 6,000 read request units. You can drive up to double the previous peak immediately, which enables newly created on-demand tables to serve up to 4,000 write request units or 12,000 read request units, or any linear combination of the two.

  • Existing table switched to on-demand capacity mode: The previous peak is half the maximum write capacity units and read capacity units provisioned since the table was created, or the settings for a newly created table with on-demand capacity mode, whichever is higher. In other words, your table will deliver at least as much throughput as it did prior to switching to on-demand capacity mode.

Table Behavior while Switching Read/Write Capacity Mode

테이블을 프로비저닝된 용량 모드에서 온디맨드 용량 모드로 전환할 경우 DynamoDB에서 테이블 및 파티션의 구조가 다양하게 변경됩니다. 이 프로세스는 몇 분 정도 걸릴 수 있습니다. 전환 기간 동안 테이블은 이전에 프로비저닝된 쓰기 용량 단위 및 읽기 용량 단위량과 일치하는 처리량을 제공합니다. 온디맨드 용량 모드에서 프로비저닝된 용량 모드로 다시 전환할 경우 테이블이 온디맨드 용량 모드로 설정되었을 때 도달한 이전 피크와 일치하는 처리량을 제공합니다.

Provisioned Mode

프로비저닝된 모드를 선택한 경우 애플리케이션에 필요한 초당 읽기 및 쓰기 횟수를 지정합니다. Auto Scaling을 사용하여 트래픽 변경에 따라 테이블의 프로비저닝된 용량을 자동으로 조정할 수 있습니다. 그러면 DynamoDB 사용을 정의된 요청 속도 이하로 유지하도록 관리하여 비용을 예측하는 데 도움이 됩니다.

프로비저닝된 모드는 다음 중 하나에 해당되는 경우에 유용한 옵션입니다.

  • You have predictable application traffic.

  • You run applications whose traffic is consistent or ramps gradually.

  • You can forecast capacity requirements to control costs.

Read Capacity Units and Write Capacity Units

프로비저닝된 모드 테이블의 경우 읽기 용량 단위(RCU) 및 쓰기 용량 단위(WCU)의 측면에서 처리량을 지정합니다.

  • One read capacity unit represents one strongly consistent read per second, or two eventually consistent reads per second, for an item up to 4 KB in size. Transactional read requests require two read capacity units to perform one read per second for items up to 4 KB. If you need to read an item that is larger than 4 KB, DynamoDB must consume additional read capacity units. The total number of read capacity units required depends on the item size, and whether you want an eventually consistent or strongly consistent read. For example, if your item size is 8 KB, you require 2 read capacity units to sustain one strongly consistent read per second, 1 read capacity unit if you choose eventually consistent reads, or 4 read capacity units for a transactional read request. For more information, see 읽기 작업의 용량 단위 소비량.

    참고

    To learn more about DynamoDB read consistency models, see Read Consistency.

  • One write capacity unit represents one write per second for an item up to 1 KB in size. If you need to write an item that is larger than 1 KB, DynamoDB must consume additional write capacity units. Transactional write requests require 2 write capacity units to perform one write per second for items up to 1 KB. The total number of write capacity units required depends on the item size. For example, if your item size is 2 KB, you require 2 write capacity units to sustain one write request per second or 4 write capacity units for a transactional write request. For more information, see 쓰기 작업의 용량 단위 소비량.

중요

온디맨드 테이블에서 DescribeTable을 호출할 경우 읽기 용량 단위와 쓰기 용량 단위는 0으로 설정됩니다.

애플리케이션이 더 큰 항목(400 KB의 DynamoDB 최대 항목 크기까지)을 읽거나 쓸 경우 더 많은 용량 유닛을 사용합니다.

예를 들어 6 읽기 용량 단위와 6 쓰기 용량 단위를 수용하는 프로비저닝된 테이블을 생성한다고 가정하겠습니다. 이렇게 설정하면 애플리케이션에서 다음을 수행할 수 있습니다.

  • Perform strongly consistent reads of up to 24 KB per second (4 KB × 6 read capacity units).

  • Perform eventually consistent reads of up to 48 KB per second (twice as much read throughput).

  • Perform transactional read requests of up to 12 KB per second.

  • Write up to 6 KB per second (1 KB × 6 write capacity units).

  • Perform transactional write requests of up to 3 KB per second.

자세한 정보는 DynamoDB 프로비저닝된 용량 테이블의 설정 관리 단원을 참조하십시오.

Provisioned throughput 은 애플리케이션이 테이블 또는 인덱스에서 사용할 수 있는 최대 용량입니다. 테이블 또는 인덱스에 대해 프로비저닝된 처리량을 애플리케이션에서 초과할 경우 요청 조정이 적용됩니다.

조절 기능은 애플리케이션에서 용량 단위를 너무 많이 사용하지 않도록 방지합니다. 요청이 취소되면 HTTP 400 코드(Bad Request) ProvisionedThroughputExceededException. AWS sdks는 제한 요청을 재시도하는 데 필요한 지원을 제공합니다(참조). 오류 재시도 횟수 및 지수 백오프을(를) 직접 작성할 필요가 없습니다.

AWS Management 콘솔을 사용하여 프로비저닝된 처리량과 실제 처리량을 모니터링하고, 필요한 경우 처리량 설정을 수정할 수 있습니다.

DynamoDB Auto Scaling

DynamoDB Auto Scaling은 테이블 및 글로벌 보조 인덱스의 처리량을 적극적으로 관리합니다. Auto Scaling을 사용하면 읽기 및 쓰기 용량 단위에 범위(상한 및 하한)를 지정할 수 있습니다. 또한 해당 범위에서의 목표 사용률을 정의할 수 있습니다. DynamoDB Auto Scaling은 애플리케이션 워크로드가 증가하거나 감소하는 경우에도 목표 사용률을 유지하려고 시도합니다.

DynamoDB Auto Scaling을 사용하면 테이블 또는 글로벌 보조 인덱스가 프로비저닝된 읽기 및 쓰기 용량을 늘려 조절 요청 없이 갑작스러운 트래픽 증가를 처리할 수 있습니다. 워크로드가 감소할 경우 DynamoDB Auto Scaling은 사용하지 않는 프로비저닝된 용량에 대한 요금을 지불하지 않도록 처리량을 줄일 수 있습니다.

참고

AWS Management 콘솔을 사용하여 테이블이나 글로벌 보조 인덱스를 생성한 경우 DynamoDB Auto Scaling이 기본적으로 활성화됩니다.

Auto Scaling 설정은 콘솔, AWS CLI 또는 AWS SDK 중 하나를 사용하여 언제든지 관리할 수 있습니다.

자세한 정보는 DynamoDB Auto Scaling을 사용하여 자동으로 처리 용량 관리 단원을 참조하십시오.

Reserved Capacity

마찬가지로 DynamoDB 고객이 reserved capacity 앞서 설명한 대로 Amazon DynamoDB 가격 책정. 예약 용량을 구입할 경우 선결제 요금을 1회 지불하고 일정 기간에 대해 최소 프로비저닝된 사용량 수준을 약정합니다. 예약 용량에는 시간당 예약 용량 요금이 청구됩니다. 사전에 읽기 및 쓰기 용량 단위를 예약하면 온 디맨드 프로비저닝된 처리량 설정에 비해 비용을 크게 절감할 수 있습니다. 예약 용량을 초과하여 프로비저닝하는 용량에는 프로비저닝된 용량 표준 요금이 청구됩니다.

참고

온디맨드 모드에서는 예약된 용량을 사용할 수 없습니다.

예약 용량을 관리하려면 DynamoDB 콘솔로 이동하여 [Reserved Capacity]를 선택합니다.

참고

사용자에게 콘솔의 나머지 기능은 액세스를 허용하지만 예약 용량 확인 또는 구매는 금지할 수 있습니다. 자세한 내용은 Amazon DynamoDB의 자격 증명 및 액세스 관리의 "예약 용량 상품 구매를 방지하는 권한을 부여"를 참조하십시오.