Overview

Cloud computing promises an optimized approach to purchasing computing, storage, database and network resources by following a pay-as-you-go model but what about further optimization in the cloud providers’ ecosystem? AWS Auto Scaling gives you the ability to stick really closely with your utilization curve such that, traffic fluctuations and unprecedented spikes can be accommodated without burning a hole in your pocket.

This service has primarily two techniques for scaling resources:

  1. Dynamic Scaling – Scales the resources as per the real-time traffic changes
  2. Predictive Scaling – Predicts future traffic including spike patterns and then provisions the right number of resources. Highly profitable for less volatile use cases.

Benefits of AWS Auto Scaling

  • Simplify the scaling exercise of your team by setting target utilization levels
  • Reduce cloud costs by optimizing the resource utilization
  • Automate performance levels by ensuring your operations with a desired capacity
  • Build a highly available system with the ability to handle unexpected peaks
  • A fault-tolerant system that replaces corrupt instances automatically

What to scale with AWS Auto Scaling?

Auto Scaling can be set up for multiple resources across multiple services, providing a unified interface to configure and manage automatic scaling for the following services:

Amazon EC2

Auto scaling can be used to terminate or launch EC2 instances based on the dynamic scaling policy. While that is a default, you can set Target tracking scaling to modify your scaling requirements based on CloudWatch metrics. You also have the option to introduce step scaling which asses the size of an alarm breach and acts upon the request. Then we have simple scaling, based on a single scaling adjustment with a cooldown period between each scaling activity.

Amazon ECS

ECS is another such service that can be paired with CloudWatch metrics to set up an Auto Scaling behaviour and benefit from its optimization. It supports similar policies to EC2, Target scaling and step scaling but has a different approach called scheduled scaling, which can be used in case of no traffic use cases.

Amazon EC2 Spot Fleets

Spot Fleets are great for reducing costs while maintaining a certain portion of your system under on-demand instances. Auto Scaling can launch or terminate spot fleet instances, giving more continuity to your work and avoiding interruptions. This follows a similar Target tracking and step scaling policy.

Amazon Aurora

AWS Auto Scaling can be used to automatically add or remove Aurora Replicas to handle the changes in active connections and workloads. Through this method, sudden increases in connectivity or workload can be handled and it reduces costs since newly provisioned DB instances are automatically adjusted.

Amazon DynamoDB

Database usage can be very challenging to predict, making AWS Auto Scaling an excellent use case. You can automatically adjust throughput capacity in response to actual traffic patterns and can also enable a DynamoDB table or a global secondary index to handle changes in traffic. This will prevent throttling while ensuring the availability of just enough resources.