Amazon DynamoDB는 짧은 간격으로 급증하는 로드를 어떻게 처리하나요?

2분 분량
0

Amazon DynamoDB가 급증하는 워크로드를 짧은 간격으로 처리하는 방법을 알고 싶습니다.

해결 방법


프로비저닝 모드를 사용하는 경우 DynamoDB는 버스트 용량을 제공하여 파티션별 처리량 프로비저닝에 어느 정도의 유연성을 제공합니다. DynamoDB는 현재 최대 5분 (300초) 의 미사용 읽기 및 쓰기 용량을 보유하고 있습니다. DynamoDB 테이블의 용량이 RCU 150개로 프로비저닝 되고 지난 5분 동안 사용량이 없다고 가정해 보겠습니다. 이 구성의 경우 테이블에는 45,000개의 읽기 단위 버스트 용량 (150\ * 300) 이 있습니다. 따라서 갑자기 급증하는 로드로 인해 소비량이 읽기 단위 200개로 늘어나면 DynamoDB는 버스트 용량을 활용하여 15분 동안 200개의 RCU를 수용할 수 있습니다.

예시: 45,000/ (200 - 150) = 900초 = 15분

하지만 다음 사항을 고려해 보세요:

  • 버스트 용량은 최선을 다해 제공되며 보장되지는 않습니다. 따라서 테이블의 프로비저닝 된 용량을 구성할 때는 버스트 용량을 고려하지 마세요.
  • DynamoDB는 사전 통지 없이 백그라운드 유지 관리 및 기타 작업에 버스트 용량을 소비할 수 있습니다.
  • 버스트 용량은 파티션 수준의 스로틀링을 완화할 수 없습니다. 카디널리티가 높지 않은 파티션 키는 몇 개의 파티션만을 대상으로 하는 요청이 많을 수 있습니다. 생성된 핫 파티션이 초 당 3,000RCU 또는 1,000WCU 또는 이 둘의 조합인 파티션당 제한값을 초과할 경우 테이블 스로틀이 발생합니다.

자세한 내용은 버스트 용량의 효과적인 사용을 참조하십시오.

온디맨드 용량 모드에서는 DynamoDB가 애플리케이션의 트래픽 볼륨에 맞게 자동으로 조정됩니다. 온디맨드 용량 모드는 테이블의 이전 피크 트래픽을 최대 두 배까지 즉시 수용할 수 있습니다. 애플리케이션의 트래픽 패턴이 초 당 25,000~50,000개의 일관된 읽기로 다양하고 초 당 50,000개 읽기가 이전 트래픽 피크라고 가정해 보겠습니다. 이 경우 온디맨드 용량 모드는 초 당 최대 100,000회 읽기의 지속적인 트래픽을 즉시 수용합니다. 애플리케이션이 초 당 100,000건의 읽기 트래픽을 유지하는 경우 해당 피크가 새로운 이전 피크가 됩니다. 이 새로운 피크로 인해 후속 트래픽은 초 당 최대 200,000건의 읽기에 도달할 수 있습니다.

그러나 스파이크가 거의 즉각적이고 이전 최고점의 두 배 이상이면 테이블이 스로틀링 될 수 있습니다. 자세한 내용은 읽기/쓰기 용량 모드를 참조하세요.

AWS 공식
AWS 공식업데이트됨 일 년 전