# Overview

VM Auto Scaling allows you to automatically scale the number of VM instances horizontally based on the configured policy. It automatically adds new VM instances when the load increases and reduces the number of instances when the load decreases.

This automatic behavior constantly monitors the load and regularly scales the number of VM instances based on the policy threshold. The functionality ensures that:

* you have enough VM instances to handle the application loads.
* the number of replicas in the group remains within the defined limitations.

It improves efficiency by ensuring that adequate instances are available during peak workloads and saves money by limiting the number of instances available during low workload periods.

To configure the feature, create a VM Auto Scaling Group with the following settings:

* A group-wide scaling policy based on metrics.
* Server replica configuration to automatically add or remove VMs based on demand.

VM Auto Scaling generates or deletes replicas based on the scaling policy, as needed by your application. The metric-based scaling policy tracks the CPU usage or the incoming and outgoing network packets, based on the configuration. When the existing VM instances hit the given threshold, it automatically initiates scaling, either scale in or scale out. Scaling in and scaling out is also called horizontal scaling because it adds additional VMs of the same size but does not increase the size of individual VMs by adding new cores or storage.

Additionally, you can replicate the configuration, such as the CPU architecture, number of cores, network, and group volumes.

VM Auto Scaling interfaces with other IONOS Cloud services, such as the [<mark style="color:blue;">Application Load Balancer (ALB)</mark>](https://docs.ionos.com/support/general-information/glossary-of-terms#application-load-balancer-alb), to maximize resource utilization, improve application scalability, and high-availability of multiple application servers due to server redundancy. You can specify how VM Auto Scaling replicas should be included in the ALB. When enabled, your application automatically scales based on requests from various sources. For example, if you pair VM Auto Scaling with an ALB and your application includes a web service, VM Auto Scaling ensures that your application has enough VM instances to process all requests.

VM Auto Scaling is cost-efficient and improves resource utilization. You pay only for the resources needed to run your application without any additional costs.

You can access and configure VM Auto Scaling via the [<mark style="color:blue;">Data Center Designer (DCD)</mark>](https://docs.ionos.com/support/general-information/glossary-of-terms#data-center-designer-dcd), Cloud API, and the SDK.

## Components of VM Auto Scaling

The following components are an integral part of VM Auto Scaling:

* **Auto Scaling group:** A collection of VM instances that the VM Auto Scaling manages. VM Auto Scaling automatically adds or removes instances from the group based on the metrics defined for the consumption of resources in the scaling policy.
* **Scaling policy:** Defines how VM Auto Scaling Group scales an instance group based on various parameters such as CPU usage, incoming or outgoing requests, or load balancing utilization. Users can define custom scaling policies and set the desired scaling parameters for the instance group.
* **VM replica configuration:** Defines the properties of the new VM replicas created during the scaling process. The configuration includes the parameters such as CPU type, number of cores, RAM size, network, and volumes.
* **VM Auto Scaling Manager:** Create a VM Auto Scaling Group, define scaling policies, and replicate settings for creating VM instances.

![Managing VM Auto Scaling Groups](https://1737632334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MifAzdGvKLDTtvJP8sm%2Fuploads%2Fgit-blob-04361f6690148ff1f49cc618558fba3f185fa9ad%2Fvm-auto-scaling-manager.png?alt=media)
