Auto Scaling is suitable for applications that have fluctuating workloads and applications that have stable workloads. This topic describes the common application scenarios in which you can use Auto Scaling to scale Elastic Compute Service (ECS) instances and elastic container instances.
Unpredictable workload fluctuations
To demonstrate the benefits of Auto Scaling for scenarios that have unpredictable workload fluctuations, a news website is used as an example. The page views of the website increase sharply when breaking news is reported and decrease when the news becomes less hot. Traffic surges and drops are unpredictable. It is impractical and inefficient to manually adjust the number of instances, and you also may not know the exact number of instances that are required by your business.
In this case, you can use Auto Scaling to respond to unpredictable workload fluctuations. Auto Scaling allows you to create event-triggered tasks to monitor metrics such as CPU utilization, and then automatically scales your instances based on the monitoring results.
- Example 1: You can create two event-triggered tasks to trigger simple scaling rules. If the CPU utilization reaches 70% or more, one task triggers the simple scaling rule that adds three instances to your scaling group. If the CPU utilization drops below 30%, the other task triggers the simple scaling rule that removes three instances from your scaling group.
- Example 2: You can create an event-triggered task to trigger a target tracking scaling rule. This task keeps the CPU utilization of the instances at 50%.
Predictable workload fluctuations
To demonstrate the benefits of Auto Scaling for scenarios that have predictable workload fluctuations, a game company whose demand surges from 18:00 to 22:00 every day and drops after 22:00 is used as an example. It is impractical and inefficient for the company to manually adjust the number of instances.
In this case, you can use Auto Scaling to respond to predictable workload fluctuations. Auto Scaling allows you to create scheduled tasks, and then automatically scales your instances at specified points in time. You can create two scheduled tasks to trigger simple scaling rules. One task triggers the simple scaling rule that adds three instances at 17:55 each day. The other task triggers the simple scaling rule that removes three instances at 22:05 each day. Scheduled tasks help you handle the traffic spikes that occur during peak hours from 18:00 to 22:00 each day and automatically release instances during off-peak hours in an effective manner. When you use Auto Scaling, no instances remain idle, which can help you reduce costs.
Small workload fluctuations
To demonstrate the benefits of Auto Scaling for scenarios that have small workload fluctuations, a telecommunications company that has no obvious changes in demand during a course of time is used as an example. If the existing instances suddenly fail, the failed instances are difficult to be repaired or replaced in time, and the services of the telecommunications company are interrupted.
In this case, you can use Auto Scaling to perform health checks on your instances to ensure high availability of your service. Auto Scaling can automatically check the health status of your instances. If an instance is considered unhealthy, Auto Scaling automatically creates a new instance to replace the unhealthy instance to ensure your instances run as expected. You must configure the minimum number of instances in your scaling group. Auto Scaling ensures that your scaling group never goes below this size to keep your service uninterrupted.
Complex workload fluctuations
To demonstrate the benefits of Auto Scaling for scenarios that have complex workload fluctuations, a company whose daily traffic is stable but demand sometimes fluctuates is used as an example. If the company has some subscription instances and wants to adjust the number of instances only when the demand fluctuates, Auto Scaling can be used.
Auto Scaling allows you to manually add the subscription instances to your scaling group and create event-triggered tasks to monitor metrics such as CPU utilization for scaling activities. This way, Auto Scaling ensures that your instances run as expected and minimizes your costs.
Auto Scaling also allows you to create scheduled tasks and perform health checks on your instances based on your business requirements. You can use multiple Auto Scaling features at the same time to handle traffic spikes that occur in complex business scenarios and improve user experience.