Bird
Raised Fist0
DynamoDBquery~5 mins

Auto-scaling configuration in DynamoDB

Choose your learning style10 modes available
Introduction

Auto-scaling helps your database adjust its capacity automatically. This keeps performance steady and saves money.

When your app has changing traffic during the day.
If you want to avoid manual changes to database capacity.
To handle sudden spikes in users without slowing down.
When you want to save costs by scaling down during low use.
To keep your database responsive without guessing traffic.
Syntax
DynamoDB
aws application-autoscaling register-scalable-target \
  --service-namespace dynamodb \
  --resource-id table/YourTableName \
  --scalable-dimension dynamodb:table:ReadCapacityUnits \
  --min-capacity 5 \
  --max-capacity 100

aws application-autoscaling put-scaling-policy \
  --service-namespace dynamodb \
  --resource-id table/YourTableName \
  --scalable-dimension dynamodb:table:ReadCapacityUnits \
  --policy-name MyScalingPolicy \
  --policy-type TargetTrackingScaling \
  --target-tracking-scaling-policy-configuration file://config.json

The first command sets the min and max capacity for your table.

The second command creates a policy to adjust capacity based on usage.

Examples
Registers write capacity scaling for the 'Orders' table with min 10 and max 200 units.
DynamoDB
aws application-autoscaling register-scalable-target \
  --service-namespace dynamodb \
  --resource-id table/Orders \
  --scalable-dimension dynamodb:table:WriteCapacityUnits \
  --min-capacity 10 \
  --max-capacity 200
This JSON config sets the target usage at 70% for write capacity with cooldown times.
DynamoDB
{
  "TargetValue": 70.0,
  "PredefinedMetricSpecification": {
    "PredefinedMetricType": "DynamoDBWriteCapacityUtilization"
  },
  "ScaleOutCooldown": 60,
  "ScaleInCooldown": 60
}
Sample Program

This example sets auto-scaling for the 'Books' table read capacity. It keeps usage near 70% by scaling between 5 and 50 units.

DynamoDB
aws application-autoscaling register-scalable-target \
  --service-namespace dynamodb \
  --resource-id table/Books \
  --scalable-dimension dynamodb:table:ReadCapacityUnits \
  --min-capacity 5 \
  --max-capacity 50

aws application-autoscaling put-scaling-policy \
  --service-namespace dynamodb \
  --resource-id table/Books \
  --scalable-dimension dynamodb:table:ReadCapacityUnits \
  --policy-name ReadCapacityScalingPolicy \
  --policy-type TargetTrackingScaling \
  --target-tracking-scaling-policy-configuration '{
    "TargetValue": 70.0,
    "PredefinedMetricSpecification": {
      "PredefinedMetricType": "DynamoDBReadCapacityUtilization"
    },
    "ScaleOutCooldown": 60,
    "ScaleInCooldown": 60
  }'
OutputSuccess
Important Notes

Auto-scaling only works if your table uses provisioned capacity mode.

Cooldown times help avoid too many scaling actions in a short time.

Monitor your scaling policies to make sure they fit your app's needs.

Summary

Auto-scaling adjusts database capacity automatically based on usage.

You set minimum and maximum capacity limits to control scaling.

Target tracking policies keep usage near a set percentage for smooth performance.

Practice

(1/5)
1. What is the main purpose of auto-scaling in DynamoDB?
easy
A. To encrypt data stored in the table
B. To manually set fixed capacity limits
C. To backup data at regular intervals
D. To automatically adjust read and write capacity based on traffic

Solution

  1. Step 1: Understand auto-scaling function

    Auto-scaling automatically changes capacity to match traffic demands.
  2. Step 2: Compare options

    Only To automatically adjust read and write capacity based on traffic describes automatic adjustment of capacity based on traffic.
  3. Final Answer:

    To automatically adjust read and write capacity based on traffic -> Option D
  4. Quick Check:

    Auto-scaling adjusts capacity automatically = A [OK]
Hint: Auto-scaling means automatic capacity adjustment [OK]
Common Mistakes:
  • Confusing auto-scaling with manual capacity setting
  • Thinking auto-scaling handles backups
  • Mixing encryption with scaling
2. Which of the following is the correct way to specify the minimum capacity units in a DynamoDB auto-scaling policy JSON snippet?
easy
A. "MinCapacity": 5
B. "MinimumCapacityUnits": 5
C. "min_capacity": 5
D. "Min_Capacity": 5

Solution

  1. Step 1: Recall DynamoDB auto-scaling JSON keys

    The correct key for minimum capacity is "MinCapacity" with camel case and no underscores.
  2. Step 2: Check options

    Only "MinCapacity": 5 matches the exact key syntax "MinCapacity".
  3. Final Answer:

    "MinCapacity": 5 -> Option A
  4. Quick Check:

    Correct JSON key for minimum capacity = B [OK]
Hint: Use exact key names with correct casing in JSON [OK]
Common Mistakes:
  • Using underscores instead of camel case
  • Adding extra words like 'Units'
  • Incorrect capitalization
3. Given this auto-scaling target tracking policy snippet:
{
  "TargetValue": 70.0,
  "ScaleInCooldown": 60,
  "ScaleOutCooldown": 60
}

What does the TargetValue represent?
medium
A. The maximum capacity units allowed
B. The cooldown time in seconds
C. The desired utilization percentage of capacity
D. The minimum capacity units allowed

Solution

  1. Step 1: Understand TargetValue meaning

    TargetValue sets the target utilization percentage for capacity usage.
  2. Step 2: Analyze options

    The desired utilization percentage of capacity correctly describes TargetValue as desired utilization percent (70%).
  3. Final Answer:

    The desired utilization percentage of capacity -> Option C
  4. Quick Check:

    TargetValue = utilization percent = C [OK]
Hint: TargetValue sets target usage percent, not capacity units [OK]
Common Mistakes:
  • Confusing TargetValue with capacity limits
  • Mixing cooldown times with TargetValue
  • Thinking TargetValue is a fixed capacity number
4. You have this auto-scaling policy JSON snippet:
{
  "MinCapacity": 5,
  "MaxCapacity": 100,
  "TargetValue": 80.0,
  "ScaleInCooldown": 30,
  "ScaleOutCooldown": 30
}

But the policy is not working as expected. What is the likely error?
medium
A. MinCapacity is greater than MaxCapacity
B. Missing required field for resource ID
C. TargetValue should be between 0 and 1, not 80.0
D. Cooldown times are too short and cause rapid scaling

Solution

  1. Step 1: Check capacity and cooldown values

    MinCapacity (5) is less than MaxCapacity (100), cooldowns are valid numbers.
  2. Step 2: Identify missing required fields

    Auto-scaling policies require resource identifiers (like ResourceId) to apply the policy.
  3. Step 3: Confirm TargetValue range

    TargetValue is a percentage and 80.0 is valid.
  4. Final Answer:

    Missing required field for resource ID -> Option B
  5. Quick Check:

    Missing resource ID causes policy failure = A [OK]
Hint: Check for all required fields, not just values [OK]
Common Mistakes:
  • Assuming cooldown times cause failure
  • Misreading TargetValue scale
  • Ignoring missing resource identifiers
5. You want to configure auto-scaling for a DynamoDB table with unpredictable traffic spikes. Which combination of settings will best ensure smooth scaling without throttling or overspending?
{
  "MinCapacity": 10,
  "MaxCapacity": 200,
  "TargetValue": 70.0,
  "ScaleInCooldown": 120,
  "ScaleOutCooldown": 30
}
hard
A. Set a low MinCapacity, high MaxCapacity, fast ScaleOutCooldown, slow ScaleInCooldown
B. Set MinCapacity equal to MaxCapacity for fixed capacity
C. Set very fast ScaleInCooldown and ScaleOutCooldown both to 10 seconds
D. Set TargetValue to 100 to maximize usage

Solution

  1. Step 1: Understand traffic spikes impact

    Unpredictable spikes need quick scaling out to avoid throttling and slower scaling in to avoid rapid capacity drops.
  2. Step 2: Analyze given settings

    Low MinCapacity saves cost, high MaxCapacity allows growth, fast ScaleOutCooldown (30s) reacts quickly, slow ScaleInCooldown (120s) prevents rapid scale down.
  3. Step 3: Evaluate other options

    Fixed capacity ignores spikes, very fast cooldowns cause thrashing, setting TargetValue to 100 risks overprovisioning.
  4. Final Answer:

    Set a low MinCapacity, high MaxCapacity, fast ScaleOutCooldown, slow ScaleInCooldown -> Option A
  5. Quick Check:

    Fast scale out + slow scale in = smooth scaling = D [OK]
Hint: Fast scale out, slow scale in for spike handling [OK]
Common Mistakes:
  • Setting fixed capacity ignoring spikes
  • Using equal cooldowns causing rapid scaling
  • Setting TargetValue too high causing overspending
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard