AWS Auto Scaling
This is part of a blog series giving a high level overview of the different services examined on the AWS Solution Architect Associate exam, to view the whole series click here.
Auto Scaling Summary
- Monitors and scales applications to optimise performance and costs.
- Can be used across a number of different services including EC2 instances, ECS tasks, Aurora replicas and DynamoDB tables.
- You can create scaling plans to automate how resources respond to changing demands.
- Allows you to maintain optimal level of performance even under unpredictable or constantly changing workloads.
Auto Scaling offers both dynamic scaling and predictive scaling options:
- Allows you to maintain a specific level of resources utilisation at all times e.g. keep specific number of EC2 instances at all times.
- For this you can create a target tracking scaling policy and then health checks are performed to ensure resource level is maintained. e.g with an EC2 instance, if one is unhealthy it is auto terminated and a new one is started.
Predictive is only available for EC2 auto scaling groups and the scaling can work in a number of ways:
- Set Maximum Capacity
- You specify minimum and maximum instances or desired capacity required and EC2 autoscaling manages the progress of creating/terminating based on what you have specified.
2. Scale Based on a schedule
- Scaling performed as a function of time to reflect forecasted load.
- For example, if you know there will be increased load on the application at 9am every morning you can choose to scale at this time
3. Scale based on load forecasting
- Auto Scaling analyses the history of your applications load for up to 14 days and then uses this predict to the load for the next 2 days.