How do I resolve issues with Amazon DynamoDB auto scaling?

2 minute read

I turned on Amazon DynamoDB auto scaling on my table, but it's not working as expected. Or, my activity is still being throttled.

Short description

DynamoDB auto scaling creates Amazon CloudWatch alarms on your behalf. When an alarm is set off, the CloudWatch alarm invokes AWS Application Auto Scaling that then notifies DynamoDB to adjust the table's provisioned throughput capacity.

DynamoDB auto scaling modifies provisioned throughput only when the workload stays depressed or elevated for several minutes. For example, you set the minimum read capacity units (RCUs) to 100 and the target utilization to 70 percent:

  • DynamoDB auto scaling increases provisioned capacity when utilization exceeds 70 RCUs for at least 2 consecutive minutes.
  • DynamoDB auto scaling decreases provisioned capacity when utilization is 20% or more below the target for 15 consecutive minutes (50 RCUs).


To troubleshoot problems with DynamoDB auto scaling:

  • Be sure that you don't delete the CloudWatch alarms that DynamoDB auto scaling creates. When you delete alarms, DynamoDB auto scaling might not work as expected. If you accidentally delete the CloudWatch alarms, then turn off auto scaling and then activate it on the table. CloudWatch automatically recreates the alarms.
  • Don't rely on DynamoDB auto scaling to handle occasional short-duration activity spikes. DynamoDB auto scaling works best when there are gradual increases or decreases in traffic. The table's built-in burst capacity handles occasional activity spikes.
  • If the table's traffic is frequently unpredictable, then use an UpdateTable operation to set the billing mode to PAY_PER_REQUEST. This activates on-demand mode to adapt throughput to handle the workload.
AWS OFFICIALUpdated 7 months ago