Committed Use Discounts

Compute Engine offers the ability to purchase committed use contracts in return for deeply discounted prices for VM usage. These discounts are known as committed use discounts.

If your workload is stable and predictable, you can purchase a specific amount of vCPUs and memory for up to a 57% discount off of normal prices in return for committing to a usage term of 1 year or 3 years. Upon purchase, you will be billed a monthly fee for the duration of the term you selected, whether or not you use the services.

Committed use discounts work on all Compute Engine non-shared core machine types, including predefined and custom machine types. Committed use discounts are:

  • Simple and flexible: Discounts apply to the aggregate number of vCPUs or memory within a region so they are not affected by changes to your instance's machine type.

  • No upfront costs: There are no upfront costs for committed use discounts. Committed use discounts are applied to your bill every month.

Before you begin

How do committed use discounts work?

To get committed use discounts for your VM instances, you must purchase commitments through the Compute Engine API or the Google Cloud Platform Console. After you purchase a commitment, you cannot cancel your purchase. When committed use discounts expire, your VM instances will continue to run and will be billed at the normal prices. Commitments do not renew, so you must create a new commitment to continue receiving committed use discounts.

Committed use discounts apply to vCPUs and memory simultaneously. You cannot buy a committed use discount for vCPUs or memory independently. As with custom machine types, when you buy a committed use discount, you must purchase memory in increments between 0.9 GB and 6.5 GB per vCPU, inclusive. You must also purchase discounts on a per-region basis.

When you purchase a committed use discount, the discount is applied to custom machine types first, before it is applied to predefined machine types. For example, assume you have a region with the following mix:

  • 10 custom machine type vCPUS
  • 30 GB of custom machine type memory
  • 2 n1-standard-4 predefined machine types

You purchase 15 vCPUs and 13.5 GB of memory for committed use. The committed use discounts would be applied first to the custom machine types and any remaining discounts would be applied to the predefined machine types. In this case, all 10 vCPUs of the custom machine types would be charged at committed use prices and 13.5 GB of custom machine type memory would be charged at committed use prices. The remaining 5 vCPUs of committed use would apply to 5 random vCPUs across the two n1-standard-4 machine types. Any resources that aren't covered by committed use would qualify for sustained use discounts.

Committed use discounts are subject to Google Cloud Platform's Service Specific Terms. By purchasing a committed use discount, you agree to these terms. Committed use discounts do not renew so you must create a new commitment to continue receiving discounts.

Specifications

  • You can only purchase commitments if you have quota for commitments. Check the Quotas page to ensure you have enough quota to create a commitment. If commitments are not listed on the quotas page or you require additional quota, request a quota increase.
  • To use the gcloud tool to manage commitments, you must be running gcloud version 147.0.0 or later. To update the gcloud tool to the latest version:

    gcloud components update
    

    To check the version of the gcloud tool you are running:

    gcloud version
    
    • Any remaining vCPUs and memory that are not covered by committed use discounts will be eligible for sustained use discounts.

Restrictions

  • Committed use discounts automatically apply to VMs by both Google Container Engine and Google Compute Engine. Committed use discounts do not apply to VMs created using App Engine Flexible Environment, Google Cloud DataProc, Google Cloud Dataflow, or Google Cloud SQL.
  • Projects that are in the free tier period with free tier credit and projects that do not have any payment history do not qualify for committed use discounts.
  • You can only purchase committed use discounts on a per-region basis.
  • Committed use discounts do not apply to preemptible VM instances, shared-core machine types, or extended memory.
  • You must purchase committed use discounts for vCPUs and memory together. Keep in mind that that memory per vCPU must be between 0.9 GB and 6.5 GB per vCPU, inclusive and the total memory must be a multiple of 256 MB.

Pricing

Pricing for VM instances that have committed use discounts differ depending on the region. See the Pricing page for current rates.

Committed and sustained use discounts

Any resources that have committed use discounts applied do not qualify for sustained use discounts. The two different discount types never apply to the same portion of a vCPU or GB of memory.

Resources that are not covered by committed use discounts will automatically qualify for sustained use discounts on a machine type family basis. If you run an n1-standard-2 for a portion of the month and run an n1-standard-8 for another portion of the same month, Compute Engine combines the two and applies sustained use discounts for the portion not covered by committed use discounts because both machine types belong to the n1-standard family. The same logic applies to the n1-highmem and n1-highcpu machine type families.

Requesting quota for commitments

You can only purchase commitments if you have quota for commitments. Check the Quotas page to ensure you have enough quota to create a commitment.

When making a request using the gcloud tool or the API, the server returns the following error if you have no commitment quota:

"Quota 'COMMITMENTS' exceeded. Limit: 0.0"

To check quota in the console:

  1. Go to the Quota Information page in the Google Cloud Platform Console.

    Go to the Quota Information page

  2. Expand the Quota type dropdown menu and select All quotas.
  3. Expand the Metric dropdown menu.
  4. Click on None to hide all quotas and then type commitments in the search box to search for commitments quota.
  5. Select Commitments from the results list.

    Screenshot of commitments screenshot

  6. Check the quota for commitments in your desired region. If you do not have quota for commitments, the quota will list 0.

    Screenshot of no commitments

To request quota for commitments

  1. Go to the Quota Increase page in the Google Cloud Platform Console.

    Go to the Quota Increase page

  2. Expand the Quota type dropdown menu and select All quotas.
  3. Expand the Metric dropdown menu.
  4. Click on None to hide all quotas and then type commitments in the search box to search for commitments quota.
  5. Select Commitments from the results list.

    Screenshot of commitments screenshot

  6. Select the checkbox next to commitments for the desired region and click the Edit Quotas button.

  7. If prompted, fill in your first and last name, and phone number. Click Next.
  8. Fill out the request form and click Next.
  9. Click Submit Request to submit your request.

Purchasing a commitment

You can purchase commitments in the Cloud Platform Console, the gcloud command-line tool, or programmatically through the API.

After purchasing a commitment, the commitment will be effective starting at midnight the following day. For example, a commitment purchased on Monday afternoon at 3PM PST would be effective on Tuesday at midnight. The discounts will automatically be applied to applicable instances in the region you specified.

To purchase a commitment, follow the instructions below.

Console

  1. Go to the Committed Use Discounts page in the Cloud Platform Console.

    Go to the Committed Use Discounts page

  2. Click Purchase to purchase a new commitment.
  3. Name your commitment and choose the region where you want it to apply.
  4. Choose a duration amount of the commitment, either 1 or 3 years.
  5. Choose the input mode for the commitment:

    • (Recommended) Custom input allows you to customize the number of vCPUs and the of memory.

    • Basic input allows you to choose the number of vCPUs and Compute Engine will automatically populate the amount of memory for the number of vCPUs.

  6. Enter the quantities for vCPU and memory. Memory per vCPU must be between 0.9 GB and 6.5 GB per vCPU, inclusive and the total memory must be a multiple of 256 MB. The number of vCPUs must be 1 or higher and can be even or odd.

  7. Click the Purchase button to purchase the commitment.
  8. Read the terms of purchase and click Purchase again once you are ready to purchase the commitment.

gcloud

Using the gcloud tool, run the beta compute commitments command:

gcloud compute commitments create [COMMITMENT_NAME] --region [REGION] \
    --resources VCPU=[NUMBER_VCPUS],MEMORY=[MEMORY] --plan [DURATION]

where:

  • [COMMITMENT_NAME is the name you want to identify this commitment with.
  • [REGION] is the region this commitment applies to. Each region has different commitment prices. See the price sheet for current prices.
  • [NUMBER_VCPUS] is the number of vCPUs you are willing to purchase commitments for. The number of vCPUs must be 1 or higher and can be even or odd.
  • [MEMORY] is the amount of memory in MB or GB you are willing to purchase commitments for. For example, 1000MB. If units are not specified, the default unit used is GB. This must follow the same specifications when specifying custom memory, namely:

    • The memory per vCPU of a custom machine type must be between 0.9 GB and 6.5 GB per vCPU, inclusive.
    • The total memory must be a multiple of 256 MB.
  • [DURATION] is the term of the commitment, either 12-month or 36-month.

For example:

gcloud compute commitments create example-commitment --region us-central1 \
    --resources VCPU=5,MEMORY=33280MB --plan 12-month

API

In the API, make a POST request to the following URL, with a request body that contains information about the commitment:

https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/commitments?requestId=[OPTIONAL_UNIQUE_ID]

The resource body should contain:

  • name for the name of the commitment.
  • plan for the term of the commitment, either TWELVE_MONTH or THIRTY_SIX_MONTH.
  • resources to specify the amount of memory and vCPU. Memory must be be specified in MB.

For example, the following creates a commitment for 1 year with 5 vCPUs and 18.75 GB of memory:

{
  "name": "example-commitment",
  "plan": "TWELVE_MONTH",
  "resources": [
    {
    "amount": "5",
    "type": "VCPU"
    },
    {
    "amount": "18750",
    "type": "MEMORY"
    }
  ]
}

For more information, see the reference documentation.

Viewing active commitments

View commitments in the console or the API.

Console

View a list of commitments in the Committed Use Discounts page in the Google Cloud Platform Console.

Go to the Committed Use Discounts page

gcloud

Make a request using the commitments list command:

gcloud compute commitments list

The tool returns a list of commitments:

 NAME              REGION    END_TIMESTAMP                  STATUS
 my-commitment     us-east1  2018-03-17T00:00:00.000-07:00  NOT_YET_ACTIVE

API

You can get a list of commitments across all regions by making an aggregatedList request to the following URL:

https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/aggregated/commitments

Which returns a list of commitments:

"commitments": [
{
  "kind": "compute#commitment",
  "id": "3294122326373778983",
  "creationTimestamp": "2017-02-09T15:18:32.411-08:00",
  "name": "example-commitment",
  "region": "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1",
  "selfLink": "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/commitments/example-commitment",
  "status": "NOT_YET_ACTIVE",
  "statusMessage": "The commitment is not yet active (its startTimestamp is in the future). It will not apply to current resource usage.",
  "plan": "TWELVE_MONTH",
  "startTimestamp": "2017-02-10T00:00:00.000-08:00",
  "endTimestamp": "2018-02-10T00:00:00.000-08:00",
  "resources": [
    {
      "type": "VCPU",
      "amount": "5"
    },
    {
      "type": "MEMORY",
      "amount": "32500"
    }]
  }
]

A commitment can have one of the following statuses:

  • CREATING: The commitment is being created.
  • NOT_YET_ACTIVE: The commitment has been created but is not yet active. Commitments are effective at midnight the following day.
  • ACTIVE: The commitment is active.
  • EXPIRED: The commitment has expired. Compute Engine reserves the right to remove expired commitments older than 210 days from the expiration date.

Canceling a commitment

Once you create a commitment, it is not possible to cancel it. You must pay the agreed upon monthly amount for the duration of the commitment. Commitments are not affected by future pricing changes to the standard prices for Compute Engine resources.

If you accidentally purchased a commitment or made a mistake configuring your commitment, contact the Google Cloud Billing team for help.

Understanding your bill with committed use discounts

Google Cloud Platform uses a balance sheet billing format. When you compare your bill, the full charges for your resources appear as a line item, followed by credits to offset the amount that is actually covered by committed use, and then finally, the committed use charges you would actually pay. Use the following example bills to understand the charges on your own bill.

Example

In this scenario, the customer has purchased a commitment that covers all their usage. Row A displays the standard (non-committed use) charges for these resources. Row B are credits that fully offset row A because all usage is covered by a commitment. Row C is the discounted committed use price that the customer is actually charged. The total bill amount is the sum of debits minus the credits. In this case, the final bill amount would be $7.17 since a commitment covered all usage.

Screenshot of example committed use bill

Example

In this scenario, the customer has purchased commitments that cover a portion of their bill. Row A.1 and A.2 displays the standard (non-committed use) charges for vCPU and memory. Row B.1 and B.2 are credits that offset the portion of charges that are covered by committed use. Row C.1 and C.2 is the discounted committed use price for portion of resources described in rows B.1 and B.2. The total of this bill would be the sum of the committed use charges in rows C.1 and C.2 and the remaining portion of the bill not covered by committed usage.

Screenshot of complex example committed use bill

Support

If you have any questions regarding committed use discounts on your bill, you can contact Google Cloud Platform for support.

What's next

Monitor your resources on the go

Get the Google Cloud Console app to help you manage your projects.

Send feedback about...

Compute Engine Documentation