Azure for AWS professionals - Auto Scaling - Azure VMSS vs AWS Auto Scaling@20aman Jul 10, 2019
Note that this post is a part of the series. You can view all posts in this series here: Azure for AWS professionals - Index
Autoscaling is a key aspect of Infrastructure as a Service (IaaS) in the cloud. The demand for the service and therefore the load on your applications will vary based on various factors. It will vary as per:
- The time of the day
- The day of the month
- Any holidays
- Any special events etc.
Your application needs to scale out or scale in based on the dynamic demands. You can NOT find a perfect mix and pre-determine the exact number of instances (of Virtual machines or EC2) that you need to run. If you will define the lower number then the performance will suffer. On the other hand, if you overestimate then you will be looking at costly bills. You always want to optimize between Cost and Performance.
This is where Autoscaling comes into the picture. With this, you can have rules in place that will automatically scale out or scale in your number of instances running the application.
As a pre-requisite, you need to have the application which can be deployed on multiple instances behind a load-balancer.
Both Azure and AWS provide out of the box services for this functionality. In both platforms, you can define rules as to how the scaling should occur in an automated fashion. E.g. you can have the number of instances increase by 1 if the average CPU percentage usage increases more than 75%. And also another rule for decreasing the number of instances by 1 if the average CPU percentage usage reduces below 25%.
Microsoft Azure has package everything into one service called Virtual Machine Scale Set or more popularly known as VMSS. Even the automation for autoscaling is also built directly into this service and is as easy as setting up a few configurations.
Amazon's AWS also has this capability, although this is scattered over different services. These include:
- Launch Configurations - a pre-packaged set of configurations that define how to set up new EC2 instances
- Launch Templates - newer way to do the same thing as Launch Configurations. These have more features like versioning, etc.
- Auto Scaling Groups - a load-balanced group of EC2 instances
- AWS Auto Scaling - a newer service providing the automation for scaling out and scaling in of EC2 instances
We will be working on these services in the next few posts and taking a closer look at each of these.