Resource-based committed use discounts (original) (raw)

Skip to main content

Resource-based committed use discounts

Compute Engine provides resource-based committed use discounts (CUDs) for your predictable workloads to help you cut costs on resources that you need. You can purchase resource-based committed use contracts or commitments in return for heavily discounted prices for VM usage.

This document provides information about resource-based commitments, how to purchase them, and the resulting CUDs.

To learn about spend-based CUDs for Compute Engine, seeCompute flexible CUDs.

Resource-based commitments are ideal for predictable and steady state usage. These commitments require no upfront costs. Compute Engine lets you purchase the following categories ofresource-based commitments:

Commitments for hardware resources are separate from commitments for licenses. You can purchase both categories of commitments for a VM instance, but you cannot purchase a single commitment that covers both hardware resources and licenses.

Before you begin

How committed use discounts work

When you purchase a committed use contract, you purchase Compute Engine resources—such as vCPUs, memory, GPUs, Local SSD disks, and sole-tenant nodes—at a discounted price in return for committing to paying for those resources for 1 year or 3 years. The discount is up to 55% for most resources like machine types or GPUs. The discount is up to 70% for memory-optimized machine types. For committed use prices for different machine types, seeVM instances pricing.

During your commitment's term, you automatically start receiving CUDs on eligible resource usage in your project that matches the resource types, machine type, and region specified in your commitment. You continue to receive these CUDs for your eligible resource usage until your commitment expires. By default, your commitment is scheduled to expire at the end of its specified term of 1 or 3 years. You can have your commitment automatically renew for additional terms by enabling auto-renewalon your commitment.

Compute Enginemaintains a lien on your project for each region in your project where you purchase a commitment. When you purchase a new commitment for any region in your project, Compute Engine associates the lien for that region with the newly created commitment.

Resource-based commitments are subject to Google Cloudcommitment-based pricing and billing. By purchasing a commitment, you agree to these terms. After you purchase a commitment, you can't cancel or delete it. For more information, seeCancel a commitment.

Commitment status

Your commitment can have one of the following statuses:

Between the time of your commitment purchase and its activation time, the status of your commitment remains as NOT_YET_ACTIVE (or as PENDING on the Google Cloud console). After activation, the status of your commitment changes toACTIVE. For example, suppose you purchase your commitment on January 20th at 10:00 PM US and Canadian Pacific Time (UTC-8 or UTC-7). Compute Engine creates your commitment immediately with its status as NOT_YET_ACTIVE. However, your commitment becomes ACTIVE only on January 21st at 12:00 AM US and Canadian Pacific Time (UTC-8 or UTC-7).

Hardware commitments

Hardware commitments apply only to the specific region and machine family series for which you purchase. In return, you receive discounts on the aggregate prices of all the eligible hardware resources for that machine series within that region. These hardware resources include vCPUs, memory, GPUs, and Local SSD disks.

Purchasing a commitment doesn't affect your VM configurations. Your CUDs apply to the aggregate number of vCPUs, memory, GPUs, and Local SSD disks of a specific machine series within a region. Consequently, the CUDs that you receive for a commitment are not affected by changes to your VM's machine setup, as long as the resources are covered by that commitment.

When you purchase a commitment for a specific machine series, you are eligible for CUDs on all VM machine types regardless of the VM size or tenancy model, including all predefined and custom machine types and sole-tenant nodes. For more information about the eligible resource types for each machine series, see Hardware commitment types.

Efficient usage of your commitments

If you have just a few projects, you can purchase commitments just for the specific resources you plan to use. For example, if you purchase a commitment for 8 cores, and you run 24 cores during the month, you will receive committed use discounts for 8 cores. The other 16 cores will be billed at standard, non-committed use rates. Keep in mind that after you purchase a set amount of commitments, you're billed for those commitments monthly, even if you don't use them. For example, if you purchase commitments for 8 cores, you're billed the committed use rates for those 8 cores for the whole month, even if you might have only run these cores for a part of the month. It is to your advantage to purchase commitments only in increments you know you will use.

Commitments can't be stacked for burst scenarios. For example, if you purchased 10 cores for a month and then ran 20 cores for half the month, your commitments won't apply for the full 20 cores just because their usage was across only half the month.

Usage overage

Any hourly resource usage that is not covered by your commitments is charged based on the on-demand rates and might be eligible for applicablesustained use discounts (SUDs). For example, consider a commitment for 2 vCPUs and 8 GB memory that belong to the N2 machine series. Suppose that you use this commitment to purchase and run an n2-standard-2 (2 vCPUs and 8 GB memory) VM for a portion of the month and then run an n2-standard-8 (8 vCPUs and 32 GB memory) VM for the remainder of the same month. In this scenario, Compute Engine combines the usage across both VMs and automatically applies the applicable SUDs to any resource usage that isn't covered by your commitment.

Combine reservations with commitments

A commitment provides a 1- or 3-year discounted price agreement, but it does not reserve capacity in a specific zone. A reservation makes sure that capacity is held in a specific zone even if the reserved VMs are not running. To get zonal resources at discounted prices and also makes sure that capacity is reserved for them, you must both purchase commitments and create reservations for those zonal resources.

You can also attach reservations to your resource-based commitments at the time of purchasing your commitment. By attaching reservations to your commitments, you link the two entities together. This linkage helps you better identify and track which committed resources also have capacity reserved.

Attaching a reservation to your commitment is mandatory for some resource types. When you purchase commitments for GPUs, you must reserve those GPUs and attach those reservations to your commitment. This requirement also applies to Local SSD disks for use with most machine series. If you're committing to purchase local Titanium SSD disks for use with C4A, C4D, H4D, or Z3 instances, then you don't need attached reservations for those disks.

For more information about attaching reservations to your commitments, seeCombine reservations with committed use discounts.

Limitations

The following restrictions apply to resource-based CUDs.

General Limitations

Limitations specific to sharing resource-based CUDs

Limitations specific to attached reservations

Limitations specific to CUDs Recommendations

Pricing

You're billed monthly for your commitment and must pay your monthly commitment fee even if you don't use all of your committed resources. Your commitment fee is the sum of the discounted prices of all your committed resources. Compute Engine calculates the discounted price of each resource by using its prevailing on-demand price on the day your commitment becomes active. Your monthly commitment fee and the discounted prices for your resources stay the same until the end of your commitment term, even if the on-demand prices change.

If you use your commitments to run custom machine types, then Compute Engine charges a 5% premium over the commitment prices. Compute Engine charges this premium for the portion and duration of your commitment that you run these custom machine type VMs.

The discounted pricing (also referred to as CUD pricing) for VM instances, with or without GPUs and Local SSD disks, differs depending on the region. For current rates, see VM instance pricing.

If you move the project for which you purchased commitments to a different Cloud Billing account, then you continue to receive committed use discounts for that project under the new Cloud Billing account.Learn about changing the Cloud Billing account for a project.

Commitment types for hardware commitments

When you purchase a commitment, you must choose the commitment type that applies to your intended resource usage. The commitment type of the commitment determines the machine series—or in some cases, a specific collection of machine types—that is covered by your commitment. When you use instances belonging to these machine series or machine types, Google Cloud covers the eligible portions of that usage through your commitment. Most machine series use one specific commitment type for all machine types in that series. The following machine series are exceptions; they don't have a single commitment type for the entire series:

The specific value for each commitment type varies depending on whether you use the gcloud CLI, REST, or the Google Cloud console to purchase a commitment. For the exact values to use when purchasing, see the relevant instructions in thePurchase commitments without attached reservationsor Purchase commitments with attached reservationssections.

The following table lists all the machine series for which you can purchase resource-based commitments, along with their corresponding commitment types. For each commitment type, the table also lists the eligible machine types and resource types that are eligible for CUDs. For every listed machine type, the applicability includes sole-tenant node types, if sole-tenancy is supported by the machine series.

Commitment type Eligible resources Applicable machine types
General-purpose E2 vCPUs Memory All E2 machine types
General-purpose N2 vCPUs Memory Local SSD disks All N2 machine types
General-purpose N2D vCPUs Memory Local SSD disks All N2D machine types
General-purpose N4 vCPUs Memory All N4 machine types
General-purpose N4D vCPUs Memory All N4D machine types
General-purpose N4A (In Preview; CUDs available at GA) vCPUs Memory All N4A machine types
General-purpose C3 vCPUs Memory Local SSD disks All C3 machine types
General-purpose C3D vCPUs Memory Local SSD disks All C3D machine types
General-purpose C4 vCPUs Memory All C4 machine types
General-purpose C4A vCPUs Memory Local Titanium SSD disks All C4A machine types
General-purpose C4D vCPUs Memory Local Titanium SSD disks All C4D machine types
General-purpose Tau T2D vCPUs Memory Standard Tau T2D machine types
General-purpose N1 vCPUs Memory GPUs Local SSD disks All N1 machine types, excluding shared-core. GPUs: NVIDIA T4 NVIDIA V100 NVIDIA P100 NVIDIA P4
Storage-optimized Z3 vCPUs Memory Local SSD disks and local Titanium SSD disks All Z3 machine types
Compute-optimized H4D vCPUs Memory Local Titanium SSD disks All H4D machine types All H4D sole-tenant node types
Compute-optimized H3 vCPUs Memory All H3 machine types
Compute-optimized C2 vCPUs Memory Local SSD disks All C2 machine types All C2 sole-tenant node types
Compute-optimized C2D vCPUs Memory Local SSD disks All C2D machine types
Memory-optimized M1/M2 vCPUs Memory Local SSD disks All M1 and M2 machine types Doesn't apply to Memory Optimized Upgrade Premium SKUs
Memory-optimized M3 vCPUs Memory Local SSD disks All M3 machine types
Memory-optimized M4 6TB vCPUs Memory m4-ultramem-224 (the M4 machine type with 6 TB of memory)
Memory-optimized M4 vCPUs Memory All other M4 machine types
Memory-optimized X4 6TB vCPUs Memory X4 machine type with 6 TB of memory
Memory-optimized X4 8TB vCPUs Memory X4 machine type with 8 TB of memory
Memory-optimized X4 12TB vCPUs Memory X4 machine type with 12 TB of memory
Memory-optimized X4 16TB vCPUs Memory X4 machine type with 16 TB of memory
Memory-optimized X4 24TB vCPUs Memory X4 machine type with 24 TB of memory
Memory-optimized X4 32TB vCPUs Memory X4 machine type with 32 TB of memory
Accelerator-optimized A2 vCPUs Memory GPUs Local SSD disks All A2 machine types GPUs: NVIDIA A100
Accelerator-optimized A3 vCPUs Memory GPUs Local SSD disks A3 Edge and High machine types GPUs: NVIDIA H100
Accelerator-optimized A3 Mega vCPUs Memory GPUs Local SSD disks A3 Mega machine types GPUs: NVIDIA H100
Accelerator-optimized A3 Ultra (Available only with AI Hypercomputer) vCPUs Memory GPUs Local SSD disks A3 Ultra machine types GPUs: NVIDIA H200
Accelerator-optimized A4 (Available only with AI Hypercomputer) vCPUs Memory GPUs Local SSD disks All A4 machine types GPUs: NVIDIA B200
Accelerator-optimized A4X (Available only with AI Hypercomputer) vCPUs Memory GPUs Local SSD disks All A4X machine types GPUs: NVIDIA GB200
Graphics-optimized G2 vCPUs Memory GPUs Local SSD disks All G2 machine types GPUs: NVIDIA L4
Graphics-optimized G4 vCPUs Memory GPUs Local Titanium SSD disks All G4 machine types GPUs: NVIDIA RTX PRO 6000

You can't purchase commitments for f1-micro, or g1-small machine types or for the sole-tenant premium charge.

Commitments for Compute Engine machine types

Google Cloud offers resource-based commitments for hardware resources of several Compute Engine machine family series. Purchase the appropriate commitment type for the machine types you plan to use.

General-purpose machine types

CUDs for general-purpose machine types are applied to resources in the following order:

  1. N4, N2, N2D, E2, or N1 custom machine types, depending on the commitment that you purchase
  2. Sole-tenant nodes
  3. E2, N2, N2D, N4, N4D, N4A (In Preview; CUDs available at GA), C4, C4A, C4D, C3, C3D, Tau T2D, or N1 predefined machine types, depending on which commitment that you purchase.

When you purchase commitments for general-purpose machine types, you pick which machine series the commitment applies to. For example, if you purchase general-purpose E2 commitments, they apply to only E2 machine types. Similarly, if you purchase general-purpose N2, N2D, N4, N4D, N4A, C4, C4A, C4D, C3, C3D, Tau T2D, or N1 commitments, the commitments never overlap.

For example, assume you have a region with the following mix:

You purchase N2 commitments for 15 vCPUs and 13.5 GB of memory for committed use. The CUDs would be applied first to the N2 custom machine types, and any remaining discounts would be applied to the N2 predefined machine types. In this case, all 10 vCPUs of the N2 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.

Finally, the remaining 5 vCPUs of committed use would apply to 5 random vCPUs across the two n2-standard-4 machine types. Any resource usage that isn't covered by your commitments might qualify for applicable SUDs.

Additionally, if you use your commitments to run custom machine types, then Compute Engine charges a 5% premium over the commitment prices. Compute Engine charges this premium for the portion and duration of your commitment that you run these custom machine type VMs.

Commitments are aggregated by machine series. If you are unsure of how many commitments to purchase, you might want to purchase a smaller number of commitments, then add more as you need them. For example, you can purchase multiple contracts for 10 vCPUs and zero memory, then purchase separate contracts for additional memory.

To purchase a commitment for general-purpose machine types, seePurchase commitments without attached reservationsand Purchase commitments with attached reservations.

Memory-optimized machine types

The commitment type that you must use while purchasing commitments for memory-optimized machine type resources changes depending on the machine type. There is a unique commitment type for each of the following groups of machine types:

For X4 machine types, there is a unique commitment type for each of the available memory options:

You must purchase the commitment type that matches the machine series and type of your instance.

The Memory Optimized Upgrade Premium Core and RAM SKUs, which are specific to M2 machine types, are not eligible for CUDs. The prices for these SKUs are incorporated into the price rates that are documented on theVM instance pricing page and in the pricing calculator.

If you intend to use memory-optimized machine types, purchase memory-optimized commitments. To purchase a commitment for memory-optimized machine types, see Purchase commitments without attached reservations.

Storage-optimized machine types

To purchase commitments for storage-optimized Z3 machine types, seePurchase commitments without attached reservationsand Purchase commitments with attached reservations.

Compute-optimized machine types

To purchase commitments for compute-optimized machine types, see one of the following:

Accelerator-optimized machine types

Accelerator-optimized VMs have a specific model and number of NVIDIA GPUs attached. When you purchase commitments for these machine types, you must also reserve your committed GPUs and attach those reservations to your commitments.

To purchase a commitment for these machine types, see the following:

Commitments for GPUs and Local SSD disk resources

When you purchase commitments for GPUs, you can only specify one GPU type for any given commitment. Consequently, that commitment covers usage only for the specified GPU type. If you want to receive CUDs for using multiple GPU types, then you must purchase separate commitments for each GPU type. For example, suppose that you use both NVIDIA V100 GPUs and NVIDIA P100 GPUs. If you only have a commitment for NVIDIA P100 GPUs, then that commitment can't cover your usage from NVIDIA V100 GPUs. To receive CUDs for both NVIDIA P100 GPU usage and NVIDIA V100 GPU usage, you must purchase separate commitments for each GPU type.

Additionally, to purchase commitments for GPUs, Local SSD disks, or both you must reserve the resources and attach the reservations to your commitment. Reserving these resources is required to make sure that the resources are always available for you (whether you use them or not). There are no additional charges for reserving the resources.

To learn how to purchase commitments for GPUs, see one of the following:

To learn how to purchase commitments for Local SSD disks, seePurchase commitments with attached reservationsin this document.

To learn more about commitments with attached reservations, seeAttach reservations to resource-based commitments.

Quotas for commitments and committed resources

You can only purchase resource-based commitments for resources in a specific region if you have quota available in that region for both of the following:

Specifically, if you want to purchase commitments for any vCPUs, GPUs, or Local SSD disks, then you need to have quota available both for commitments and for those specific committed SKUs in the region where you want to purchase the commitment. There is no quota on memory, so you don't need to have separate quota for committed memory to purchase a commitments for memory.

For example, to purchase 5 commitments that cover 32 vCPUs of general-purpose N1 machine type, 16 GB memory, 4 NVIDIA P4 GPUs, and 2 Local SSD disks inus-central1 region, you must have quota for each of the following:

Quota limits

By default, Compute Engine offers a specific amount of commitment quota for each type of committed resource. These quota limits determine the number of commitments you can purchase and the amount of resources you can commit to. To learn how to view the current quota limits and quota usage values for your commitments and committed resources, seeView quotas in the Google Cloud console.

If you consistently pay for a very high amount of committed vCPUs for your projects across different regions, then you might be eligible for unlimited quota on your committed vCPUs for all machine types (except for memory-optimized machine types) in all regions.

If you use up all your commitment quota, you won't be able to purchase new commitments. Likewise, if you exhaust your committed resource quota, then you won't be able to purchase a new commitment for that resource even if you have commitment quota available. For example, if you used up all of your commitment quota, then the server returns the following error when you make a commitment purchase request:

"Quota 'COMMITMENTS' exceeded. Limit: 0.0"

Increase quota limits

If you don't have enough quota for your commitments or your committed resources, you can always request for a quota increase from the Quotas page. You can request for quota increases at any time. To learn how to submit a request to increase quota limits for your resources, seeRequest a quota adjustment.

For example, consider a scenario where you purchased two commitments for a total of four NVIDIA V100 GPUs in us-central1 and met your quota limits. region. Suppose you want to purchase two new commitments for twoNVIDIA V100 GPUs each, in the same region, you must do the following:

  1. Submit a new quota request to increase your Committed NVIDIA V100 GPUsquota in us-central1 to the new maximum number (eight) that you want.
  2. Submit a new quota request to increase your Commitments quota inus-central1 to match the new maximum number (four) that you want.
    Wait for your requests to be approved and closed. After your requests are approved, your commitment and committed GPU quotas inus-central1 increase to match your new needs. You can then purchase your new commitments.

If you place a request for an increase in quota limit for a resource that already has unlimited quota by default, then the quota value for that resource remains unlimited and you are notified that your requested limit is below the approved limit.

Set a cap for quota limits

You can set a cap on the quota value for your committed resources by creating a consumer quota override. For resources that have unlimited quota by default, creating a consumer quota override decreases the quota value. To return the default quota to its unlimited value, you must remove the consumer override that was set for your committed SKUs. For more information, seeCreating a consumer quota overrideand Deleting a consumer quota override.

To learn more about how to manage quotas for your resources, seeView and manage quotas.

Purchase commitments without attached reservations

You can purchase commitments for vCPUs, memory, or both without attaching any reservations for those resources. You can purchase these commitments using the Google Cloud console, the gcloud CLI, or the API.

To learn more about commitments with attached reservations, seeAttach reservations to resource-based commitments

To purchase commitments for GPUs, Local SSDs disks, or both, seePurchase commitments with attached reservations.

By default, project owners have permission to purchase committed use discount contracts. However, it's possible for owners to create custom roles that include or exclude certain users. Read aboutaccess control to make sure you have permission to purchase a committed use discount contract.

After you purchase a commitment, your commitment becomes active on the following day at 12 AM US and Canadian Pacific Time (UTC-8, or UTC-7 during daylight saving time). Compute Enginemaintains a lien on your project for each region in your project where you purchase a commitment. When you purchase a new commitment for any region in your project, Compute Engine associates the lien for that region with the newly created commitment.

Between the time of your commitment purchase and its activation time, the status of your commitment remains as NOT_YET_ACTIVE (or as PENDING on the Google Cloud console). After activation, the status of your commitment changes toACTIVE. For example, suppose you purchase your commitment on January 20th at 10:00 PM US and Canadian Pacific Time (UTC-8 or UTC-7). Compute Engine creates your commitment immediately with its status as NOT_YET_ACTIVE. However, your commitment becomes ACTIVE only on January 21st at 12:00 AM US and Canadian Pacific Time (UTC-8 or UTC-7).

The discounts are automatically applied to applicable instances in the region you specified, and to the projects in which those discounts are purchased.

Permissions required for this task

To perform this task, you must have the followingpermissions:

Console

Before you purchase a commitment using the Google Cloud console, select the project that you want to use to purchase the commitment. IfCUD sharingis enabled for a Cloud Billing account, you can purchase the commitment using any project from that Cloud Billing account. After you select the project, do the following:

  1. In the Google Cloud console, go to the Committed use discountspage.
    Go to Committed use discounts
  2. To purchase a commitment, clickPurchase commitment. The Purchase a committed use discount page opens and displays the Hardware tab.
  3. In the Name field, enter a name for your commitment.
  4. In the Region field, select the region where you want to commit to Compute Engine resources.
  5. In the Commitment type field, select the machine family series for your committed resources. For vCPUs, memory, or both, you can choose from the following commitment types:
    • For A2 machine types, select Accelerator-optimized A2
    • For A3 Edge and A3 High machine types, select Accelerator-optimized A3
    • For A3 Mega machine types, select Accelerator-optimized A3 Mega
    • For G2 machine types, select Graphics-optimized G2
    • For G4 machine types, select Graphics-optimized G4
    • For C2 machine types, select Compute-optimized C2
    • For C2D machine types, select Compute-optimized C2D
    • For H3 machine types, select Compute-optimized H3
    • For H4D machine types, select Compute-optimized H4D
    • For C3 machine types, select General-Purpose C3
    • For C3D machine types, select General-Purpose C3D
    • For C4 machine types, select General-Purpose C4
    • For C4A machine types, select General-Purpose C4A
    • For C4D machine types, select General-Purpose C4D
    • For E2 machine types, select General-Purpose E2
    • For N1 machine types, select General-Purpose N1
    • For N2 machine types, select General-Purpose N2
    • For N2D machine types, select General-Purpose N2D
    • For N4 machine types, select General-Purpose N4
    • For N4D machine types, select General-Purpose N4D
    • For N4A machine types, select General-Purpose N4A (In Preview; CUDs available at GA)
    • For Tau T2D machine types, select General-Purpose T2D
    • For M1 or M2 machine types, select Memory-optimized M1/M2
    • For M3 machine types, select Memory-optimized M3
    • For M4 machine types, select Memory-optimized M4
    • For M4 machine types with 6 TB of memory, select Memory-optimized M4 6TB
    • For the X4 machine type with 6 TB of memory, select Memory-optimized X4 480 6T
    • For the X4 machine type with 8 TB of memory, select Memory-optimized X4 480 8T
    • For the X4 machine type with 12 TB of memory, select Memory-optimized X4 960 12T
    • For the X4 machine type with 16 TB of memory, select Memory-optimized X4 960 16T
    • For the X4 machine type with 24 TB of memory, select Memory-optimized X4 1440 24T
    • For the X4 machine type with 32 TB of memory, select Memory-optimized X4 1920 32T
    • For Z3 machine types, select Storage-optimized Z3
  6. In the Duration section, do the following:
    1. To specify your commitment's plan, select either 1 year or3 years. This setting determines the preset term length of your commitment.
    2. Optional. To specify a custom term length for your commitment, click the Extend end date toggle and then, in the Date field, specify the custom end date that you want. For more information, see Extend the term length of commitments.
  7. In the Cores field, enter the number of vCPUs that you want to commit to purchasing.
  8. In the Memory field, enter the amount, in GB, of memory that you want to commit to purchasing.
    You can specify memory only in increments of 0.25 GB. To specify a custom memory value for your commitment, use gcloud CLI or REST instead.
  9. To finish purchasing your commitment, do the following:
    1. Click Purchase.
    2. In the Purchase a committed use discount dialog, if you agree with the service specific terms, clickPurchase again.

gcloud

Using the gcloud CLI, run thegcloud compute commitments create command:

gcloud compute commitments create COMMITMENT_NAME
--region REGION
--project PROJECT_ID
--resources vcpu=NUMBER_VCPUS,memory=MEMORY
--plan DURATION
--type COMMITMENT_TYPE

Replace the following:

Examples

_--reservation=reservation-01 _
_--reservation-zone=us-central1-a _
_--machine-type=a2-highgpu-4g _
_--accelerator=count=4,type=nvidia-tesla-a100 _
--vm-count=2

_--reservation=reservation-01 _
_--reservation-zone=us-central1-a _
--machine-type=n1-standard-32
_--accelerator=type=nvidia-tesla-v100,count=2 _
--vm-count=2

REST

In the API, make a POST request to theregionCommitments.insert method, with a request body that contains information about the commitment:

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

The resource body should contain the following:

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",
    "type": "GENERAL_PURPOSE",
    "resources": [
        {
            "amount": "5",
            "type": "VCPU"
        },
        {
            "amount": "19200",
            "type": "MEMORY"
        }
    ]
}

To create a memory-optimized commitment, include the type property. The following example shows a purchase of a 1 year commitment for an m1-megamem-96 machine type:

{
    "name": "example-memory-optimized-commitment",
    "plan": "TWELVE_MONTH",
    "type": "MEMORY_OPTIMIZED",
    "resources": [
        {
            "amount": "96",
            "type": "VCPU"
        },
        {
            "amount": "1434",
            "type": "MEMORY"
        }
      ]
}```

To create a compute-optimized commitment, include the `type` property. The
following example, purchases a 1 year commitment for a `c2-standard-16`
machine type:

```json
{
    "name": "example-compute-optimized-commitment",
    "plan": "TWELVE_MONTH",
    "type": "COMPUTE_OPTIMIZED",
    "resources": [
        {
            "amount": "16",
            "type": "VCPU"
        },
        {
            "amount": "1434",
            "type": "MEMORY"
        }
    ]
}

Purchase commitments with attached reservations

When you purchase a new commitment, you can attach reservations to your commitment in either of the following ways:

After you purchase a commitment, your commitment becomes active on the following day at 12 AM US and Canadian Pacific Time (UTC-8, or UTC-7 during daylight saving time). Between the time of your commitment purchase and its activation time, the status of your commitment remains as NOT_YET_ACTIVE (or as PENDING on the Google Cloud console). After activation, the status of your commitment changes toACTIVE. For example, suppose you purchase your commitment on January 20th at 10:00 PM US and Canadian Pacific Time (UTC-8 or UTC-7). Compute Engine creates your commitment immediately with its status as NOT_YET_ACTIVE. However, your commitment becomes ACTIVE only on January 21st at 12:00 AM US and Canadian Pacific Time (UTC-8 or UTC-7).

Requirements

Before you purchase a commitment with attached reservations, review these requirements and make sure that your commitment and reservations meet the following criteria:

Attach existing reservations

You can attach existing reservations while purchasing your commitment by using the Google Cloud console, the Google Cloud CLI, or REST.

Permissions required for this task

To perform this task, you must have the followingpermissions:

Console

Before you purchase a commitment using the Google Cloud console, select the project that you want to use to purchase the commitment. IfCUD sharingis enabled for a Cloud Billing account, you can purchase the commitment using any project from that Cloud Billing account. After you select the project, do the following:

  1. In the Google Cloud console, go to the Committed use discountspage.
    Go to Committed use discounts
  2. To purchase a commitment, clickPurchase commitment. The Purchase a committed use discount page opens and displays the Hardware tab.
  3. In the Name field, enter a name for your commitment.
  4. In the Region field, select the region where you want to commit to Compute Engine resources.
  5. In the Commitment type field, select the machine family series for your committed resources. The following commitment types provide options for GPUs, Local SSD disks, or both:
    • For A2 machine types, select Accelerator-optimized A2
    • For A3 Edge and A3 High machine types, select Accelerator-optimized A3
    • For A3 Mega machine types, select Accelerator-optimized A3 Mega
    • For G2 machine types, select Graphics-optimized G2
    • For G4 machine types, select Graphics-optimized G4
    • For C2 machine types, select Compute-optimized C2
    • For C2D machine types, select Compute-optimized C2D
    • For C3 machine types, select General-Purpose C3
    • For C3D machine types, select General-Purpose C3D
    • For C4 machine types, select General-Purpose C4
    • For C4A machine types, select General-Purpose C4A
    • For C4D machine types, select General-Purpose C4D
    • For N1 machine types, select General-Purpose N1
    • For N2 machine types, select General-Purpose N2
    • For N2D machine types, select General-Purpose N2D
    • For M1 machine types, select Memory-optimized M1/M2
    • For M3 machine types, select Memory-optimized M3
    • For Z3 machine types, select Storage-optimized Z3
  6. For Duration, do the following:
    1. To specify your commitment's plan, select either 1 year or3 years. This setting determines the preset term length of your commitment.
    2. Optional. To specify a custom term length for your commitment, click the Extend end date toggle and then, in the Date field, specify a custom end date. For more information, see Extend the term length of commitments.
  7. In the Cores field, enter the number of vCPUs that you want to commit to purchasing.
  8. In the Memory field, enter the amount, in GB, of memory that you want to commit to purchasing.
    You can specify memory only in increments of 0.25 GB. To specify a custom memory value for your commitment, use gcloud CLI or REST instead.
  9. To commit to GPUs, in the GPUs section, clickAdd GPU and then do the following:
    1. In the GPU type field, select the type of GPU.
    2. In the Number of GPUs field, enter the number of GPUs.
    3. Optional: If your GPU model supportsNVIDIA RTX Virtual Workstations (vWS) for graphics workloads, and you plan to run graphics-intensive workloads, select theEnable Virtual Workstation (NVIDIA GRID) checkbox.
  10. To commit to Local SSD disks, in the Local SSDs section, clickAdd SSD and then, in the Number of SSDs field, specify the number of disks.
  11. To attach one or more existing reservations to the commitment, in the Reservations field, select Attach existing reservations.
    The Google Cloud console displays a list of all the reservations in your project whose region, machine type, and GPU type match with the commitment. Then, do the following:
  12. Optional. To view reservations with specific properties, in theFilter menu, add or remove filters for the properties that you want.
  13. Select all the reservations that you want to attach to the commitment.
  14. To finish purchasing your commitment with the attached reservations, do the following:
  15. Click Purchase.
  16. In the Purchase a committed use discount dialog, if you agree with the service specific terms, clickPurchase again.

gcloud

To purchase a commitment by attaching existing reservations, run thegcloud compute commitments create command. In your command, include the --existing-reservation flag to specify an existing reservation that you want to attach to your commitment. Include a new instance of this flag for every existing reservation that you want to attach. You can attach any number of existing reservations to your commitment.

For example, to purchase a commitment by attaching two reservations to it, run the following command:

gcloud compute commitments create COMMITMENT_NAME
--region=REGION
--project=PROJECT_ID
--resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD
--resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE
--plan=DURATION
--type=COMMITMENT_TYPE
--custom-end-time=CUSTOM_END_DATE
--existing-reservation=name='RESERVATION_NAME_1',zone='RESERVATION_ZONE_1'
--existing-reservation=name='RESERVATION_NAME_2',zone='RESERVATION_ZONE_2'

Replace the following:

Example: Purchase a commitment by attaching existing reservations

Suppose you have two reservations res-01 and res-02 in theus-central1-a and us-central1-b zones of the project myproject. Suppose that these reservations hold a combined capacity for 4 NVIDIA P100 GPUs and 4 Local SSD disks. To purchase a new commitment in theus-central1 region of this project for these GPUs and Local SSD disks, and use these existing reservations as attached reservations, run the following command. Note that the example commitment also contains vCPUs and memory.

gcloud compute commitments create commitment-01
--region=us-central1
--project=myproject
--resources=vcpu=96,memory=624GB,local-ssd=1500
--resources-accelerator=type=nvidia-tesla-p100,count=4
--plan 12-month
_--existing-reservation=name=res-01,zone=us-central1-a _ --existing-reservation=name=res-02,zone=us-central1-b

REST

To purchase a commitment by attaching existing reservations, make a POSTrequest to the regionCommitments.insert method. In your request, include the existingReservations field to specify a comma-separated list of all the existing reservations that you want to attach to your commitment. You can attach any number of existing reservations to your commitment.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments

{ "name": "COMMITMENT_NAME", "plan": "DURATION", "type": COMMITMENT_TYPE, "resources": [ { "amount": "COMMITTED_VCPUS", "type": "VCPU" }, { "amount": "COMMITTED_MEMORY", "type": "MEMORY" }, { "acceleratorType": "COMMITTED_ACCELERATOR_TYPE", "amount": "COMMITTED_ACCELERATOR_COUNT", "type": "ACCELERATOR" } { "amount": "COMMITTED_LOCAL_SSD", "type": "LOCAL_SSD" } ], "customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ", "existingReservations": "RESERVATION_URLs" }

Replace the following:

Example: Purchase a commitment by attaching existing reservations

Suppose you have two reservations res-01 and res-02 in theus-central1-a and us-central1-b zones of the project myproject. Suppose that these reservations hold a combined capacity for 4 NVIDIA P100 GPUs and 4 Local SSD disks. To purchase a new commitment in theus-central1 region of this project for these GPUs and Local SSD disks and to use these existing reservations as attached reservations, make the following POST request. Note that the example commitment also contains vCPUs and memory.

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments

{ "name": "commitment-01", "plan": "TWELVE_MONTH", "type": "GENERAL_PURPOSE" "resources": [ { "amount": "96", "type": "VCPU" }, { "amount": "638976", "type": "MEMORY" }, { "acceleratorType": "nvidia-tesla-p100", "amount": "4", "type": "ACCELERATOR" }, { "amount": "1536000", "type": "LOCAL_SSD" } ], "existingReservations": [ "https://www.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/reservations/res-01", "https://www.googleapis.com/compute/v1/projects/my-project/zone/us-central1-b/reservations/res-02" ] }

Create new reservations to attach

You can create your attached reservations while purchasing your commitment by using the Google Cloud console, the Google Cloud CLI, or REST.

Permissions required for this task

To perform this task, you must have the followingpermissions:

Console

Before you purchase a commitment using the Google Cloud console, select the project that you want to use to purchase the commitment. IfCUD sharingis enabled for a Cloud Billing account, you can purchase the commitment using any project from that Cloud Billing account. After you select the project, do the following:

  1. In the Google Cloud console, go to the Committed use discountspage.
    Go to Committed use discounts
  2. To purchase a commitment, clickPurchase commitment. The Purchase a committed use discount page opens and displays the Hardware tab.
  3. In the Name field, enter a name for your commitment.
  4. In the Region field, select the region where you want to commit to Compute Engine resources.
  5. In the Commitment type field, select the machine family series for your committed resources. The following commitment types provide options for GPUs, Local SSD disks, or both:
    • For A2 machine types, select Accelerator-optimized A2
    • For A3 Edge and A3 High machine types, select Accelerator-optimized A3
    • For A3 Mega machine types, select Accelerator-optimized A3 Mega
    • For G2 machine types, select Graphics-optimized G2
    • For G4 machine types, select Graphics-optimized G4
    • For C2 machine types, select Compute-optimized C2
    • For C2D machine types, select Compute-optimized C2D
    • For C3 machine types, select General-Purpose C3
    • For C3D machine types, select General-Purpose C3D
    • For C4 machine types, select General-Purpose C4
    • For C4A machine types, select General-Purpose C4A
    • For C4D machine types, select General-Purpose C4D
    • For N1 machine types, select General-Purpose N1
    • For N2 machine types, select General-Purpose N2
    • For N2D machine types, select General-Purpose N2D
    • For M1 machine types, select Memory-optimized M1/M2
    • For M3 machine types, select Memory-optimized M3
    • For Z3 machine types, select Storage-optimized Z3
  6. For Duration, choose either 1 year or 3 years as your commitment's term duration.
  7. In the Cores field, enter the number of vCPUs that you want to commit to.
  8. In the Memory field, enter the amount, in GB, of memory that you want to commit to.
  9. To commit to GPUs, in the GPUs section, clickAdd GPU and then do the following:
    1. In the GPU type field, select the type of GPU.
    2. In the Number of GPUs field, enter the number of GPUs.
    3. Optional: If your GPU model supportsNVIDIA RTX Virtual Workstations (vWS) for graphics workloads, and you plan to run graphics-intensive workloads, select theEnable Virtual Workstation (NVIDIA GRID) checkbox.
  10. To commit to Local SSD disks, in the Local SSDs section, clickAdd SSD and then, in the Number of SSDs field, specify the number of disks.
  11. To create a new reservation and attach it to the commitment, in theReservations field, select Create reservations and then do the following. Repeat this step for every new reservation that you want to create and attach.
  12. Click Add a reservation. The New reservation section appears.
  13. In the Name field, enter a name for your attached reservation.
  14. In the Region field, select the same region as your commitment.
  15. In the Zone field, select the zone where you want to reserve your resources.
  16. In the Share type section, specify how you want to share this reservation in one of the following ways:
    • To create a single-project reservation, select Local.
    • To create a reservation that is shared with multiple projects, select Shared. Then, to specify the projects to share the this reservation with, clickAdd projects, and then select the projects that you want from the current project's organization.
  17. In the Use with VM instance field, select how you want VMs to consume your reservation in one of the following ways:
    • To allow VMs with matching properties to automatically consume this reservation, click Use reservation automatically(default).
    • To consume this reservation's resources only when creating VMs with matching properties that specifically target this reservation by name, click select Select specific reservation.
  18. In the Resource details section, do the following:
    1. In the Number of VM instances field, enter the number of VM instances that you want to reserve.
    2. In the Machine configuration section, specify the properties of your reserved VMs in one of the following ways:
      1. To specify your the properties of your VMs using an existinginstance template, select Use instance template.
      In the Instance template field, select an instance template that specifies the same machine family series as your commitment. If you select a regional instance template, the region of that instance template must also match with the region specified in your commitment.
      2. To manually specify the properties of your VMs, selectSelect machine type and then do the following:
      1. Select the machine family that applies to the machine series that you specified for the commitment:
      * General purpose for general-purpose machine series
      * Compute optimized for compute-optimized machine series
      * Memory optimized for memory-optimized machine series
      * GPUs for accelerator-optimized machine series
      2. In the table that has Series column, select the same machine series that you specified for the commitment.
      3. In the Machine type field, specify a predefined or custom machine type in one of the following ways:
      1. To choose a predefined machine type, select Presetand then select the machine type that you want.
      2. To choose a custom machine type, select Customand then specify Cores and Memory that you want.
      4. To specify a minimum CPU platform, GPUs, or both, expand the CPU Platform and GPU menu and do the following:
      1. Optional: To specify a minimum CPU platform, in theCPU Plaform list, select an option.
      2. Optional: To reserve GPUs, clickAdd GPU. Then, in the GPU type and Number of GPUsfields, select the type and number of GPUs for each VM.
      5. To reserve Local SSD disks, do the following:
      1. In the Number of disks field, select the number of Local SSD disks that you want for each VM.
      2. In the Interface type field, select the interface for the Local SSD disks.
  19. To finish specifying the properties for this reservation, clickDone.
  20. To finish purchasing your commitment with the attached reservations, do the following:
  21. Click Purchase.
  22. In the Purchase a committed use discount dialog, if you agree with the service specific terms, clickPurchase again.

gcloud

To create your attached reservations while purchasing your commitment, run the gcloud compute commitments create command.

Depending on whether you want to attach a single reservation or multiple reservations, run the command in one of the following ways:

Replace the following with the corresponding properties of the commitment and the attached reservations:

Commitment

Attached reservations

Compute Engine creates the commitment and the attached reservations only if there are enough resources of the specified machine type in the target zone, and sufficient quota, at the time of your request. If your purchase was successful, you see a success message similar to the following:

Created[https://www.googleapis.com/compute/v1/projects/your-project/regions/your-region/commitments/your-commitment-name]

Examples for purchasing commitments by creating new reservations to attach

The following example scenarios and commands show how you can purchase a commitment for GPUs, Local SSD disks, or both by creating new reservations to attach to that commitment.

Example 1: Purchase a commitment for GPUs by attaching a single new reservation

Suppose you want to purchase a commitment commitment-01 in theus-central1 region that includes 4 NVIDIA V100 GPUs. You want to create a new reservation reservation-01 as the attached reservation for those GPUs. Suppose you also want to specify Compute Engine to use those reserved GPUs across 2 n1-standard-32 VMs in the us-central1-azone. To purchase this example commitment with its attached reservation, run the following command:

gcloud compute commitments create commitment-01
--region=us-central1
--project=myproject
--resources=vcpu=96,memory=624GB
--resources-accelerator=type=nvidia-tesla-v100,count=4
--plan 12-month
_--reservation=reservation-01 _ _--reservation-zone=us-central1-a _ _--machine-type=n1-standard-32 _ _--accelerator=type=nvidia-tesla-v100,count=2 _ --vm-count=2

Example 2: Purchase a commitment for GPUs without committing to vCPUs or memory

To commit to and reserve GPUs and Local SSD disks without committing to vCPUs or memory, specify 0 as the value for vCPU and memory quantities. For example, suppose you want to purchase a commitment commitment-02 for a single NVIDIA P4 GPU in the us-west2 region. You also want to create a new reservation as the attached reservation and specify Compute Engine to use the reserved GPU on an n1-standard-2 VM in theus-west2-b zone. To purchase this example commitment with its attached reservation, run the following command:

gcloud compute commitments create commitment-02
--region=us-west2
--project=myproject
--resources=vcpu=0,memory=0
--resources-accelerator=type=nvidia-tesla-p4,count=1
--plan 12-month
--reservation=reservation-01
--reservation-zone=us-west2-b
--machine-type=n1-standard-2
--accelerator=type=nvidia-tesla-p4,count=1
--vm-count=1

Example 3: Purchase a commitment for GPUs and Local SSD disks by attaching multiple new reservations

Suppose you want to purchase a commitment commitment-03 for 1 NVIDIA V100 GPU and 2 Local SSD disks in the us-central1 region. You also want to create and attach two reservations in theus-central1-a zone. In the first reservation, res-01, you want to reserve 1 n1-standard-2 VM with 1 GPU. You want to make res-01 a targeted reservation, which means that you must specifically target that reservation by name to use its reserved VMs. In the second reservation,res-02, you want to reserve 1 n1-standard-8 VM with 2 types of attached Local SSD disks.

To purchase this example commitment with the attached reservations, first create the YAML file with the properties of both reservations.

After you create the YAML file, to finish purchasing the commitment with its attached reservations, run the following command. Note that the example commitment also contains vCPU and memory resources.

gcloud compute commitments create commitment-03
--region=us-central1
--project=myproject
--resources=vcpu=96,memory=624,local-ssd=750
--resources-accelerator=type=nvidia-tesla-v100,count=1
--plan 12-month
--reservations-from-file=YAMLFILE

REST

To create your attached reservations while purchasing your commitment, make a POST request to theregionCommitments.insert method. In your request, include the reservations field to define a list of all the new reservations that you want to create and attach. You can attach any number of existing reservations that you want to your commitment.

Replace the following with the corresponding properties of the commitment and the attached reservations:

Commitment

Attached reservations

Compute Engine creates the commitment and the attached reservations only if there are enough resources of the specified machine type in the target zone, and sufficient quota, at the time of your request. If your purchase was successful, Compute Engine returns a 200 status for your REST API request.

Examples for purchasing commitments by creating new reservations to attach

The following example scenarios and commands show how you can purchase a commitment for GPUs, Local SSD disks, or both by creating new reservations to attach to that commitment.

Example 1: Purchase a commitment for GPUs by attaching a single new reservation

Suppose you want to purchase a commitment commitment-01 in theus-central1 region that includes 4 NVIDIA V100 GPUs. You want to create a new reservation reservation-01 as the attached reservation for those GPUs. Suppose you also want to specify Compute Engine to use those reserved GPUs across 2 n1-standard-8VMs in the us-central1-a zone. To purchase this example commitment with its attached reservation, make the following POST request:

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments

{ "name": "commitment-01", "plan": "TWELVE_MONTH", "type": "GENERAL_PURPOSE" "resources": [ { "amount": "96", "type": "VCPU" }, { "amount": "638976", "type": "MEMORY" }, { "acceleratorType": "nvidia-tesla-v100", "amount": "4", "type": "ACCELERATOR" } ], "reservations": [ { "name": "reservation-01", "specificReservation": { "count": "2", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": 2, "acceleratorType": "nvidia-tesla-v100" } ], "machineType": "n1-standard-8" } }, "specificReservationRequired": false, "zone": "us-central1-a" } ] }

Example 2: Purchase a commitment for GPUs without committing to vCPUs or memory

To commit to and reserve GPUs and Local SSD disks without committing to vCPUs or memory, specify 0 as the value for vCPU and memory quantities. For example, suppose you want to purchase a commitment commitment-02 for a single NVIDIA P4 GPU in the us-west2 region. You also want to create a new reservation as the attached reservation and specify Compute Engine to use the reserved GPU on an n1-standard-2 VM in the us-west2-b zone. To purchase this example commitment with its attached reservation, make the following POST request:

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-west2/commitments

{ "name": "commitment-02", "plan": "TWELVE_MONTH", "type": "GENERAL_PURPOSE", "resources": [ { "amount": "0", "type": "VCPU" }, { "amount": "0", "type": "MEMORY" }, { "acceleratorType": "nvidia-tesla-p4", "amount": "4", "type": "ACCELERATOR" } ], "reservations": [ { "name": "reservation-01", "specificReservation": { "count": "1", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": 4, "acceleratorType": "nvidia-tesla-p4" } ], "machineType": "n1-standard-2" } }, "specificReservationRequired": false, "zone": "us-west2-b" } ] }

Example 3: Purchase a commitment for GPUs and Local SSD disks by attaching multiple new reservations

Suppose you want to purchase a commitment commitment-03 for 1 NVIDIA V100 GPU and 2 Local SSD disks in the us-central1 region. You also want to create and attach two reservations in theus-central1-a zone. In the first reservation, res-01, you want to reserve 1 n1-standard-2 VM with 1 GPU. You want to make res-01 a targeted reservation, which means that you must specifically target that reservation by name to use its reserved VMs. In the second reservation,res-02, you want to reserve 1 n1-standard-8 VM with 2 types of attached Local SSD disks. To purchase this example commitment with the attached reservations, make the following POST request. Note that the example commitment also contains vCPU and memory resources.

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments

{ "name": "commitment-03", "plan": "TWELVE_MONTH", "type": "GENERAL_PURPOSE", "resources": [ { "amount": "96", "type": "VCPU" }, { "amount": "638976", "type": "MEMORY" }, { "acceleratorType": "nvidia-tesla-v100", "amount": "1", "type": "ACCELERATOR" }, { "amount": "768000", "type": "LOCAL_SSD" } ], "reservations": [ { "name": "res-01", "specificReservation": { "count": "1", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": 1, "acceleratorType": "nvidia-tesla-v100" } ], "machineType": "n1-standard-2" } }, "specificReservationRequired": true, "zone": "us-central1-a" }, { "name": "res-02", "specificReservation": { "count": "1", "instanceProperties": { "localSsds": [ { "diskSizeGb": "375", "interface": "SCSI" }, { "diskSizeGb": "375", "interface": "NVME" } ] "machineType": "n1-standard-8" } }, "specificReservationRequired": false, "zone": "us-central1-a" } ] }

After you purchase a commitment with attached reservations, the reservations remain active as long as the commitment is active. When your commitment expires, Compute Engine automatically deletes any attached reservations. If the reservations areautomatically consumed reservations, and you delete them, then any VM instances that were consuming it continue to run. You keep incurring charges for those VMs.

For the duration of your commitment's term, you cannot delete or resize any attached reservations that contain GPUs, Local SSD disks, or both. However, you can replace the commitment's existing attached reservations with new ones. For more information on what can and cannot be changed for your attached reservations, seeReplace reservations that are attached to commitments.

Purchase commitments for licenses

You can purchase commitments for your licenses if you run your workloads on VMs that use the following operating system (OS) images:

The CUD percentages that you receive for license commitments of each OS image depends on the number of vCPUs that your VM uses. The following tables show the CUD percentages for each type of software license commitment:

License commitment type Number of vCPUs 1-year CUD percentage 3-year CUD percentage
SLES images 1-2 77% 79%
SLES images 3-4 54% 59%
SLES images 5+ 45% 50%
SLES for SAP images 1-2 59% 63%
SLES for SAP images 3-4 59% 63%
SLES for SAP images 5+ 59% 63%
RHEL images 1-8 20% Unavailable
RHEL images 9-127 20% Unavailable
RHEL images 128+ 20% Unavailable

When you purchase a commitment for licenses, the commitment forms a "pool" of licenses that automatically apply to any running VM instances within a selected project in a specified region. The licenses in the commitment are not tied to any one particular VM. When a VM starts, it takes a committed license from the pool, and when the VM stops it returns the license to the pool, where the license can be used by another VM. As long as there are available committed licenses in the pool, you continue to receive discounts for the premium OS usage.

For example, if you need to run 10 VMs in two regions (5 VMs in us-central1and 5 VMs in us-west1) and under the same project ID, you must purchase 5 licenses in each region to cover those running VMs. For each commitment, your committed licenses can apply to any 5 concurrently running VMs at any time during the year in the respective region. You are billed monthly for the commitments regardless of your usage.

After you purchase a commitment, your commitment becomes active on the following day at 12 AM US and Canadian Pacific Time (UTC-8, or UTC-7 during daylight saving time). Compute Enginemaintains a lien on your project for each region in your project where you purchase a commitment. When you purchase a new commitment for any region in your project, Compute Engine associates the lien for that region with the newly created commitment.

Between the time of your commitment purchase and its activation time, the status of your commitment remains as NOT_YET_ACTIVE (or as PENDING on the Google Cloud console). After activation, the status of your commitment changes toACTIVE. For example, suppose you purchase your commitment on January 20th at 10:00 PM US and Canadian Pacific Time (UTC-8 or UTC-7). Compute Engine creates your commitment immediately with its status as NOT_YET_ACTIVE. However, your commitment becomes ACTIVE only on January 21st at 12:00 AM US and Canadian Pacific Time (UTC-8 or UTC-7).

You can't cancel a license commitment after you purchase it. When your license commitments expire, your running VMs continue to run and you are charged for the licenses at on-demand image prices.

Permissions required for this task

To perform this task, you must have the followingpermissions:

Purchase a license commitment using the Google Cloud console, the Google Cloud CLI, or REST.

Console

Before you purchase a commitment using the Google Cloud console, select the project where you want to use the resources and apply your CUDs. If you enabled CUD sharingfor your project's Cloud Billing account, then you can purchase the commitment for any project from that Cloud Billing account.

After you select the project, perform the following steps:

  1. In the Google Cloud console, go to the Committed Use Discountspage.
    Go to Committed Use Discounts
    The Commitment list page appears and displays theHardware commitments tab.
  2. Click Software license commitments.
  3. Click Purchase commitment.
    The Purchase a committed use discount page appears.
  4. In the Name field, enter a name for your commitment.
  5. In the Region field, select the region where you want to use resources at committed-use-discounted prices.
  6. In the Duration field, select acommitment plan, a 1-year or 3-year plan.
  7. In the License family field, select the OS license for which you want to purchase the commitment.
  8. In the License type and quantity section, do the following:
    1. For Type, select the number of vCPUs that applies.
    2. For Number of licenses, select the number of OS licenses that you want to commit to purchasing.
  9. Click Purchase.
  10. To finish purchasing your commitment, do the following:
  11. Click Purchase.
  12. In the Purchase a committed use discount dialog, if you agree with the service specific terms, clickPurchase again.

gcloud

Using the gcloud CLI, run thegcloud compute commitments create-licensecommand to purchase a license commitment.

gcloud compute commitments create-license COMMITMENT_NAME
--license LICENSE_URI --amount NUMBER_OF_LICENSES
--cores-per-license CORES_PER_LICENSE
--plan PLAN
--region REGION \

Replace the following:

For example, the following commitment is for 4 SAP licenses with 3-4 cores per license for 36 months in the us-central1 region:

gcloud compute commitments create-license commitment-1 --license https://www.googleapis.com/compute/v1/projects/myproject/global/licenses/sles-12 --amount=4 --cores-per-license=3-4 --plan=36-month --region=us-central1

For example, the following commitment is for 2 SLES for SAP licenses with 1-2 cores per license for 12 months in the us-central1 region:

gcloud compute commitments create-license commitment-2 --license https://www.googleapis.com/compute/v1/projects/myproject/global/licenses/sles-sap-12 --amount=2 --cores-per-license=1-2 --plan=12-month --region=us-central1

REST

Use the regionCommitments.insert methodand include the licenseResource field to define the license commitment's properties.

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

{ "name": COMMITMENT_NAME, "plan": PLAN, "category": "LICENSE", "licenseResource": { "coresPerLicense": CORES_PER_LICENSE, "amount": NUMBER_OF_LICENSES, "license": LICENSE_URI } }

Replace the following:

For example, the following commitment is for 4 SLES for SAP licenses with 3-4 cores per license for 36 months in the us-central1region.

POST https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-central1/commitments

{ "name": "commitment-3", "plan": "THIRTY_SIX_MONTH", "category": "LICENSE", "licenseResource": { "coresPerLicense": "3-4", "amount": "4", "license": "https://www.googleapis.com/compute/v1/projects/suse-sap-cloud/global/licenses/sles-sap-12" } }

Apply committed use discount recommendations

Google Cloud analyzes your VM spending trends with and without a commitment and generates CUDs recommendations. You can use CUD recommendations to optimize your compute costs. You can compare the costs with and without a commitment, and estimate how much you can save each month with a commitment.

CUD recommendations are available in the Google Cloud console. The Recommender generates a card with information about your VM usage over the last 30 days. If your VMs show a trend of uncommitted usage over 30 days, the Recommender classifies this as an opportunity to purchase commitments to reduce your VM costs.

Usage is considered uncommitted and eligible if the following is true.

Recommendations are refreshed once per day and take the previous 30 days of usage history into consideration.

Recommendations for CUDs are generated by two separate algorithms, which you can select from when purchasing (or accepting) them on the summary card.

To learn more about how CUD recommendations work, seeCommitted use discount Recommender.

Review and accept a recommendation

To learn how to purchase the recommended commitments, seePurchasing recommendations

Dismiss a recommendation

To learn how to dismiss your commitment recommendations or to restore recommendations that were previously dismissed, seeDismissing recommendations

History of recommendations

To learn how to view the history of your applied and dismissed commitment recommendations, seeViewing the history of recommendations.

View your commitments

View the list of all your commitments in the Google Cloud console, the Google Cloud CLI, or REST.

Console

In the Google Cloud console, view a list of commitments in theCommitted use discounts page.

Go to Committed use discounts

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

REST

You can get a list of commitments across all regions by making anaggregatedList requestto the following URL:

https://compute.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🔞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" }] } ]

Modify a commitment

You can modify your active commitments in the following ways:

After you create the commitment, you can't modify the commitment's project, type, or region.

Cancel a commitment

After you create a commitment, you can't cancel it. You must pay the agreed upon monthly amount for the duration of the commitment. Commitments are not affected by future changes to on-demand prices of your committed Compute Engine resources.

If you accidentally purchased a commitment or made a mistake while configuring your commitment, then you have 14 calendar days from the commitment start date to contact Cloud Billing support for help. Approval of any changes is subject to Google's discretion and isn't assured until confirmed by Google.

Understand your bill with committed use discounts

Read the following documents to gain a better understanding of your billing:

Support

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

What's next

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-12-15 UTC.