Skip to content

Application Auto Scaling

Application Auto Scaling is a web service for developers and system administrators who need a solution for automatically scaling their scalable resources for individual AWS services beyond Amazon EC2.

Services

  • Comprehend
  • DynamoDB
  • ECS: supports both Target Tracking (ECSServiceAverageCPUUtilization) and Step scaling - target tracking is preferred over step scaling.
  • ElastiCache
  • EMR
  • Lambda
  • SageMaker
  • Spot Fleet
  • Aurora

NOTE: RDS is not part of the above list. Autoscaling is not applicable for RDS databases.

Types of scaling

Target Tracking

Target Tracking is preferred for dynamic scaling scenarios.

Scheduled Scaling

For example, let's say that every week the traffic to your web application starts to increase on Wednesday, remains high on Thursday, and starts to decrease on Friday. You can configure a schedule for Application Auto Scaling to increase capacity on Wednesday and decrease capacity on Friday.

You can temporarily turn off scheduled scaling for a scalable target.

Limitations

  • The names of scheduled actions must be unique per scalable target.
  • Application Auto Scaling doesn't provide second-level precision in schedule expressions. The finest resolution using a cron expression is 1 minute.
  • The scalable target can't be an Amazon MSK cluster. Scheduled scaling is not supported for Amazon MSK.

Step Scaling:

You cannot create step scaling policies for certain services. Step scaling policies are not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, ElastiCache, or Neptune.

Use Cases

Handling Heavy Workloads

  • Use scheduled scaling to add extra capacity to meet a heavy load before it arrives, and then remove the extra capacity when it's no longer required.
  • Use a target tracking scaling policy to scale your application based on current resource utilization.