This document provides information about extending the term length of your Compute Engine hardware resource-based commitments beyond the preset 1- and 3-year options.
Term extensions give you the flexibility to extend a commitment's term length beyond the preset 1 or 3 years and specify a custom term length of your choice—for example, 2, 3.5, or 5.5 years. By extending your commitment's term, you can tailor your commitment's length to match your resource usage needs and keep receiving the resulting committed use discounts (CUDs) for that longer and custom time period. You can extend the term lengths of both 1-year and 3-year commitments as follows:
- 1-year commitments: You can specify custom term lengths that are greater than 1 year and less than 3 years.
- 3-year commitments: You can specify custom term lengths that are greater than 3 years and less than 6 years.
For other ways to keep your commitments active for a longer duration, see the following alternatives:
- If you have a 1-year commitment and you want a different discount percentage in addition to a longer term, then upgrade the term of your commitment.
- If you want to extend your commitment's length by one or more full terms, then enable auto-renewal on your commitment.
How term extension works
You can extend your commitment's term length and set a custom term length by specifying a future end date of your choice for that commitment's term. Your commitment then becomes a custom term commitment. For 1-year commitments, the custom end date can be anywhere between 1 and 3 years (but can't be exactly 3 years) after the start date of the ongoing term. For 3-year commitments, the custom end date can be anywhere between 3 and 6 years (but can't be exactly 6 years) after the start date of the ongoing term.
You can perform a term extension for both new and existing commitments as follows:
- New commitments: You can specify a custom end date when you purchase the commitment.
- Existing commitments: After your commitment becomes active, you can specify or update the custom end date by updating the commitment's properties.
After you place a term extension request for your commitment, the changes take effect at 12 AM US and Canadian Pacific Time (UTC-8, or UTC-7 during daylight saving time) on the following day. Your commitment remains active until the new custom end date and its term length gets adjusted accordingly. Extending your commitment's term length doesn't affect the other properties of the commitment:
- Name
- Start date
- Region
- Project
- Commitment type
- Commitment plan
- Auto renew status
- Committed resources
Extending your commitment's term length doesn't change the CUD percentage that you receive in return for that commitment.
Any reservations that are attached to your commitment continue to exist throughout the lifetime of your extended term, unless you manually replace them.
Term extension eligibility window
After a commitment's term begins, you have a limited time period during which you can request for a term length extension. This time period is called the term extension eligibility window.
For commitments of both preset and custom term lengths, the term extension eligibility window depends on the most recent operation that you performed on a commitment and behaves in the following ways:
Newly purchased commitments: For 1-year commitments, the eligibility window remains open up to 4 months after the commitment activation. For 3-year commitments, the eligibility window remains open up to 1 year after the commitment activation.
Auto-renewed commitments: If your commitment automatically renews for a new term, then the eligibility window refreshes at the start of the renewed term. For 1-year commitments, the eligibility window remains open up to 4 months from the start of the renewed term. For 3-year commitments, the eligibility window remains open up to 1 year from the start of the renewed term.
Merged commitments: If you merge commitments that have different eligibility windows, then, for the merged commitment, Compute Engine uses the eligibility window that ends the earliest.
Split commitments: When you split a commitment, the eligibility window remains the same for both the resized source commitment and the new split commitment.
Upgraded commitments: When you upgrade a 1-year commitment into a 3-year commitment, Compute Engine also updates the eligibility window for the commitment. The updated window remains open up to 1 year from the start of the ongoing term.
For example, suppose that your 1-year commitment's start date is January 1, 2024. The eligibility window for your original 1-year term remains open until May 1, 2024. Suppose that you then upgraded this commitment to a 3-year commitment on April 1, 2024. After the term upgrade, your commitment's updated eligibility window remains open until January 1, 2025.
Performing multiple term extensions
You can extend the term length of your commitment any number of times within the term extension eligibility window. On any given day, for any given active commitment, you can place multiple term extension requests until 12 AM US and Canadian Pacific Time (UTC-8 or UTC-7) of the next day, as long as you specify a later end date each time. However, Google recommends that you minimize the number of term extension requests that you place for a single commitment on a given day.
After your term extension for a specific end date takes effect and your commitment has a new custom end date, you can't undo the term extension or reduce your commitment's term length. You can perform subsequent extension operations only for end dates that are later than the most recently specified end date.
Impact of pending commitment update requests
For existing, active commitments that already have a pending update request, you can place a new term extension request only if the pending request is also for a term extension. If the commitments have any pending update request—such as merge, split, term upgrade, or auto-renewal setting update—then, to request term extensions, you must wait for the pending operations to complete and the updates to take effect. After the midnight of the following day, when the updates take effect, you can request for a term extension for that commitment.
Pricing implications
Your commitment fee is the sum of the discounted prices of all your committed resources. When you extend your commitment's term length, the discounted prices of your resources stay the same for the entirety of your custom term length, even if the on-demand prices change. For more information about resource prices, see Compute Engine pricing
Quota considerations
To specify a custom end date while purchasing a commitment, you must have sufficient quota available both for the commitment and the committed resources. To specify a custom end date for an existing commitment, you don't typically need to request any additional quota.
How term extension affects future commitment operations
If your commitment has a custom term length, then performing any subsequent commitment management operations on your custom term commitment might affect its custom end date and eligibility window. The following sections explain how a custom term commitment behaves during other commitment operations:
Auto-renewing custom term commitments
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.
For example, suppose that your 1-year commitment's start date was January 1, 2024. You extend the term of this commitment and specify a custom end date of June 30, 2025. If you also enabled auto-renewal on your commitment, then, on July 1, 2025, your commitment gets renewed for another term of 1 year. The end date of the renewed term will be June 30, 2026. The term extension eligibility window during that renewed term remains open until November 1, 2025.
For more information about auto-renewal of commitments, see Renew commitments automatically.
Merging custom term commitments
Merging commitments that have custom term lengths works the same way as commitments that have preset term lengths. The merged commitment inherits the following properties:
- The end date that is furthest in the future among the source commitments, regardless of whether it's a custom end date or not.
- The eligibility window that ends the earliest among the source commitments.
For example, suppose you want to merge two custom term 1-year commitments. The first commitment has a start date of January 1, 2024, and has a custom end date of June 30, 2025. The eligibility window for the first commitment remains open until May 1, 2024. The second commitment has a start date of February 1, 2024, and a custom end date of July 30, 2025. The eligibility window for the second commitment remains open until June 1, 2024. If you merge these commitments on April 1, 2024, then the merged commitment inherits July 30, 2025 as its end date. The eligibility window for the merged commitment remains open until May 1, 2024.
For more information about merging commitments, see Merging commitments.
Splitting custom term commitments
Splitting commitments that have custom term length works the same way as commitments that have preset term lengths. The resized source commitment and the new split commitments retain the same custom end date and term extension eligibility window.
For example, suppose that your 1-year commitment's start date is January 1, 2024, and has a custom end date of June 30, 2025. The eligibility window for your commitment remains open until May 1, 2024. Suppose that on March 1, 2024, you split this commitment into two separate commitments. The newly split commitments inherit the custom end date of June 30, 2025, and their eligibility windows remain open until May 1, 2024.
For more information about splitting commitments, see Splitting commitments.
Upgrading custom term commitments
Upgrade of 1-year commitments that have a custom term length works the same way as commitments that have the preset term length. After the upgrade, Compute Engine moves the end date of the commitment's ongoing term by two years into the future.
For example, suppose that your 1-year commitment has a start date of January 1, 2024, and has a custom end date of June 30, 2025. The eligibility window for your original 1-year term remains open until May 1, 2024. Suppose that you then upgraded this commitment to a 3-year commitment on April 1, 2024. After the term upgrade, your commitment becomes a 3-year commitment that has an end date of June 30, 2027. The commitment's updated eligibility window remains open until January 1, 2025. You also start receiving the CUD percentage that is applicable for the 3-year commitment.
For more information about upgrading commitments, see Upgrade the term of commitments.
Limitations
The following limitations apply to term extensions of resource-based commitments:
- You can extend the term lengths of only hardware resource commitments.
- You can't extend the term lengths of inactive or expired commitments.
- You can't extend the term lengths of a 3-year commitment by a full 3 years. Instead, consider enabling auto-renewal on your commitment.
- You can renew custom term commitments only for the preset term length defined by their commitment plans, which is either 1 or 3 years.
- For existing active commitments that already have a pending commitment update request, you can place a new term extension request only if the pending request is also for a term extension. If the commitments have any other pending update request—such as merge, split, term upgrade, or auto-renewal setting update—then, to request term extensions, you must wait until after midnight of the following day for the pending operations to complete and the updates to take effect.
Requirements
You must meet the following requirements to successfully extend the term length of a commitment:
- The term extension request must be placed during the term extension eligibility window for the commitment.
- For 1-year commitments, the custom end date must be between 1 and 3 years (but can't be exactly 3 years) into the future from the start date of the ongoing term.
- For 3-year commitments, the custom end date must be between 3 and 6 years (but can't be exactly 6 years) into the future from the start date of the ongoing term.
- You mustn't have any other ongoing or pending merge, split, upgrade, or renewal operations for that commitment.
Best practices
Google recommends that you follow these best practices when you extend a commitment's term length:
- Before you place a term extension request, wait for all other pending commitment operations to complete and the updates to take effect.
- Minimize the number of term extension requests that you place for a single commitment on the same day.
Extend the term length during commitment purchase
When you purchase a commitment, you can specify a custom end date to extend the preset 1- or 3-year term length.
To extend the term length of a commitment while purchasing it, use one of the following options:
Console
Before you purchase your commitment, in the Google Cloud console, select the project that you want to use to purchase the commitment. If CUD sharing is enabled for a Cloud Billing account, you can purchase the commitment using any project from that Cloud Billing account.
In the Google Cloud console, go to the Committed use discounts page.
The Commitment list page opens and displays the Hardware commitments tab.
Click
Purchase commitment.The Purchase a committed use discount page opens and displays the Hardware tab.
In the Name field, enter a name for your commitment.
In the Region field, select the region where you want to commit to purchasing Compute Engine resources.
In the Commitment type field, select the machine family series for your committed resources. The following commitment type options are available:
- Accelerator-optimized A2 for A2 machine type resources
- Accelerator-optimized A3 for A3 Edge and High machine type resources
- Accelerator-optimized A3 Mega for A3 Mega machine type resources
- Compute-optimized C2 for C2 machine type resources
- Compute-optimized C2D for C2D machine type resources
- Compute-optimized H3 for H3 machine type resources
- General-Purpose C3 for C3 machine type resources
- General-Purpose C3D for C3D machine type resources
- General-Purpose C4 for C4 machine type resources
- General-Purpose C4A for C4A machine type resources
- General-Purpose E2 for E2 machine type resources
- General-Purpose N1 for N1 machine type resources
- General-Purpose N2 for N2 machine type resources
- General-Purpose N2D for N2D machine resources
- General-Purpose N4 for N4 machine type resources
- General-Purpose T2D for Tau T2D machine type resources
- Graphics-optimized G2 for G2 machine type resources
- Memory-optimized M1/M2 for M1 or M2 machine type resources
- Memory-optimized M3 forM3 machine type resources
- Storage-optimized Z3 for Z3 machine type resources
In the Duration section, do the following:
- To specify your commitment's preset term length, select either 1 year or 3 years.
- To specify a custom end date for your commitment, click the Extend end date toggle, and then, in the Date field, specify a custom end date.
In the Cores field, enter the number of vCPUs that you want to commit to purchasing.
In the Memory field, enter the amount, in GB, of memory that you want to commit to purchasing.
To commit to purchasing GPUs, in the GPUs section, click Add GPU, and then do the following:
- In the GPU type field, select the type of GPU.
- In the Number of GPUs field, enter the number of GPUs.
- Optional: If your GPU model supports NVIDIA RTX Virtual Workstations (vWS) for graphics workloads, and you plan to run graphics-intensive workloads, select the Enable Virtual Workstation (NVIDIA GRID) checkbox.
To commit to purchasing Local SSD disks, in the Local SSDs section, click add Add SSD, and then, in the Number of SSDs field, specify the number of disks.
If you specified any GPUs or Local SSD disks in your commitment, then attach matching reservations for those resources in one of the following ways. Repeat this step for every new reservation that you want to attach.
- To attach one or more existing reservations to the commitment, in the Reservations field, select Attach existing reservations, and then follow the steps listed in the Attach existing reservations section.
- To create a new reservation and attach it to the commitment, in the Reservations field, select Create reservations, and then follow the steps listed in the Create new reservations to attach section.
To finish purchasing your commitment, do the following:
- Click Purchase.
- In the Purchase a committed use discount dialog, if you agree with the service specific terms, click Purchase again.
gcloud
To purchase a commitment with a custom and extended term, run the
gcloud compute commitments create
command
and include the --custom-end-time
flag.
For example, to purchase a commitment for vCPUs, memory, or both, use the following command:
gcloud compute commitments create COMMITMENT_NAME \ --region=REGION \ --project=PROJECT_ID \ --plan=COMMITMENT_PLAN \ --type=COMMITMENT_TYPE \ --resources=vcpu=NUMBER_VCPUS,memory=MEMORY \ --custom-end-time=CUSTOM_END_DATE
Replace the following:
COMMITMENT_NAME
: the name of the commitmentREGION
: the region of the commitment and where you want to commit to purchasing Compute Engine resources.PROJECT_ID
: the ID of the projectCOMMITMENT_PLAN
: the minimum preset term length for which you want to commit to purchasing resources. Specify one of the following values:- For a 1-year commitment:
12-month
- For a 3-year commitment:
36-month
.
- For a 1-year commitment:
COMMITMENT_TYPE
: the machine series for which you want to commit to purchasing resources. The following options are available:accelerator-optimized
for A2 machine type resourcesaccelerator-optimized-a3
for A3 Edge and High machine type resourcesaccelerator-optimized-a3-mega
for A3 Mega machine type resourcescompute-optimized
for C2 machine type resourcescompute-optimized-c2d
for C2D machine type resourcescompute-optimized-c3
for C3 machine type resourcescompute-optimized-c3d
for C3D machine type resourcescompute-optimized-h3
for H3 machine type resourcesgeneral-purpose
for N1 machine type resourcesgeneral-purpose-c4
for C4 machine type resourcesgeneral-purpose-c4a
for C4A machine type resourcesgeneral-purpose-e2
for E2 machine type resourcesgeneral-purpose-n2
for N2 machine type resourcesgeneral-purpose-n2d
for N2D machine resourcesgeneral-purpose-n4
for N4 machine type resourcesgeneral-purpose-t2d
for Tau T2D machine type resourcesgraphics-optimized
for G2 machine type resourcesmemory-optimized
for M1 or M2 machine type resourcesmemory-optimized-m3
for M3 machine type resourcesstorage-optimized-z3
for Z3 machine type resources
If you don't specify the
--type
flag, then Compute Engine usesgeneral-purpose
as the default value.NUMBER_VCPUS
: the number of vCPUs that you want to commit to purchasing.MEMORY
: the amount, in MB or GB, of memory you want to commit to purchasing—for example,1000MB
or100GB
. If you don't specify the units, then Compute Engine usesGB
as the default unit. You can specify this value in increments of 0.25 GB.CUSTOM_END_DATE
: the custom end date for your term, which must be formatted asYYYY-MM-DD
. For example, to specify a custom end date of April 20, 2024, format it as2024-04-20
.
For detailed syntax of how to extend the term length while purchasing a commitment for GPUs, local SSD disks, or both, see Purchase commitments with attached reservations.
For example, consider a 1-year commitment called example-commitment
for
4 N1 vCPUs and 9 GB memory in the us-central1
region. Suppose that
you want to purchase this commitment on January 1, 2024, and want a custom
term that ends at the end of June 30, 2025. To purchase this commitment,
run the following command:
gcloud compute commitments create example-commitment \ --region=us-central1 \ --project=my-project --plan=12-month \ --type=general-purpose --resources=memory=9GB,vcpu=4 \ --custom-end-time=2025-07-01
REST
To purchase a commitment with a custom and extended term, make a POST
request to the
regionCommitments.insert
method.
In the request body, include the customEndTimestamp
field.
For example, to purchase a commitment for vCPUs, memory, or both, use the
following POST
request body:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments { "name": "COMMITMENT_NAME", "plan": "COMMITMENT_PLAN", "type": "COMMITMENT_TYPE", "resources": [ { "amount": "NUMBER_VCPUS", "type": "VCPU" }, { "amount": "MEMORY", "type": "MEMORY" }, ], "customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ", }
Replace the following:
COMMITMENT_NAME
: the name of the commitmentREGION
: the region of the commitment and where you want to commit to purchasing Compute Engine resources.PROJECT_ID
: the ID of the projectCOMMITMENT_PLAN
: the minimum preset term length for which you want to commit to purchasing resources. Specify one of the following values:- For a 1-year commitment:
TWELVE_MONTH
- For a 3-year commitment:
THIRTY_SIX_MONTH
.
- For a 1-year commitment:
COMMITMENT_TYPE
: the machine series for which you want to commit to purchasing resources. The following options are available:ACCELERATOR_OPTIMIZED
for A2 machine type resourcesACCELERATOR_OPTIMIZED_A3
for A3 Edge and High machine type resourcesACCELERATOR_OPTIMIZED_A3_MEGA
for A3 Mega machine type resourcesCOMPUTE_OPTIMIZED
for C2 machine type resourcesCOMPUTE_OPTIMIZED_C2D
for C2D machine type resourcesCOMPUTE_OPTIMIZED_C3
for C3 machine type resourcesCOMPUTE_OPTIMIZED_C3D
for C3D machine type resourcesCOMPUTE_OPTIMIZED_H3
for H3 machine type resourcesGENERAL_PURPOSE
for N1 machine type resourcesGENERAL_PURPOSE_C4
for C4 machine type resourcesGENERAL_PURPOSE_C4A
for C4A machine type resourcesGENERAL_PURPOSE_E2
for E2 machine type resourcesGENERAL_PURPOSE_N2
for N2 machine type resourcesGENERAL_PURPOSE_N2D
for N2D machine resourcesGENERAL_PURPOSE_N4
for N4 machine type resourcesGENERAL_PURPOSE_T2D
for Tau T2D machine type resourcesGRAPHICS_OPTIMIZED
for G2 machine type resourcesMEMORY_OPTIMIZED
for M1 or M2 machine type resourcesMEMORY_OPTIMIZED_M3
for M3 machine type resourcesSTORAGE_OPTIMIZED_Z3
for Z3 machine type resources
NUMBER_VCPUS
: the number of vCPUs that you want to commit to purchasing.MEMORY
: the amount, in MB, of memory that you want to commit to purchasing—for example,10240MB
. You can specify this value in increments of 256 MB.CUSTOM_END_DATE
: the custom end date for your term, which must be formatted asYYYY-MM-DD
. For example, to specify a custom end date of April 20, 2024, format it as2024-04-20
.END_TIME
: 12 AM US and Canadian Pacific Time (UTC-8 or UTC-7), as an offset of Coordinated Universal Time (UTC). Specify one of the following values:- During daylight saving time:
07:00:00
- During other times:
08:00:00
- During daylight saving time:
For detailed syntax of how to extend the term length while purchasing a commitment for GPUs, local SSD disks, or both, see Purchase commitments with attached reservations.
For example, consider a 1-year commitment called example-commitment
for
4 N1 vCPUs and 9 GB memory in the us-central1
region. Suppose that you
want to purchase this commitment on January 1, 2024, and want a custom term
that ends at the end of June 30, 2025. To purchase this commitment, make the
following request:
POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments { "name": "example-commitment", "plan": "TWELVE_MONTH", "type": "GENERAL_PURPOSE", "resources": [ { "amount": "4", "type": "VCPU" }, { "amount": "9216", "type": "MEMORY" }, ], "customEndTimestamp": "2025-07-01T07:00:00Z", }
Extend the term length of an existing commitment
You can extend the length of the existing, active commitment's ongoing term by updating the commitment's properties to specify or update the custom end date.
To extend the term length of an existing commitment, use one of the following options:
Console
Before you initiate the term extension operation, on the Google Cloud console, select the project where you want to extend your commitment's term.
In the Google Cloud console, go to the Committed use discounts page.
The Commitment list page opens and displays the Hardware commitments tab.
To initiate the term extension operation for a commitment, on the Hardware commitments tab, select an active commitment, and then click Extend.
Alternatively, you can do the following:
- On the Hardware commitments tab of the Commitment list page, click the name of the active commitment that you want to extend.
- On the Hardware commitment details page for the selected commitment, click Extend.
The Extend pane appears for the selected commitment.
To complete the term extension operation, in the Extend pane for the commitment, do the following:
- Review your Commitment details.
- In the Select an end date field, specify a custom end date for your commitment.
- In the Commitment timeline section, review the New end date field.
- To confirm the term extension request, click Extend.
gcloud
To extend the term length of an existing active commitment, run the
gcloud compute commitments update
command
and include the --custom-end-time
flag.
gcloud compute commitments update COMMITMENT_NAME \ --region=REGION \ --project=PROJECT_ID \ --custom-end-time=CUSTOM_END_DATE
Replace the following:
COMMITMENT_NAME
: the name of the commitmentPROJECT_ID
: the ID of the projectREGION
: the region of the commitment and where you want to commit to purchasing Compute Engine resources.CUSTOM_END_DATE
: the custom end date that you want for your term, in theYYYY-MM-DD
format, whereYYYY
is the year,MM
is the month, andDD
is the day. For example, to specify a custom end date of April 20, 2024, format it as2024-04-20
.
For example, consider the 1-year custom term commitment,
example-commitment
, that was purchased for 4 N1 vCPUs and 9 GB memory
in the us-central1
region. This commitment was purchased on January 1,
2024, and expires on June 30, 2025. To extend its term length further until
the end of June 30, 2026, run the following command:
gcloud compute commitments update example-commitment \ --region=us-central1 \ --project=my-project \ --custom-end-time=2026-07-01
REST
To extend the term length of an existing active commitment, make a PATCH
request to the
regionCommitments.update
method.
In the request body, include the customEndTimestamp
field.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments/COMMITMENT_NAME { "name": "COMMITMENT_NAME", "customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ", }
Replace the following:
COMMITMENT_NAME
: the name of the commitmentREGION
: the region of the commitment and where you want to commit to purchasing Compute Engine resources.PROJECT_ID
: the ID of the projectCUSTOM_END_DATE
: the custom end date that you want for your term, in theYYYY-MM-DD
format, whereYYYY
is the year,MM
is the month, andDD
is the day. For example, to specify a custom end date of April 20, 2024, format it as2024-04-20
.END_TIME
: 12 AM US and Canadian Pacific Time (UTC-8 or UTC-7), as an offset of Coordinated Universal Time (UTC). Specify one of the following values:- During daylight saving time:
07:00:00
- During other times:
08:00:00
- During daylight saving time:
For example, consider the 1-year custom term commitment,
example-commitment
, that was purchased for 4 N1 vCPUs and 9 GB memory
in the us-central1
region. This commitment was purchased on January 1,
2024, and expires on June 30, 2025. To extend its term length further until
the end of June 30, 2026, make the following request:
PATCH https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments/example-commitment { "name": "example-commitment", "customEndTimestamp": "2026-07-01T07:00:00Z", }
What's next
- Learn how to renew resource-based commitments automatically.
- Learn how to upgrade the term of resource-based commitments.
- Learn how to analyze the effectiveness of your resource-based committed use discounts.