Autoscaling Groups of Instances

Managed instance groups offer autoscaling capabilities that allow you to automatically add or delete instances from a managed instance group based on increases or decreases in load. Autoscaling helps your applications gracefully handle increases in traffic and reduces cost when the need for resources is lower. You just define the autoscaling policy and the autoscaler performs automatic scaling based on the measured load.

Autoscaling works by adding more instances to your instance group when there is more load (upscaling), and deleting instances when the need for instances is lowered (downscaling).


Autoscaling uses the following fundamental concepts and services.

Managed instance groups

Autoscaling is a feature of managed instance groups. A managed instance group is a pool of homogeneous instances, created from a common instance template. An autoscaler adds or deletes instances from a managed instance group. Although Compute Engine has both managed and unmanaged instance groups, only managed instance groups can be used with autoscaler.

To understand the difference between a managed instance group and unmanaged instance group, see the Instance Groups documentation.

Autoscaling policy and target utilization

To create an autoscaler, you must specify the autoscaling policy and a target utilization level that the autoscaler uses to determine when to scale the group. You can choose to scale using the following policies:

  • Average CPU utilization
  • HTTP load balancing serving capacity, which can be based on either utilization or requests per second.
  • Stackdriver Monitoring metrics

The autoscaler will collect information based on the policy, compare it to your desired target utilization, and determine if it needs to perform scaling.

The target utilization level is the level at which you want to maintain your virtual machine instances. For example, if you scale based on CPU utilization, you can set your target utilization level at 75% and the autoscaler will maintain the CPU utilization of the specified group of instances at or close to 75%. The utilization level for each metric is interpreted differently based on the autoscaling policy.

For a brief summary of each policy, see Autoscaling policies in Overviews. For a detailed discussion of each policy, see:


  • Autoscaling only works with managed instance groups. Unmanaged instance groups are not supported.
  • Do not use Compute Engine autoscaling with managed instance groups that are owned by Google Kubernetes Engine. For Google Kubernetes Engine groups, use Cluster Autoscaling instead.

    If you are not sure if your group is part of a Google Kubernetes Engine cluster, look for the gke prefix in the managed instance group name. For example, gke-test-1-3-default-pool-eadji9ah.

  • An autoscaler can make scaling decisions based on multiple metrics, but it can handle only one policy per metric type except in the case of Stackdriver monitoring metrics; an autoscaler can handle up to five policies based on Stackdriver monitoring metrics. The autoscaler calculates the recommended number of virtual machines for each policy and then scale based on the policy that provides the largest number of virtual machines in the group.

Before you begin

  1. Learn about managed instance groups

    Autoscaler is a feature of managed instance groups so you should understand how managed instance groups work before you use autoscaling.

  2. Get a managed instance group name or URL

    For all autoscaling requests, you must provide either a managed instance group name or managed instance group URL. In the gcloud, command-line tool, you can use a managed instance group name, while the API requires a fully-qualified URL.

    To get the URL to an existing managed instance group, you can use either the instance-groups managed list --uri command or the instance-groups managed list [INSTANCE_GROUP] --uri command. For example, the following command provides the URL of a managed instance group in the us-central1-f zone:

    gcloud compute instance-groups managed list example-group --uri --zones us-central1-f

    The gcloud tool returns the managed instance groups URL:

    If you do not have an existing managed instance group, review how to create a managed instance group.

Next steps

When you are ready, create an autoscaler that scales on CPU or load balancing serving capacity or on a Stackdriver Monitoring metric.

Was this page helpful? Let us know how we did:

Send feedback about...

Compute Engine Documentation