If you have workloads with predictable resource requirements, you can lower your costs through resource-based committed use discounts (CUDs). You can receive resource-based CUDs by purchasing resource-based commitments for a term of either 1 or 3 years. By default, resource-based commitments expire at the end of their term. After a commitment's expiry, you must purchase a new commitment to continue receiving CUDs. Auto-renewal of your resource-based commitment removes the need for you to manually repurchase the commitment every time it expires. Auto-renewal of a commitment lets you indefinitely extend an existing commitment and continue receiving CUDs for those committed resources.
This document explains how auto-renewal works and shows you how to do the following:
- Enable auto-renewal when you purchase new commitments.
- Enable and disable auto-renewal on your existing active commitments.
How auto-renewal works
When you enable auto-renewal on a resource-based commitment, each time your commitment reaches the end of its term, Compute Engine automatically renews that commitment for a new term. After you enable auto-renewal on a commitment, the setting remains enabled until you manually disable it.
You must enable auto-renewal separately on each commitment that you want to automatically renew in a project. You can enable auto-renewal on your commitments on both new and existing commitments as follows:
- For new commitments, when you purchase a commitment, you have the option to specify whether you want the commitment to renew automatically.
- For existing commitments that are active and don't have auto-renewal enabled, you can modify the commitment's properties and enable auto-renewal. You can't enable auto-renewal for expired commitments.
After you enable auto-renewal on a commitment, the current end date of your commitment becomes its renewal date. All other properties of your commitment remain the same. At 12 AM US and Canadian Pacific Time (UTC-8, or UTC-7 during daylight saving time) on the current end date (the renewal date), your commitment's renewed term automatically begins.
The renewed term length of an automatically renewing commitment always matches the preset term length defined by the commitment's plan, which is either 1 year or 3 years. You also receive the same discount percentage. Even if your commitment has a custom term length, Compute Engine renews your commitment only for its preset term length of either 1 or 3 years. Auto-renewal of a custom term commitment won't be for another term of that custom length. For examples, see the following:
- A commitment with a custom term of 1.5 years will renew only for 1 additional year.
- A commitment with a custom term of 5.5 years will renew only for 3 additional years.
If you want a custom term commitment to stay active for a longer time period than the renewed term, then you can request for another term extension after its renewal. Your term extension eligibility window also gets refreshed at the start of your renewed term. For a 1-year commitment, the eligibility window during the renewed term remains open for up to 4 months after the renewal. For 3-year commitments, this window remains open for up to 1 year after the renewal.
At the end of the renewed term, Compute Engine again renews your commitment for a new term, unless you manually disable auto-renewal during the commitment's term.
You can enable auto-renewal on your commitment anytime before the commitment is set to expire. Likewise, you can disable auto-renewal on your commitment anytime before its renewal date. For example, if you have a 1-year commitment that is set to expire at 12 AM (UTC-8) on January 1, 2024, then you can enable auto-renewal on that commitment anytime before 12 AM (UTC-8) on January 1, 2024. After you enable auto-renewal, your commitment automatically renews for an additional year at 12 AM (UTC-8) on January 1, 2024. If you then want to disable auto-renewal, then you can do so anytime before 12 AM (UTC-8) on January 1, 2025.
By activating auto-renewal on a commitment, you agree to the following:
- You have your commitment automatically renewed for a new term on its current end date.
- You continue paying for your committed resources over the new term.
Example of auto-renewal
Consider an example 1-year commitment my-commitment-1
that does not renew
automatically. Suppose you purchase this commitment on January 1, 2020 for
100 N2 vCPUs. The term of your commitment is scheduled to end on January 1,
2021. Suppose you perform the following series of operations on this commitment:
- You enable auto-renewal on this commitment before its end date.
- After the commitment's term gets renewed 2 times, you disable auto-renewal on the commitment and let your commitment expire on its new end date.
The following table shows how the commitment's properties behave throughout the lifetime of this commitment:
Original term (Before enabling auto-renewal) |
Original term (After enabling auto-renewal) |
First automatically renewed term (Auto-renewal remains enabled) |
Second automatically renewed term (Before disabling auto-renewal) |
Second automatically renewed term (After disabling auto-renewal) |
|
---|---|---|---|---|---|
Term duration | 1 year | 1 year | 1 year | 1 year | 1 year |
Discount | 37% | 37% | 37% | 37%‡ | 37%‡ |
Start date* | January 1, 2020 | January 1, 2020 | January 1, 2020 | January 1, 2020 | January 1, 2020 |
End date or renewal date† | January 1, 2021 | January 1, 2021 | January 1, 2022 | January 1, 2023 | January 1, 2023 |
Action on the end or renewal date | Commitment scheduled to expire | Commitment scheduled to renew | Commitment scheduled to renew | Commitment scheduled to renew | Commitment scheduled to expire |
Term extension eligibility window open until | May 1, 2020 | May 1, 2021 | May 1, 2021 | May 1, 2022 | May 1, 2022 |
*The commitment starts at 12 AM US and Canadian Pacific Time
(UTC-8 or UTC-7) on the specified start date.
†The commitment ends or gets renewed at 12 AM US and Canadian Pacific
Time (UTC-8 or UTC-7) on the specified end date.
‡Even if the total duration of your commitment period becomes 3
years or more, the discount percentage for your auto-renewed commitment remains
unchanged because the duration of each term is still 1 year.
Quota considerations
You don't need to request additional quota because renewed commitments use the same quota as the original commitment. For more information about quota for commitments, see Quotas for commitments and committed resources.
Pricing implications
Your commitment fee is the sum of the discounted prices of all your committed resources. When you renew your commitment's term, the discounted prices of all your committed resources are recalculated and might change. To do this recalculation, Compute Engine uses the prevailing on-demand prices of the resources on the day your renewed term becomes active. You retain these prices for your resources throughout your new term, even if the on-demand prices change.
Limitations
- You can enable auto-renewal only on your resource-based commitments.
- You can enable auto-renewal only on your active commitments.
- To create a commitment that renews automatically, you must use the gcloud CLI and the Compute Engine API. You can't do so by using the Google Cloud console. However, you can enable auto-renewal on an already active commitment by using the gcloud CLI, the Compute Engine API, or the Google Cloud console.
Enable auto-renewal on commitments
To have your commitment automatically renew at the end of its term, enable auto-renew in one of the following ways:
- Enable auto-renewal while purchasing a new commitment
- Enable auto-renewal on an existing commitment
Enable auto-renewal while purchasing a new commitment
You can enable auto-renewal while purchasing a new commitment by using the gcloud CLI or REST.
Permissions required for this task
To perform this task, you must have the following permissions:
compute.commitments.create
on the project
gcloud
To purchase a commitment that renews automatically, run the
gcloud commitments create
command
and include the --auto-renew
flag.
For example, the following gcloud CLI command creates a 3-year commitment that renews automatically.
gcloud compute commitments create COMMITMENT \ --auto-renew \ --plan=36-month \ --region=us-west1 \ --project=PROJECT_ID \ --resources=vcpu=4,memory=9
Replace the following:
COMMITMENT
: the name of the new commitment.PROJECT_ID
: the project ID of the project where you want to create the commitment.
REST
To purchase a commitment that renews automatically, make a POST
request to
the regionCommitments.insert
method
and set the autoRenew
field to true
.
For example, the following Compute Engine API request creates a 3-year commitment that renews automatically.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/commitments { "name": "COMMITMENT", "plan": "THIRTY_SIX_MONTH", "resources": [ { "type": "VCPU", "amount": 4 }, { "type": "MEMORY", "amount": 9 } ], "autoRenew": true }
Replace the following:
COMMITMENT
: the name of the new commitment.PROJECT_ID
: the project ID of the project where you want to create the commitment.
Enable auto-renewal on an existing commitment
You can enable auto-renewal on an existing commitment by using the Google Cloud console, gcloud CLI, or the REST.
Permissions required for this task
To perform this task, you must have the following permissions:
compute.commitments.update
on the project or organization
Console
In the Google Cloud console, go to the Committed use discounts page.
In the Commitment list, under Hardware commitments, click the Name of the commitment.
On the Hardware commitment details page, click the Auto renew toggle.
gcloud
To enable auto-renewal on an existing commitment, run the
gcloud commitments update
command
and include the --auto-renew
flag.
gcloud compute commitments update COMMITMENT \ --auto-renew
Replace COMMITMENT
with the name of the commitment.
REST
To enable auto-renewal on an existing commitment, make a POST
request to
the regionCommitments.update
method and set the autorenew
field to true
.
For example, the following Compute Engine API request enables
auto-renew for a commitment in the us-west1
region.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/commitments { "name": "COMMITMENT", "autoRenew": true }
Replace the following:
COMMITMENT
: the name of the commitment to update.PROJECT_ID
: the project ID of the project where you want to update the commitment.
Disable auto-renewal on commitments
When you purchase new commitments, auto-renewal is disabled by default unless you specifically enable it. If you don't want your commitment to automatically renew at the end of its term, then you can do one of the following:
- Keep auto-renewal disabled while purchasing a new commitment.
- Disable auto-renewal on an existing commitment.
Disable auto-renewal while purchasing a new commitment
For detailed steps to purchase new commitments that have auto-renewal disabled by default, see the following sections. Select the option that is relevant to your use case.
Disable auto-renewal on an existing commitment
You can disable auto-renewal on an existing commitment by using the Google Cloud console, gcloud CLI, or the Compute Engine API.
Permissions required for this task
To perform this task, you must have the following permissions:
compute.commitments.update
on the project or organization
Console
In the Google Cloud console, go to the Committed use discounts page.
In the Commitment list, under Hardware commitments, click the Name of the commitment.
On the Hardware commitment details page, click the Auto renew toggle.
gcloud
Disable auto-renewal on an existing commitment by using the gcloud
commitments update
command.
gcloud compute commitments update COMMITMENT --no-auto-renew
Replace COMMITMENT
with the name of the commitment.
REST
Disable auto-renewal on an existing commitment by using the
regionCommitments.update
method.
For example, the following Compute Engine API request disables
auto-renewal for a commitment in the us-west1
region.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/commitments { "name": "COMMITMENT", "autoRenew": false }
Replace the following:
COMMITMENT
: the name of the commitment to update.PROJECT_ID
: the project ID of the project where you want to update the commitment.
What's next
- Learn how to troubleshoot auto-renewal for resource-based commitments.
- Learn how to extend the term length of resource-based commitments.
- Learn how to upgrade the term of resource-based commitments.
- Learn how to merge and split resource-based commitments.
- Learn how to analyze the effectiveness of your resource-based committed use discounts.