Updated: Jan 25
Virtual machine scale sets refer to a group of separate VMs sharing the same image used in the deployment process, meaning that all VM's are managed as a group and NOT as a single server. By managing VM's as a group, we will have the option to control the workload on our servers, meaning that we can scale out manually or according to predefined conditions (which is mandatory for handling unpredictable load).
So what it means is that we create a group of identical VMs, and we use the "Scale Set" service to monitor it; when the scale set identifies a heavy load, it can quickly scale them up by adding new VMs (based on the same image) that will share the load more effectively in this group. And in addition, when the load is no longer there, the scale set can scale them in, meaning it can remove the VMs that are not needed anymore and return to the original number of VMs in this group.
It's important to know that once a scale set is configured, the machines in that group should not be modified (Ie, Install new apps, change system files, etc.)because new machines created by the scale set will be based on the original image only (meaning that your new configuration will be lost). Now, if you must modify the image, you should create a new image and adjust the base image of the scale set to be the same. So make sure that when you create a scale set to base it on a final image that will not be changed anytime soon.
When using web apps, a load balancer should be put in front of the scale set. And that's because, for Web Apps, the end-user calls a specific address (IP/Domain Name). When we have more than one instance, we should tell the end-user which instance to use, and this is the same task fulfilled by the load balancer (load balancer connect to the Scale Set and knows the number of active instances, and in addition, it exposes only a single address to the end-user).
And what about the Scale Set Pricing? Well, Scale Set is free. However, you need to pay for the VMs deployed in it. So if, for example, you defined two machines in the scale set, but now three more VMs are added due to load, you will now pay for five machines instead of the original 2.