AWS Auto Scaling is a service that automatically monitors and adjusts compute resources to maintain performance for applications hosted in the Amazon Web Services (AWS) public cloud.
AWS Auto Scaling automatically discovers and tracks the performance of all the scalable resources -- which can span various cloud services -- that support a user's application. These resources include Elastic Compute Cloud (EC2) Auto Scaling groups, Amazon Elastic Container Service (ECS) components, EC2 Spot Fleets, DynamoDB global secondary indexes or tables, and Aurora replicas or clusters. As demand spikes, the AWS Auto Scaling service can automatically scale those resources, and, as demand drops, scale them back down.
With the AWS Auto Scaling service, you can configure one unified scaling policy per application source, such as an AWS CloudFormation stack or a set of resource tags. Then, you can add each scalable resource that supports your application to the scaling plan, and define the utilization targets based on which those resources should scale. You can choose to prioritize application availability, cost optimization or a combination of the two.
The service also offers recommendations for scaling policies based on metrics and thresholds that are popular among AWS users. In addition, it enables you to visualize resource utilization across different services in a single user interface.
AWS Auto Scaling differs from the cloud provider's Auto Scaling tool, which only can scale individual services. This tool, which includes two different APIs, enables step scaling policies and scheduled scaling, neither of which AWS Auto Scaling supports. AWS also provides an EC2 Auto Scaling tool, which enables you to scale groups of EC2 instances.
A customer does not pay to use the AWS Auto Scaling service, but does pay for the resources it scales and services it uses, such as Amazon CloudWatch.