Signing Up for 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?

In order 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 running 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 both vCPUs and memory. Keep in mind that memory per vCPU must be between 0.9 GB and 6.5 GB per vCPU, inclusive. You purchase discounts on a per-region basis and the discounts are equally applied across the aggregate number of vCPUs and aggregate amount of memory.

For example, assume you have a region with 10 vCPUs running from a mix of predefined and custom machine types. You buy a committed use discount for 1 vCPU. That means that 1/10th of the usage of each vCPU is charged at the discounted rate and 9/10th of each vCPU's usage is charged at the regular VM instance rate. This ensures that the discount is applied predictably and fairly across all machine types, since certain predefined and custom machine types are charged at different rates. The same rule applies for memory. If you buy 5 GB of memory and have an aggregate memory of 30 GB, then the discount would be applied to 1/6 of each GB of predefined memory and 1/6 of each GB of custom memory.

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.
  • You can only purchase committed use discounts on a per-region basis.
  • 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.
  • Committed use discounts do not apply for preemptible VM instances or shared-core machine types.
  • The remaining vCPUs and memory that are not covered by committed use discounts will be eligible for sustained use discounts.
  • 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
    

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

When you purchase a commitment, the commitment applies to a portion of resources in your project, as described above. 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. If commitments are not listed on the quotas page or you require additional quota, request a quota increase.

Request a Quota Increase

If you receive a quota error when creating a commitment:

"Quota 'COMMITMENTS' exceeded. Limit: 0.0"

You do not have commitment quota and need to request a quota increase.

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 beta 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 beta 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/beta/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 beta 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/beta/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/beta/projects/example-project/regions/us-central1", "selfLink": "https://www.googleapis.com/compute/beta/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.

Understanding your bill with committed use discounts

Google Cloud Platform uses a balance sheet billing format. When you compare your bill, committed use discounts appear as a separate line item on your bill. Use the following example bill to understand the charges on your bill.

Example Bill with Committed Use Discounts

The bill is broken down like so:

  • A is your total VM usage charged at regular prices.
  • B is a credit for the portion of usage that is covered by your active committed use discounts.
  • C is the committed use charges for the applicable resources. This amount will be billed whether or not any usage has occurred.

Support

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

What's next

Send feedback about...

Compute Engine Documentation