Home › Forums › AWS › AWS Certified Solutions Architect Associate › Simple scaling and Target tracking
-
I find it very confusing to decide whether we need to use simple scaling or target tracking for a particular scenario. For instance, the notes says for simple tracking an example of CPU utilization above 80% creating a cloudWatch alarm which in turn can be used for scaling. But isn’t target tracking also doing similar where in you choose the metric as CPU utilization and a value as 80. So I can achieve the same objective with both simple scaling and target tracking. Hence which one should I use. Is there a recommendation or a best practice?
- This discussion was modified 3 years, 5 months ago by vinodache.
-
Hello vinodache,
Thanks for your question,
As for simple scaling, you don’t maintain a particular CPU utilization. You basically just have to define the threshold levels at which your ASG will scale in and out. In target tracking, you specify a CPU utilization that you want your ASG to maintain. For example, you want to maintain an average CPU utilization of 70% at all times. ASG will attempt to maintain this utilization by scaling out instances. So if the ave CPU utilization crosses 70%, ASG will create new instances to balance the load across the instances.
Let me know if this helps.
Regards,
Carlo @ Tutorials Dojo
-
I was referring to the link
https://tutorialsdojo.com/step-scaling-vs-simple-scaling-policies-in-amazon-ec2/
Here the below as the details provided for simple scaling;
Simple scaling relies on a metric as a basis for scaling. For example, you can set a CloudWatch alarm to have a CPU Utilization threshold of 80%, and then set the scaling policy to add 20% more capacity to your Auto Scaling group by launching new instances. Accordingly, you can also set a CloudWatch alarm to have a CPU utilization threshold of 30%. When the threshold is met, the Auto Scaling group will remove 20% of its capacity by terminating EC2 instances.
-
-
Hello Vinodache,
Yup. I just summarized that statement in my last reply.
Simple scaling = You define two threshold levels (ex: scale in when CPU utilization is 30%, scale-out when CPU utilization is 80%).
Target tracking = You define a target value (ex: 50% CPU utilization) for your ASG that the Auto Scaling service will maintain. Auto Scaling dynamically resizes your ASG to meet changes in demand based on that target value. This works similarly to a thermostat so it’s basically set and forget.
In simple scaling, you have full control over when your ASG should scale in or out. As for Target tracking, you don’t as AWS already takes care of this.
As for the use case, it depends on the workload, I say use Target tracking for applications that need consistent CPU utilization at all times. Use simple scaling for applications with workloads that play around a certain range. Or if you have an application that receives occasional bursts throughout the day, simple scaling would also make sense. According to AWS docs, “A target tracking scaling policy is more aggressive in adding capacity when utilization increases than it is in removing capacity when utilization decreases.” so obviously this will also transfer to cost. For example, I wouldn’t want to maintain a 60% CPU utilization at all times if some of my instances are being underused in the first place.
Let me know if this helps,
Carlo @ Tutorials Dojo
- This reply was modified 3 years, 5 months ago by Carlo-TutorialsDojo.
Log in to reply.