結合保留項目與承諾使用折扣


承諾使用折扣 (CUD):只要購買 1 年期或 3 年期的承諾使用合約 (亦稱為承諾使用量),即可享有 Compute Engine 資源的大幅折扣。您只要承諾達到一定的資源用量或支出門檻,即可享有資源用量費用的 CUD。不過,承諾使用合約不會為承諾資源保留可用區容量。如要以折扣價格取得可用區資源,並確保為這些資源保留足夠的容量,您必須同時購買承諾使用合約,以及為這些可用區資源建立保留項目。

本文說明如何為預留資源取得 CUD,以及如何將預留項目附加至依資源計算的承諾使用合約

事前準備

  • 瞭解預訂的基本概念,以及相關規定和限制。詳情請參閱「 預留項目簡介」。
  • 如果尚未設定驗證,請先完成設定。 「驗證」是指驗證身分的程序,確認您有權存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列任一選項,向 Compute Engine 進行驗證:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. 安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:

      gcloud init

      如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI

    2. Set a default region and zone.

    REST

    如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

      安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:

      gcloud init

      如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI

    詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。

預留資源的 CUD

只要專案中符合資格的資源用量適用有效的承諾,您就能獲得 CUD。如果您也為該專案中的資源保留容量,有效承諾的 CUD 也可套用至這些保留資源。如要讓任何預留資源符合 CUD 資格,必須符合下列規定:

  • 您未因資源用量而享有其他形式的折扣。
  • 承諾使用合約有效期間,VM 必須使用預留項目。
  • 至少下列屬性必須與有效承諾和 VM 消耗的預留項目相符:

    • 適用專案和區域
    • 機器系列

視資源類型而定,您可以透過下列任一方式取得預留資源的 CUD:

  • vCPU 和記憶體:如要取得這兩種資源類型的 CUD,可以購買包含必要資源類型的資源承諾使用合約或消費承諾使用合約。當專案中的 VM 使用屬性與有效承諾相符的保留項目時,這些資源類型的用量就會自動符合適用的 CUD 資格。

    只有按資源計算的承諾使用合約才能啟用CUD 共用。這麼做之後,您就能共用專案的 CUD,以支付連結至該承諾方案 Cloud Billing 帳戶的其他專案用量。

    如果您預留的資源超出承諾購買的數量,則額外資源不會享有 CUD。

  • GPU 和本機 SSD 磁碟:如要針對這兩種資源類型取得 CUD,請完成下列步驟:

    • 購買依資源計算的承諾使用合約,其中包含必要的資源類型。
    • 為所有承諾資源建立預留項目,這些預留項目的屬性必須與承諾相符,並將這些預留項目附加至承諾。

    專案中的 VM 使用這些附加的預留項目時,您就會開始收到適用於這些類型預留資源的 CUD。啟用 CUD 共用功能並附加共用預留項目後,其他用戶專案的用量也可能符合共用 CUD 的資格。不過,如要讓其他專案的使用量符合資格,您必須將保留項目分享限制在承諾的 Cloud Billing 帳戶內。

將預留項目附加至依資源計算的承諾使用合約

您可以將預留項目附加至任何依資源計算的承諾使用合約,確保在特定區域為您打算使用的承諾資源保留容量。您可以將多個保留項目附加至單一承諾合約,但保留項目只能附加至單一承諾合約。購買承諾產品後,您可以透過下列任一方式,將預留項目附加至該承諾產品:

  • 使用屬性與使用承諾相符的現有預留項目
  • 購買使用承諾時建立新的相符預留項目

購買附加保留項目的承諾後,只要承諾有效,保留項目就會維持有效狀態。等承諾一到期,Compute Engine 就會自動刪除所有附加的保留項目。刪除這些保留項目並不會影響任何使用這些保留項目的執行中 VM。執行中的 VM 會繼續執行,且系統仍會向您收取這些 VM 的費用。

不需要附加預留項目的已承諾資源

承諾使用的 vCPU 和記憶體不需要您將相應的預訂項目附加至承諾。不過,如果您購買的承諾使用合約包含 vCPU、記憶體或兩者,您仍可選擇附加指定這些資源的預留容量。如要瞭解如何購買僅適用於 vCPU、記憶體或兩者的承諾使用合約,而不附加預留項目,請參閱「購買不附加保留項目的承諾使用合約」。

需要附加預留項目的承諾資源

承諾使用的 GPU 和本機 SSD 磁碟 (C4A、C4D 或 Z3 執行個體的本機 Titanium SSD 磁碟除外) 必須附加相符的預留項目。購買包含任何 GPU、本機 SSD 磁碟或兩者的承諾時,您也必須保留這些資源,並將保留項目附加至承諾。您可以透過單一預留項目或多個預留項目組合來完成這項操作。購買這類承諾方案時,您也可以一併購買 vCPU、記憶體或兩者。不過,您不需要預留這些 vCPU 或記憶體。

如要瞭解如何購買 GPU 承諾使用合約,請參閱下列其中一篇文章:

如要瞭解如何購買本機 SSD 磁碟的承諾,請參閱本文的「購買附加保留項目的承諾」一節。

如要查看支援 GPU 和本機 SSD 磁碟 CUD 的完整機器系列清單,請參閱資源型 CUD 說明文件的「硬體承諾類型」一節。

附加預留項目中允許的資源數量

對於vCPU 和記憶體,您可以附加預留項目,指定多於或少於承諾數量的資源。如果您承諾使用的 vCPU 或記憶體多於預留量,Compute Engine 只會為這些預留資源保留容量。不過,您仍可使用額外的已承諾資源,具體情況視您所在區域的可用性而定。如果您預留的 vCPU 或記憶體多於承諾數量,則預留的額外資源不會享有 CUD。

舉例來說,如果您購買 4 個 vCPU 和 30 GB 記憶體的承諾,可以選擇執行下列任一操作:

  • 完全不附加任何預留項目。
  • 附加預訂項目,指定這些資源類型的任意組合,例如:

    • 4 個 vCPU 和 30 GB 記憶體
    • 2 個 vCPU 和 50 GB 記憶體
    • 10 個 vCPU 和 10 GB 記憶體

不過,如果承諾包含任何 GPU、本機 SSD 磁碟或兩者,您必須保留並附加所有這些資源。附加的預留項目必須指定您承諾使用的 GPU 和本機 SSD 磁碟確切數量和類型。因此,您附加的預留項目中,也不能有任何額外的 GPU 或本機 SSD 磁碟數量或類型。

舉例來說,假設您購買 30 GB 記憶體和 4 個 NVIDIA P100 GPU 的承諾方案,附加的預訂項目 (或附加的預訂項目組合) 可以指定任何數量的 vCPU 或記憶體,但必須有 4 個 NVIDIA P100 類型的 GPU。在這個範例中,您無法附加指定下列任何資源組合的預訂:

  • 6 個 NVIDIA P100 GPU
  • 2 個 NVIDIA P100 GPU
  • 4 個 NVIDIA P100 GPU 和 2 個 NVIDIA V100 GPU
  • 4 個 NVIDIA P100 GPU 和 4 個本機 SSD 磁碟

購買附加保留項目的承諾使用合約

購買新的承諾方案時,您可以透過下列任一方式,將預訂項目附加至承諾方案:

購買承諾後,承諾會在美國和加拿大太平洋時間 (即 UTC-8,日光節約時間實行期間則為 UTC-7) 隔天凌晨 12 點啟用。購買承諾使用合約後到啟用之前,合約狀態會保持為 NOT_YET_ACTIVE (或在Google Cloud 控制台中顯示為 PENDING)。啟用之後,承諾使用合約的狀態會變更為 ACTIVE。舉例來說,假設您在 1 月 20 日晚上 10 點 (美國和加拿大太平洋時間,即 UTC-8 或 UTC-7) 購買承諾,Compute Engine 會立即建立承諾,狀態為 NOT_YET_ACTIVE。不過,您的承諾會在 1 月 21 日美國和加拿大太平洋時間 (UTC-8 或 UTC-7) 凌晨 12 點生效。ACTIVE

需求條件

購買附帶預訂的約定方案前,請先詳閱下列規定,並確認約定方案和預訂符合下列條件:

  • 您必須在同一個專案和區域中購買承諾方案,並建立附加的預訂項目。
  • 您必須購買承諾,並為同一機器系列資源建立附加保留項目。
  • 您必須在附加的預留項目中停用自動刪除選項
  • 如果承諾使用合約包含 GPU,則保留項目和承諾使用合約中指定的 GPU 類型必須相符。
  • 如果是 GPU 和本機 SSD 磁碟,每種資源類型預留的資源數量,必須與該資源類型承諾使用的資源數量完全一致。不過,如果您購買本機 Titanium SSD 磁碟的承諾,並搭配 C4A、C4D 或 Z3 機型使用,則不適用這項規定。

    舉例來說,如果您要購買 4 個 V100 GPU 和 2 個本機 SSD 磁碟的承諾,則承諾附加的保留項目必須指定總共 4 個 V100 GPU 和 2 個本機 SSD。您預留的 vCPU 和記憶體可多於或少於您的承諾數量。不過,如果您購買 4 個 C4A vCPU 和 2 個本機 Titanium SSD 磁碟的承諾,就不必將任何預留項目附加至承諾。

  • 如果是 GPU,請購買您打算使用的特定 GPU 類型適用的承諾產品。舉例來說,您可以購買 NVIDIA P100 或 NVIDIA V100 的承諾方案,但不能使用為 NVIDIA P100 GPU 購買的承諾方案,來支付 NVIDIA V100 GPU 的費用。

  • 如果附加的預留項目是共用預留項目,且您想在承諾專案以外使用該預留項目時獲得適用的承諾使用折扣,則必須執行下列兩項操作:

    • 保留項目只能在與承諾方案屬於同一個 Cloud Billing 帳戶的專案之間共用。
    • 為該 Cloud Billing 帳戶啟用 CUD 共用功能

加入現有預留項目

購買承諾使用合約時,您可以透過 Google Cloud 控制台、Google Cloud CLI 或 REST 附加現有預留項目。

主控台

使用 Google Cloud 控制台購買約定用量前,請選取要用來購買約定用量的專案。如果 Cloud Billing 帳戶已啟用CUD 共用,您可以使用該 Cloud Billing 帳戶中的任何專案購買使用承諾。選取專案後,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「承諾使用折扣」頁面。

    前往「承諾使用折扣」

  2. 如要購買承諾方案,請按一下 「購買承諾方案」。系統會開啟「購買承諾使用折扣」頁面,並顯示「硬體」分頁。

  3. 在「Name」(名稱) 欄位中,輸入約定的名稱。

  4. 在「Region」(區域) 欄位中,選取要承諾使用 Compute Engine 資源的區域。

  5. 在「承諾類型」欄位中,選取承諾資源的機器系列。下列承諾類型提供 GPU、本機 SSD 磁碟或兩者的選項:

    • 適用於 A2 機器類型資源的加速器最佳化 A2
    • 加速器最佳化 A3,適用於 A3 Edge 和 A3 High 機型資源
    • 適用於 A3 Mega 機型資源的加速器最佳化 A3 Mega
    • 適用於 C2 機器類型資源的運算最佳化 C2
    • 適用於 C2D 機型資源的運算最佳化 C2D
    • 一般用途 C3:適用於 C3 機型資源
    • 一般用途 C3D:適用於 C3D 機型資源
    • 一般用途 N1:適用於 N1 機器類型資源
    • 一般用途 N2:適用於 N2 機器類型資源
    • 一般用途 N2D:適用於 N2D 機器資源
    • 圖形最佳化 G2,適用於 G2 機器類型資源
    • 適用於 M3 機器類型資源的記憶體最佳化 M3
    • 適用於 Z3 機型資源的儲存空間最佳化 Z3

  6. 在「Duration」(時間長度) 部分執行下列步驟:

    1. 如要指定承諾方案,請選取「1 年」或「3 年」。這項設定會決定承諾的預設期限長度。
    2. (選用步驟) 如要為約期指定自訂期限,請按一下「延長結束日期」切換鈕,然後在「日期」欄位中指定自訂結束日期。詳情請參閱「延長承諾使用合約的期限」。

  7. 在「Cores」(核心) 欄位中,輸入您要承諾購買的 vCPU 數量。

  8. 在「記憶體」欄位中,輸入您要承諾購買的記憶體數量 (以 GB 為單位)。

    記憶體只能以 0.25 GB 為單位指定。如要為約期指定自訂記憶體值,請改用 gcloud CLI 或 REST。

  9. 如要承諾使用 GPU,請在「GPUs」(GPU) 專區中,按一下 「Add GPU」(新增 GPU),然後執行下列操作:

    1. 在「GPU type」(GPU 類型) 欄位中,選取 GPU 類型。
    2. 在「Number of GPUs」(GPU 數量) 欄位中,輸入 GPU 數量。
    3. 選用:如果您的 GPU 型號支援適用於圖形工作負載的 NVIDIA RTX 虛擬工作站 (vWS),且您打算執行需要大量圖形的工作負載,請選取「啟用虛擬工作站 (NVIDIA GRID)」核取方塊。
  10. 如要承諾使用本機 SSD 磁碟,請在「本機 SSD」部分中,按一下 「新增 SSD」,然後在「SSD 數量」欄位中指定磁碟數量。

  11. 如要將一或多個現有預留項目加入承諾使用合約,請在「預留項目」欄位中選取「加入現有預留項目」

    Google Cloud 主控台會顯示專案中所有預留項目清單,這些預留項目的區域、機器類型和 GPU 類型都與承諾使用合約相符。然後執行下列操作:

    1. (選用步驟) 如要查看具有特定屬性的預訂,請在「篩選器」選單中,新增或移除所需屬性的篩選器。
    2. 選取要附加至承諾的所有預訂。
  12. 如要完成購買附加預留項目的承諾使用合約,請按照下列步驟操作:

    1. 按一下「購買」
    2. 在「購買承諾使用折扣」對話方塊中,如果您同意服務專屬條款,請再次點選「購買」

gcloud

如要購買承諾並附加現有預訂,請執行 gcloud compute commitments create 指令。 在指令中加入 --existing-reservation 旗標,指定要附加至承諾的現有預訂。針對要附加的每個現有預訂項目,加入這個旗標的新例項。您可以將任意數量的現有預留項目附加至承諾。

舉例來說,如要購買承諾並附加兩個預訂項目,請執行下列指令:

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'

更改下列內容:

  • COMMITMENT_NAME:承諾名稱。
  • REGION:承諾產品所在的區域。
  • PROJECT_ID:您要購買附加保留項目的承諾使用合約的專案 ID。
  • DURATION:承諾的期限長度,可為 12-month36-month
  • CUSTOM_END_DATE:選用。自訂約期結束日期,格式必須為 YYYY-MM-DD。舉例來說,如要指定 2024 年 4 月 20 日為自訂結束日期,請將格式設為 2024-04-20
  • COMMITMENT_TYPE:承諾類型。下列承諾類型提供 GPU、本機 SSD 磁碟或兩者的選項:

    • accelerator-optimized A2 機型資源
    • accelerator-optimized-a3 適用於 A3 Edge 和 A3 High 機型資源
    • accelerator-optimized-a3-mega,適用於 A3 Mega 機型資源
    • compute-optimized 適用於 C2 機器類型資源
    • compute-optimized-c2d 適用於 C2D 機型資源
    • compute-optimized-c3,適用於 C3 機型資源
    • compute-optimized-c3d 適用於 C3D 機型資源
    • general-purpose:適用於 N1 機器類型資源
    • general-purpose-n2:適用於 N2 機器類型資源
    • general-purpose-n2d (適用於 N2D 機器資源)
    • graphics-optimized 適用於 G2 機器類型資源
    • memory-optimized-m3 適用於 M3 機型資源
    • storage-optimized-z3:適用於 Z3 機器類型資源

  • COMMITTED_VCPUS:您要在承諾中使用的 vCPU 數量。這個數字必須是正整數。

  • COMMITTED_MEMORY:您希望承諾方案提供的記憶體大小 (單位為 MB 或 GB)。例如 10240MB10GB。如未指定單位,Compute Engine 會使用 GB 做為單位。

  • COMMITTED_LOCAL_SSD:您希望承諾使用合約包含的本機 SSD 空間大小 (以 GB 為單位)。每個本機 SSD 磁碟為 375 GB。

  • COMMITTED_ACCELERATOR_COUNT:您要在承諾使用合約中使用的 GPU 數量。

  • COMMITTED_ACCELERATOR_TYPE:承諾使用合約中所需的 GPU 類型。

  • RESERVATION_NAME_1RESERVATION_NAME_2:要附加至承諾的現有預訂項目名稱。

  • RESERVATION_ZONE_1RESERVATION_ZONE_2:要附加至承諾的現有預留項目可用區。

範例:附加現有預留項目來購買承諾

假設專案 myprojectus-central1-aus-central1-b 區域中有兩個預留項目 res-01res-02。假設這些保留項目合計可容納 4 個 NVIDIA P100 GPU 和 4 個本機 SSD 磁碟。如要為這些 GPU 和本機 SSD 磁碟,在這個專案的 us-central1 區域中購買新的承諾,並將這些現有保留項目做為附加保留項目,請執行下列指令。請注意,範例承諾也包含 vCPU 和記憶體。

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

如要購買承諾並附加現有預訂項目,請對 regionCommitments.insert 方法發出 POST 要求。在要求中加入 existingReservations 欄位,指定要附加至承諾的所有現有預訂項目,並以半形逗號分隔。您可以將任意數量的現有預訂項目附加至年約。

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"
}

更改下列內容:

  • COMMITMENT_NAME:承諾名稱。
  • REGION:承諾產品所在的區域。
  • PROJECT_ID:您要購買附加保留項目的承諾使用合約的專案 ID。
  • DURATION:承諾期限,可為 TWELVE_MONTHTHIRTY_SIX_MONTH
  • COMMITMENT_TYPE:承諾類型。下列承諾類型提供 GPU、本機 SSD 磁碟或兩者的選項:

    • ACCELERATOR_OPTIMIZED A2 機型資源
    • ACCELERATOR_OPTIMIZED_A3 適用於 A3 Edge 和 A3 High 機型資源
    • ACCELERATOR_OPTIMIZED_A3_MEGA,適用於 A3 Mega 機型資源
    • COMPUTE_OPTIMIZED 適用於 C2 機器類型資源
    • COMPUTE_OPTIMIZED_C2D 適用於 C2D 機型資源
    • COMPUTE_OPTIMIZED_C3,適用於 C3 機型資源
    • COMPUTE_OPTIMIZED_C3D 適用於 C3D 機型資源
    • GENERAL_PURPOSE:適用於 N1 機器類型資源
    • GENERAL_PURPOSE_N2:適用於 N2 機器類型資源
    • GENERAL_PURPOSE_N2D (適用於 N2D 機器資源)
    • GRAPHICS_OPTIMIZED 適用於 G2 機器類型資源
    • MEMORY_OPTIMIZED_M3 適用於 M3 機型資源
    • STORAGE_OPTIMIZED_Z3:適用於 Z3 機器類型資源

  • COMMITTED_VCPUS:您要在承諾中使用的 vCPU 數量。這個數字必須是正整數。

  • COMMITTED_MEMORY:您希望承諾方案提供的記憶體大小 (單位為 MB)。例如:10240MB

  • COMMITTED_LOCAL_SSD:您要在承諾使用合約中使用的本機 SSD 儲存空間大小 (以 GB 為單位)。每個本機 SSD 磁碟為 375 GB。

  • COMMITTED_ACCELERATOR_COUNT:您要在承諾中使用的 GPU 數量。

  • COMMITTED_ACCELERATOR_TYPE:承諾使用合約中所需的 GPU 類型。

  • CUSTOM_END_DATE:選用。自訂約期結束日期,格式必須為 YYYY-MM-DD。舉例來說,如要將自訂結束日期設為 2024 年 4 月 20 日,請將日期格式設為 2024-04-20

  • END_TIME:美國和加拿大太平洋時間凌晨 12 點 (UTC-8 或 UTC-7),即世界標準時間 (UTC) 的偏移量。只有在為合約指定自訂結束日期時,才需要指定這個值。請指定下列其中一個值:

    • 日光節約時間:07:00:00
    • 其他時間:08:00:00
  • RESERVATION_URLs:以半形逗號分隔的現有預訂網址清單,這些預訂要附加至承諾。舉例來說,如要附加 res-1res-2 這兩個預留項目,請指定下列項目:

    "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/example-res-1",
    "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-c/reservations/example-res-2"
    

範例:附加現有預留項目來購買承諾

假設專案 myprojectus-central1-aus-central1-b 區域中有兩個預留項目 res-01res-02。假設這些保留項目合計可容納 4 個 NVIDIA P100 GPU 和 4 個本機 SSD 磁碟。如要為這些 GPU 和本機 SSD 磁碟,在這個專案的 us-central1 區域購買新的承諾,並將這些現有保留項目做為附加保留項目,請提出下列 POST 要求。請注意,範例承諾也包含 vCPU 和記憶體。

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"
  ]
}

建立要附加的新預訂

購買承諾時,您可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST,建立附加的預訂項目。

主控台

使用 Google Cloud 控制台購買約定用量前,請選取要用來購買約定用量的專案。如果 Cloud Billing 帳戶已啟用CUD 共用,您可以使用該 Cloud Billing 帳戶中的任何專案購買使用承諾。選取專案後,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「承諾使用折扣」頁面。

    前往「承諾使用折扣」

  2. 如要購買承諾方案,請按一下 「購買承諾方案」。系統會開啟「購買承諾使用折扣」頁面,並顯示「硬體」分頁。

  3. 在「Name」(名稱) 欄位中,輸入約定的名稱。

  4. 在「Region」(區域) 欄位中,選取要承諾使用 Compute Engine 資源的區域。

  5. 在「承諾類型」欄位中,選取承諾資源的機器系列。下列承諾類型提供 GPU、本機 SSD 磁碟或兩者的選項:

    • 適用於 A2 機器類型資源的加速器最佳化 A2
    • 加速器最佳化 A3,適用於 A3 Edge 和 A3 High 機型資源
    • 適用於 A3 Mega 機型資源的加速器最佳化 A3 Mega
    • 適用於 C2 機器類型資源的運算最佳化 C2
    • 適用於 C2D 機型資源的運算最佳化 C2D
    • 一般用途 C3:適用於 C3 機型資源
    • 一般用途 C3D:適用於 C3D 機型資源
    • 一般用途 N1:適用於 N1 機器類型資源
    • 一般用途 N2:適用於 N2 機器類型資源
    • 一般用途 N2D:適用於 N2D 機器資源
    • 圖形最佳化 G2,適用於 G2 機器類型資源
    • 適用於 M3 機器類型資源的記憶體最佳化 M3
    • 適用於 Z3 機型資源的儲存空間最佳化 Z3

  6. 在「期限」中,選擇「1 年」或「3 年」做為承諾的期限。

  7. 在「核心」欄位中,輸入要承諾的 vCPU 數量。

  8. 在「記憶體」欄位中,輸入您要承諾的記憶體量 (以 GB 為單位)。

  9. 如要承諾使用 GPU,請在「GPUs」(GPU) 專區中,按一下 「Add GPU」(新增 GPU),然後執行下列操作:

    1. 在「GPU type」(GPU 類型) 欄位中,選取 GPU 類型。
    2. 在「Number of GPUs」(GPU 數量) 欄位中,輸入 GPU 數量。
    3. 選用:如果您的 GPU 型號支援適用於圖形工作負載的 NVIDIA RTX 虛擬工作站 (vWS),且您打算執行需要大量圖形的工作負載,請選取「啟用虛擬工作站 (NVIDIA GRID)」核取方塊。
  10. 如要承諾使用本機 SSD 磁碟,請在「本機 SSD」部分中,按一下 「新增 SSD」,然後在「SSD 數量」欄位中指定磁碟數量。

  11. 如要建立新的預留項目並附加至承諾,請在「預留項目」欄位中選取「建立預留項目」,然後執行下列步驟。針對要建立及連結的每個新預訂項目,重複執行這個步驟。

    1. 按一下「新增預留項目」。系統會顯示「New reservation」(新增預留項目) 區段。
    2. 在「Name」(名稱) 欄位中,輸入附加預留項目的名稱。
    3. 在「Region」(區域) 欄位中,選取與約期相同的區域。
    4. 在「Zone」(可用區) 欄位中,選取要預留資源的可用區。
    5. 在「Share type」(共用類型) 部分,以下列其中一種方式指定要如何共用這項預訂:

      • 如要建立單一專案預留項目,請選取「本機」
      • 如要建立與多個專案共用的預留項目,請選取「共用」。接著,如要指定要共用此預訂項目的專案,請按一下「新增專案」,然後從目前專案的機構中選取所需專案。
    6. 在「Use with VM instance」(搭配 VM 執行個體使用) 欄位中,選取 VM 使用保留項目的方式:

      • 如要允許屬性相符的 VM 自動使用這個預留項目,請按一下「自動使用預留項目」(預設)。
      • 如要只有在建立屬性相符的 VM 時,才使用這個保留項目的資源,且 VM 會明確指定這個保留項目的名稱,請按一下「選取特定保留項目」
    7. 在「資源詳細資料」部分,執行下列操作:

      1. 在「Number of VM instances」(VM 執行個體數量) 欄位中,輸入要預留的 VM 執行個體數量。
      2. 在「機器設定」部分中,透過下列其中一種方式指定預留 VM 的屬性:

        1. 如要使用現有的執行個體範本指定 VM 的屬性,請選取「使用執行個體範本」

          在「執行個體範本」欄位中,選取指定的機器系列與承諾相同的執行個體範本。如果您選取區域執行個體範本,該範本的區域也必須與承諾中指定的區域相符。

        2. 如要手動指定 VM 的屬性,請選取「選取機型」,然後執行下列操作:

          1. 選取適用於您為約定指定機器系列的機器家族:

            • 一般用途:適用於一般用途機器系列
            • 運算最佳化:適用於運算最佳化機器系列
            • 記憶體最佳化:適用於記憶體最佳化機器系列
            • 加速器最佳化機型系列的 GPU
          2. 在含有「系列」欄的表格中,選取您為承諾指定的相同機器系列。

          3. 在「Machine type」(機器類型) 欄位中,透過下列其中一種方式指定預先定義或自訂的機器類型:

            1. 如要選擇預先定義的機器類型,請選取「預設」,然後選取所需的機器類型。
            2. 如要選擇自訂機器類型,請選取「自訂」,然後指定所需的核心記憶體
          4. 如要指定最低 CPU 平台、GPU 或兩者,請展開「CPU Platform and GPU」(CPU 平台和 GPU) 選單,然後執行下列操作:

            1. 選用:如要指定最低 CPU 平台,請在「CPU Plaform」(CPU 平台) 清單中選取選項。
            2. 選用:如要預留 GPU,請按一下「新增 GPU」。 然後在「GPU type」(GPU 類型) 和「Number of GPUs」(GPU 數量) 欄位中,選取每個 VM 的 GPU 類型和數量。

          5. 如要預留本機 SSD 磁碟,請按照下列步驟操作:

            1. 在「磁碟數量」欄位中,選取每個 VM 要使用的本機 SSD 磁碟數量。
            2. 在「介面類型」欄位中,選取本機 SSD 磁碟的介面。
    8. 如要完成這項預訂的房源指定作業,請按一下「完成」

  12. 如要完成購買附加預留項目的承諾使用合約,請按照下列步驟操作:

    1. 按一下「購買」
    2. 在「購買承諾使用折扣」對話方塊中,如果您同意服務專屬條款,請再次點選「購買」

gcloud

如要在購買承諾產品時建立附加的保留項目,請執行 gcloud compute commitments create 指令

視要附加單一或多個預訂項目而定,請透過下列其中一種方式執行指令:

  • 如要建立單一預留項目並附加至承諾,請執行下列指令,定義附加預留項目的屬性:

    gcloud compute commitments create COMMITMENT_NAME \
        --region=REGION \
        --project=PROJECT_ID \
        --plan DURATION \
        --type COMMITMENT_TYPE
        --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \
        --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \
        --custom-end-time=CUSTOM_END_DATE \
        --reservation=RESERVATION_NAME \
        --reservation-zone=RESERVATION_ZONE \
        --machine-type=RESERVED_MACHINE_TYPE \
        --require-specific-reservation=REQUIRE_SPECIFIC_RESERVATION_VALUE \
        --vm-count=NUMBER_OF_RESERVED_VMs \
        --accelerator=type=RESERVED_ACCELERATOR_TYPE,count=RESERVED_ACCELERATOR_COUNT \
        --local-ssd=interface=INTERFACE_1,size=375 \
        --local-ssd=interface=INTERFACE_2,size=375 \
        --minimum-cpu-platform=MINIMUM_CPU_PLATFORM \
        --share-setting=SHARE_SETTING \
        --share-with=CONSUMER_PROJECT_ID_1,CONSUMER_PROJECT_ID_2
    
  • 如要建立多個保留項目並附加至承諾方案,請使用 YAML 檔案定義保留項目的屬性,然後在用於購買承諾方案的指令中指定該 YAML 檔案。您也可以選擇使用這個 YAML 檔案方法,為承諾方案建立及附加單一保留項目。如要使用這種方法建立附加預訂,請按照下列步驟操作:

    1. 在目前目錄中建立 YAML 檔案,並為每個附加的預訂項目指定所需設定。舉例來說,如要指定與兩個專案共用的共用預訂設定,並指定 GPU、兩個本機 SSD 磁碟和最低 CPU 平台,請在 YAML 檔案中加入下列文字:

      - reservation: RESERVATION_NAME
        reservation_zone: RESERVATION_ZONE
        require_specific_reservation: REQUIRE_SPECIFIC_RESERVATION_VALUE
        vm_count: NUMBER_OF_RESERVED_VMs
        machine_type: RESERVED_MACHINE_TYPE
        accelerator:
        - count: RESERVED_ACCELERATOR_COUNT
          type: RESERVED_ACCELERATOR_TYPE
        localssd:
        - interface: INTERFACE_1
          size: 375
        - interface: INTERFACE_2
          size: 375
        project: OWNER_PROJECT_ID
        minimum-cpu-platform: MINIMUM_CPU_PLATFORM
        share-setting: SHARE_SETTING
        share-with:
        - CONSUMER_PROJECT_ID_1
        - CONSUMER_PROJECT_ID_2
      
      

      如要為多個預訂指定設定,請針對要建立的每個預訂重複這些屬性。您可以將任意數量的現有預留項目附加至承諾。

    2. 執行 gcloud compute commitments create 指令並加入 --reservation-from-file 旗標。

      gcloud compute commitments create COMMITMENT_NAME \
          --region REGION \
          --project PROJECT_ID \
          --plan DURATION \
          --type COMMITMENT_TYPE \
          --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \
          --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \
          --reservations-from-file=YAML_FILE
      

將下列項目替換為承諾和附加預留項目的對應屬性:

承諾使用合約

  • COMMITMENT_NAME:承諾名稱。
  • REGION:承諾產品所在的區域。
  • PROJECT_ID:您要購買附加保留項目的承諾使用合約的專案 ID。
  • DURATION:承諾期限,可為 12-month36-month
  • CUSTOM_END_DATE:選用。自訂約期結束日期,格式必須為 YYYY-MM-DD。舉例來說,如要指定 2024 年 4 月 20 日為自訂結束日期,請將格式設為 2024-04-20
  • COMMITMENT_TYPE:承諾類型。下列承諾類型提供 GPU、本機 SSD 磁碟或兩者的選項:

    • accelerator-optimized A2 機型資源
    • accelerator-optimized-a3 適用於 A3 Edge 和 A3 High 機型資源
    • accelerator-optimized-a3-mega,適用於 A3 Mega 機型資源
    • compute-optimized 適用於 C2 機器類型資源
    • compute-optimized-c2d 適用於 C2D 機型資源
    • compute-optimized-c3,適用於 C3 機型資源
    • compute-optimized-c3d 適用於 C3D 機型資源
    • general-purpose:適用於 N1 機器類型資源
    • general-purpose-n2:適用於 N2 機器類型資源
    • general-purpose-n2d (適用於 N2D 機器資源)
    • graphics-optimized 適用於 G2 機器類型資源
    • memory-optimized-m3 適用於 M3 機型資源
    • storage-optimized-z3:適用於 Z3 機器類型資源

  • COMMITTED_VCPUS:您要在承諾中使用的 vCPU 數量。這個數字必須是正整數。

  • COMMITTED_MEMORY:您希望承諾方案提供的記憶體大小 (單位為 MB 或 GB)。例如 10GB10240MB。如未指定單位,Compute Engine 會使用 GB 做為單位。

  • COMMITTED_LOCAL_SSD:您要在承諾使用合約中使用的本機 SSD 儲存空間大小 (以 GB 為單位)。每個本機 SSD 磁碟為 375 GB。

  • COMMITTED_ACCELERATOR_COUNT:您要在承諾中使用的 GPU 數量。

  • COMMITTED_ACCELERATOR_TYPE:承諾使用合約中所需的 GPU 類型。

  • YAML_FILE:YAML 檔案的路徑,其中包含附加預訂項目的設定。

附加的預留項目

  • RESERVATION_NAME:附加預訂的名稱。
  • RESERVATION_ZONE:附加預留資源的可用區。
  • REQUIRE_SPECIFIC_RESERVATION_VALUE:指定附加的預留項目是否為明確指定的預留項目;可為 truefalse。如要進一步瞭解特定目標預留項目,請參閱「預留的運作方式」。
  • NUMBER_OF_RESERVED_VMS:要在附加的預留項目中預留的 VM 數量。
  • RESERVED_MACHINE_TYPE:您希望附加預留資源的 VM 採用機器類型

    • 如果是預先定義的機器類型,請使用 MACHINE_FAMILY-standard-CPUS 格式,例如 n2-standard-4
    • 如果是自訂機器類型,請使用 MACHINE_FAMILY-custom-CPUS-MEMORY 格式,例如 n2-custom-4-5120。如需相關限制的完整清單,請參閱自訂機器類型的規格

      更改下列內容:

      • MACHINE_FAMILY:機器類型系列,例如指定 n2 代表 N2 VM。
      • CPUSvCPUs 數量。
      • MEMORY:預留 VM 的總記憶體。記憶體必須是 256 MB 的倍數,且須以 MB 為單位來提供。舉例來說,如要建立具有 4 個 vCPU 和 5 GB 記憶體的 N2 VM (即 5120 MB),請使用 n2-custom-4-5120
  • RESERVED_ACCELERATOR_COUNT:您要在附加的預訂中,為每個 VM 新增的 GPU 數量。

  • RESERVED_ACCELERATOR_TYPE:您要在隨附預訂中新增的加速器類型

  • INTERFACE_1INTERFACE_2:您希望每個預留 VM 的「Local SSD 磁碟」應使用的介面類型。有效選項為:scsinvme。每個本機 SSD 磁碟為 375 GB。針對要新增的每個本機 SSD 磁碟,重複 local_ssd 參數。您最多可以指定 24 個本機 SSD。

  • OWNER_PROJECT_ID:您要購買承諾的專案 ID,並附上預訂。如要跨多個消費者專案共用附加的預訂,請指定這個欄位。

  • MINIMUM_CPU_PLATFORM:您要為附加的預訂項目指定的最低 CPU 平台。

  • SHARE_SETTING:附加預訂的共用類型。如要跨多個消費者專案共用附加的預留項目,請將這個欄位的值指定為 projects。如要建立單一專案預留項目,請排除這個欄位。

  • CONSUMER_PROJECT_ID_1CONSUMER_PROJECT_ID_2:可共用此預留項目的專案專案 ID,例如 project-1project-2。最多可加入 100 個消費者專案。這些專案必須與擁有者專案位於同一個機構。請勿加入您建立這項預訂的專案 ID,因為該專案預設可使用這項預訂。如要建立單一專案預留項目,請排除這些欄位。

只有在提出要求時,目標區域中有足夠的指定機型資源,以及足夠的配額,Compute Engine 才會建立承諾和附加的預留項目。如果購買成功,您會看到類似以下的成功訊息:

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

建立要附加的新預訂項目,藉此購買承諾的範例

以下範例情境和指令說明如何建立新的保留項目,並附加至承諾產品,藉此購買 GPU、本機 SSD 磁碟或兩者的承諾產品。

範例 1:附加單一新預訂項目,購買 GPU 的承諾方案

假設您想在 commitment-01 us-central1 區域購買承諾,其中包含 4 個 NVIDIA V100 GPU。您想建立新的預留項目 reservation-01,做為這些 GPU 的附加預留項目。假設您也想指定 Compute Engine 在 us-central1-a 區域的 2 個 n1-standard-32 VM 中使用這些保留的 GPU。如要購買這個範例承諾,並附加保留項目,請執行下列指令:

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

範例 2:購買 GPU 承諾方案,但不承諾使用 vCPU 或記憶體

如要承諾使用並預留 GPU 和本機 SSD 磁碟,而不承諾使用 vCPU 或記憶體,請將 vCPU 和記憶體數量指定為 0。舉例來說,假設您想在 us-west2 區域購買單一 NVIDIA P4 GPU 的承諾方案 commitment-02。您也想建立新的保留項目做為附加的保留項目,並指定 Compute Engine 在 us-west2-b 區域的 n1-standard-2 VM 上使用保留的 GPU。如要購買這個範例約定,並附上相關預訂,請執行下列指令:

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

範例 3:附加多個新保留項目,購買 GPU 和本機 SSD 磁碟的承諾

假設您想在 us-central1 區域購買 1 個 NVIDIA V100 GPU 和 2 個本機 SSD 磁碟的 commitment-03 承諾方案。您也想在 us-central1-a 區域中建立並附加兩個預訂項目。在第一個保留項目 res-01 中,您想預留 1 個 n1-standard-2 VM,其中包含 1 個 GPU。您想將 res-01 設為指定保留項目,也就是必須明確指定該保留項目的名稱,才能使用其中的預留 VM。在第二個預訂項目 res-02 中,您想預訂 1 個 n1-standard-8 VM,並附加 2 種類型的本機 SSD 磁碟。

如要購買這個範例承諾方案和隨附的保留項目,請先建立 YAML 檔案,其中包含這兩個保留項目的屬性。

- reservation: res-01
  reservation_zone: us-central1-a
  require_specific_reservation: true
  vm_count: 1
  machine_type: n1-standard-2
  accelerator:
  - count: 1
    type: nvidia-tesla-v100
- reservation: res-02
  reservation_zone: us-central1-a
  vm_count: 1
  machine_type: n1-standard-8
  local_ssd:
  - interface: scsi
    size: 375
  - interface: nvme
    size: 375

建立 YAML 檔案後,如要完成購買承諾方案 (附帶保留項目),請執行下列指令。請注意,範例承諾也包含 vCPU 和記憶體資源。

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=YAML_FILE

REST

如要在購買承諾方案時建立附加的預留項目,請對 regionCommitments.insert 方法發出 POST 要求。在要求中加入 reservations 欄位,定義要建立及附加的所有新預訂清單。您可以將任意數量的現有預留項目附加至年約。

  • 如要手動指定所有 VM 屬性來建立新預訂,請加入 instanceProperties 欄位並排除 sourceInstanceTemplate 欄位。

    舉例來說,如要手動指定與兩個專案共用的預留項目設定,並指定 GPU、兩個本機 SSD 磁碟和最低 CPU 平台,請提出下列要求:

    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",
    "reservations":
    [
      {
        "name": "RESERVATION_NAME",
        "specificReservation":
        {
          "count": "NUMBER_OF_RESERVED_VMS",
          "instanceProperties":
          {
            "guestAccelerators":
            [
              {
                "acceleratorCount": "RESERVED_ACCELERATOR_COUNT",
                "acceleratorType": "RESERVED_ACCELERATOR_TYPE"
              }
            ],
            "localSsds":
            [
              {
                "diskSizeGb": "375",
                "interface": "RESERVED_INTERFACE_1"
              },
              {
                "diskSizeGb": "375",
                "interface": "RESERVED_INTERFACE_2"
              }
            ],
            "machineType": "RESERVED_MACHINE_TYPE",
            "minCpuPlatform": "MINIMUM_CPU_PLATFORM"
          }
        },
        "specificReservationRequired": REQUIRE_SPECIFIC_RESERVATION_VALUE",
        "zone": "RESERVED_ZONE",
        "shareSettings":
        {
          "shareType": "SPECIFIC_PROJECTS",
          "projectMap":
          {
            "CONSUMER_PROJECT_ID_1":
            {
              "projectId": "CONSUMER_PROJECT_ID_1"
            },
            "CONSUMER_PROJECT_ID_2":
            {
              "projectId": "CONSUMER_PROJECT_ID_2"
            }
          }
        }
      }
    ]
    }
    
    
  • 如要透過指定執行個體範本建立新的預留項目,請加入 sourceInstanceTemplate 欄位,並排除 instanceProperties 欄位。

    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",
    "reservations":
    [
      {
        "name": "RESERVATION_NAME",
        "specificReservation":
        {
          "count": "NUMBER_OF_RESERVED_VMS",
          "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME"
        },
        "specificReservationRequired": REQUIRE_SPECIFIC_RESERVATION_VALUE",
        "zone": "RESERVED_ZONE",
        "shareSettings":
        {
          "shareType": "SPECIFIC_PROJECTS",
          "projectMap":
          {
            "CONSUMER_PROJECT_ID_1":
            {
              "projectId": "CONSUMER_PROJECT_ID_1"
            },
            "CONSUMER_PROJECT_ID_2":
            {
              "projectId": "CONSUMER_PROJECT_ID_2"
            }
          }
        }
      }
    ]
    }
    
    

將下列項目替換為承諾和附加預留項目的對應屬性:

承諾使用合約

  • COMMITMENT_NAME:承諾名稱。
  • REGION:承諾產品所在的區域。
  • PROJECT_ID:您要購買附加保留項目的承諾使用合約的專案 ID。
  • DURATION:承諾的期限長度,可為 TWELVE_MONTHTHIRTY_SIX_MONTH
  • COMMITMENT_TYPE:承諾類型。下列承諾類型提供 GPU、本機 SSD 磁碟或兩者的選項:

    • ACCELERATOR_OPTIMIZED A2 機型資源
    • ACCELERATOR_OPTIMIZED_A3 適用於 A3 Edge 和 A3 High 機型資源
    • ACCELERATOR_OPTIMIZED_A3_MEGA,適用於 A3 Mega 機型資源
    • COMPUTE_OPTIMIZED 適用於 C2 機器類型資源
    • COMPUTE_OPTIMIZED_C2D 適用於 C2D 機型資源
    • COMPUTE_OPTIMIZED_C3,適用於 C3 機型資源
    • COMPUTE_OPTIMIZED_C3D 適用於 C3D 機型資源
    • GENERAL_PURPOSE:適用於 N1 機器類型資源
    • GENERAL_PURPOSE_N2:適用於 N2 機器類型資源
    • GENERAL_PURPOSE_N2D (適用於 N2D 機器資源)
    • GRAPHICS_OPTIMIZED 適用於 G2 機器類型資源
    • MEMORY_OPTIMIZED_M3 適用於 M3 機型資源
    • STORAGE_OPTIMIZED_Z3:適用於 Z3 機器類型資源

  • COMMITTED_VCPUS:您要在承諾中使用的 vCPU 數量。這個數字必須是正整數。

  • COMMITTED_MEMORY:您希望承諾方案提供的記憶體大小 (單位為 MB)。例如:10240MB

  • COMMITTED_LOCAL_SSD:您要在承諾使用合約中使用的本機 SSD 儲存空間大小 (以 GB 為單位)。每個本機 SSD 磁碟為 375 GB。

  • COMMITTED_ACCELERATOR_COUNT:您要在承諾中使用的 GPU 數量。

  • COMMITTED_ACCELERATOR_TYPE:承諾使用合約中所需的 GPU 類型。

  • CUSTOM_END_DATE:選用。自訂約期結束日期,格式必須為 YYYY-MM-DD。舉例來說,如要指定 2024 年 4 月 20 日為自訂結束日期,請將格式設為 2024-04-20

  • END_TIME:美國和加拿大太平洋時間凌晨 12 點 (UTC-8 或 UTC-7),即世界標準時間 (UTC) 的偏移量。只有在為合約指定自訂結束日期時,才需要指定這個值。請指定下列其中一個值:

    • 日光節約時間:07:00:00
    • 其他時間:08:00:00

附加的預留項目

  • RESERVATION_NAME:附加預訂的名稱。
  • RESERVATION_ZONE:附加預留資源的可用區。
  • REQUIRE_SPECIFIC_RESERVATION_VALUE:指定附加的預留項目是否為明確指定的預留項目;可為 truefalse。如要進一步瞭解特定目標預留項目,請參閱「預留的運作方式」。
  • NUMBER_OF_RESERVED_VMS:要在附加的預留項目中預留的 VM 數量。
  • RESERVED_MACHINE_TYPE:您希望附加預留資源的 VM 採用機器類型

    • 如果是預先定義的機器類型,請使用 MACHINE_FAMILY-standard-CPUS 格式,例如 n2-standard-4
    • 如果是自訂機器類型,請使用 MACHINE_FAMILY-custom-CPUS-MEMORY 格式,例如 n2-custom-4-5120。如需相關限制的完整清單,請參閱自訂機器類型的規格

      更改下列內容:

      • MACHINE_FAMILY:機器類型系列,例如指定 n2 代表 N2 VM。
      • CPUSvCPUs 數量。
      • MEMORY:預留 VM 的記憶體總量。記憶體必須是 256 MB 的倍數,且須以 MB 為單位來提供。舉例來說,如要建立具有 4 個 vCPU 和 5 GB 記憶體的 N2 VM (即 5120 MB),請使用 n2-custom-4-5120
  • RESERVED_ACCELERATOR_COUNT:您要在附加的預訂中,為每個 VM 新增的 GPU 數量。

  • RESERVED_ACCELERATOR_TYPE:您要在隨附預訂中新增的加速器類型

  • INTERFACE_1INTERFACE_2:您希望每個預留 VM 應使用的本機 SSD 磁碟介面類型。有效選項為:scsinvme。每個本機 SSD 磁碟為 375 GB。針對要新增的每個本機 SSD 磁碟,重複 localSsds 參數。您最多可以指定 24 個本機 SSD 磁碟。

  • MINIMUM_CPU_PLATFORM:您要為附加的預訂項目指定的最低 CPU 平台。

  • INSTANCE_TEMPLATE_NAME:您要用來建立附加預留資源的執行個體範本名稱。

  • SHARE_SETTING:附加預訂的共用類型。如要跨多個消費者專案共用附加的預訂,請將這個欄位的值指定為 SPECIFIC_PROJECTS。如要建立單一專案預留項目,請排除這個欄位。

  • CONSUMER_PROJECT_ID_1CONSUMER_PROJECT_ID_2:可共用這項預留項目的專案專案 ID,例如 project-1project-2。最多可加入 100 個消費者專案。這些專案必須與擁有者專案位於同一個機構。請勿加入您建立這項預訂的專案 ID,因為該專案預設可使用這項預訂。如要建立單一專案預留項目,請排除這些欄位。

只有在提出要求時,目標區域中有足夠的指定機器類型資源,以及足夠的配額,Compute Engine 才會建立承諾和附加的預留項目。如果購買成功,Compute Engine 會為 REST API 要求傳回 200 狀態。

建立要附加的新預訂項目,藉此購買承諾的範例

以下範例情境和指令說明如何建立新的保留項目,並附加至承諾產品,藉此購買 GPU、本機 SSD 磁碟或兩者的承諾產品。

範例 1:附加單一新預訂項目,購買 GPU 的承諾方案

假設您想在 commitment-01 us-central1 區域購買承諾,其中包含 4 個 NVIDIA V100 GPU。您想建立新的預留項目 reservation-01,做為這些 GPU 的附加預留項目。假設您也想指定 Compute Engine,在 us-central1-a 區域的 2 個 n1-standard-8 VM 中使用這些保留的 GPU。如要購買這個範例承諾使用合約及其附加預留項目,請發出下列 POST 要求:

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"
    }
  ]
}

範例 2:購買 GPU 承諾方案,但不承諾使用 vCPU 或記憶體

如要承諾使用並預留 GPU 和本機 SSD 磁碟,而不承諾使用 vCPU 或記憶體,請將 vCPU 和記憶體數量指定為 0。舉例來說,假設您想在 us-west2 地區購買單一 NVIDIA P4 GPU 的承諾 commitment-02。您也想建立新的保留項目做為附加的保留項目,並指定 Compute Engine 在 us-west2-b 區域的 n1-standard-2 VM 上使用保留的 GPU。如要購買這個範例承諾和隨附的預留項目,請發出下列 POST 要求:

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"
    }
  ]
}

範例 3:附加多個新保留項目,購買 GPU 和本機 SSD 磁碟的承諾

假設您想在 us-central1 區域購買 1 個 NVIDIA V100 GPU 和 2 個本機 SSD 磁碟的 commitment-03 承諾方案。您也想在 us-central1-a 區域中建立並附加兩個預訂項目。在第一個保留項目 res-01 中,您想預留 1 個 n1-standard-2 VM,其中包含 1 個 GPU。您想將 res-01 設為指定保留項目,也就是必須明確指定該保留項目的名稱,才能使用其中的預留 VM。在第二個預訂項目 res-02 中,您想預訂 1 個 n1-standard-8 VM,並附加 2 種類型的本機 SSD 磁碟。如要購買這個範例承諾使用合約和附加預留項目,請發出下列 POST 要求。請注意,範例承諾也包含 vCPU 和記憶體資源。

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"
    }
  ]
}

取代承諾中附加的預留項目

如要修改使用已承諾資源的 VM 類型和數量,請將承諾方案現有的附加保留項目替換為新的保留項目。

系統一律會建立新的預訂做為替代預訂。如要取代已附加的預訂項目,必須指定要用來取代的預訂項目屬性。Compute Engine 隨後會自動建立具有這些屬性的新預留項目,並用來取代您附加的預留項目。您無法使用現有的預留項目取代附加的預留項目。

允許的變更

以新預訂項目取代使用承諾現有的附加預訂項目時,您可以要求下列任何變更:

  • 您可以預留不同機器類型的 VM。不過,您仍須預留相同機型系列的 VM,才能繼續為預留資源取得 CUD。
  • 您可以變更要預留的 VM 數量。
  • 只要預留的 GPU 和本機 SSD 磁碟總數量維持不變,您就能變更每個 VM 附加的 GPU 和本機 SSD 磁碟數量。
  • 您可以指定要將取代的預訂項目設為單一專案 (在 Google Cloud 控制台中也稱為「本機」) 或共用預訂項目。

需求條件

以新預訂項目取代承諾方案隨附的預訂項目時,要求必須符合下列所有規定:

  • 一次只能更換一個附加預訂,且只能更換為一個新的附加預訂。如要更換已附加的預訂項目,請同時將現有已附加預訂項目的 VM 數量設為 0,藉此移除該項目,並定義要用來取代的新附加預訂項目。
  • 新預訂項目必須與合約位於同一專案。
  • 新預訂項目必須與移除的預訂項目位於同一個區域。
  • 新預留項目中指定的 GPU 數量和類型,必須與移除的預留項目相符。
  • 新預留項目中指定的本機 SSD 磁碟數量和類型,必須與移除的預留項目相符。
  • 每次要求最多只能變更 100 個 VM。如要變更超過 100 個 VM,請將變更分成多個較小的要求,或與 Google Cloud 支援團隊聯絡。

更換預訂的要求也取決於當時的容量。如果要求容量不足,要求就會失敗並傳回資源可用性錯誤,您可以修改或延後要求來解決這個問題。 詳情請參閱資源可用性疑難排解說明文件。

如果更換附加保留項目的要求失敗,附加的保留項目和現有的預留資源不會受到影響。為保留容量,請等到預訂更換要求成功後,再對 VM 進行任何相應變更。

替換附加預訂的步驟

您可以使用 Google Cloud CLI 或 REST,替換約定的預留項目。

gcloud

如要替換承諾中附加的預留項目,請按照下列步驟操作:

  1. 在目前目錄中建立 YAML 檔案,並加入以下附加預訂的設定:

    • 要替換的目前預訂。

      如要擷取這項預訂的詳細資料,請參閱「查看預訂詳細資料」。

    • 新的替代預訂。

    YAML 檔案的內容類似於下列內容:

    - reservation: CURRENT_RESERVATION_NAME
      reservation_zone: CURRENT_RESERVATION_ZONE
      vm_count: 0
      machine_type: CURRENT_RESERVATION_MACHINE_TYPE
      accelerator:
      - count: CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS
        type: CURRENT_RESERVATION_ACCELERATOR_TYPE
      local_ssd:
      - interface: CURRENT_RESERVATION_INTERFACE_1
        size: 375
      - interface: CURRENT_RESERVATION_INTERFACE_2
        size: 375
      project: CURRENT_RESERVATION_PROJECT_ID
      share_setting: CURRENT_RESERVATION_SHARE_SETTING
      share_with:
      - CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1
      - CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2
    - reservation: REPLACEMENT_RESERVATION_NAME
      reservation_zone: REPLACEMENT_RESERVATION_ZONE
      vm_count: REPLACEMENT_RESERVATION_NUMBER_OF_VMs
      machine_type: REPLACEMENT_RESERVATION_MACHINE_TYPE
      accelerator:
      - count: REPLACEMENT_RESERVATION_ACCELERATOR_COUNT
        type: REPLACEMENT_RESERVATION_ACCELERATOR_TYPE
      local_ssd:
      - interface: REPLACEMENT_RESERVATION_INTERFACE_1
        size: 375
      - interface: REPLACEMENT_RESERVATION_INTERFACE_2
        size: 375
      project: REPLACEMENT_RESERVATION_PROJECT_ID
      share_setting: REPLACEMENT_RESERVATION_SHARE_SETTING
      share_with:
      - REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1
      - REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2
    
    

    將下列項目替換為目前和更換預訂的對應屬性:

    目前的預訂

    就目前的預訂而言,下列所有屬性都必須與您查看預訂時完全相同。如果目前的預訂項目沒有任何屬性,請省略這些屬性的欄位。

    • CURRENT_RESERVATION_NAME:目前附加預訂的名稱。
    • CURRENT_RESERVATION_ZONE:目前附加預留項目的可用區。
    • CURRENT_RESERVATION_MACHINE_TYPE:目前附加預訂的機器類型
    • CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS: 目前附加的預留項目中預留的 GPU 數量。
    • CURRENT_RESERVATION_ACCELERATOR_TYPE:目前附加預訂保留的加速器類型
    • CURRENT_RESERVATION_INTERFACE_1CURRENT_RESERVATION_INTERFACE_2:目前附加預留資源中每個預留 VM 使用的本機 SSD 磁碟介面類型。有效選項為:scsinvme。每個本機 SSD 磁碟為 375 GB。針對所有預留的本機 SSD 磁碟,重複 local_ssd 參數。
    • CURRENT_RESERVATION_PROJECT_ID: 目前專案的專案 ID,該專案具有承諾和附加的預留資源。如果目前附加的預訂項目與多個消費者專案共用,請指定這個欄位。
    • CURRENT_RESERVATION_SHARE_SETTING: 目前預訂的分享類型。如果目前附加的預留項目在多個消費者專案之間共用,請將這個欄位的值指定為 projects
    • CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2: 您要與目前附加的預留項目共用的專案專案 ID,例如 project-1project-2

    換貨預留項目

    請為替代預訂設定下列必要屬性。指定這些屬性時,請務必符合所有規定。省略任何不想使用的其他欄位。

    • REPLACEMENT_RESERVATION_NAME:新替代預訂的名稱。
    • REPLACEMENT_RESERVATION_ZONE:新替代預留資源的可用區。
    • REPLACEMENT_RESERVATION_NUMBER_OF_VMS:要在新的替代預留項目中預留的 VM 數量。
    • REPLACEMENT_RESERVATION_MACHINE_TYPE:您希望新替代預訂項目中的 VM 採用機器類型

      • 如果是預先定義的機器類型,請使用 MACHINE_FAMILY-standard-CPUS 格式,例如 n2-standard-4
      • 如果是自訂機器類型,請使用 MACHINE_FAMILY-custom-CPUS-MEMORY 格式,例如 n2-custom-4-5120。如需相關限制的完整清單,請參閱自訂機器類型的規格

      更改下列內容:

      • MACHINE_FAMILY:機器類型系列,例如指定 n2 代表 N2 VM。
      • CPUSvCPUs 數量。
      • MEMORY:預留 VM 的總記憶體。記憶體必須是 256 MB 的倍數,且須以 MB 為單位來提供。舉例來說,如要建立具有 4 個 vCPU 和 5 GB 記憶體的 N2 VM (即 5120 MB),請使用 n2-custom-4-5120
    • REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS: 每個 VM 要新增的 GPU 數量 (適用於替代預留項目)。

    • REPLACEMENT_RESERVATION_ACCELERATOR_TYPE:要在替代預留項目中新增的加速器類型

    • REPLACEMENT_RESERVATION_INTERFACE_1REPLACEMENT_RESERVATION_INTERFACE_2:您希望每個預留 VM 應使用的「Local SSD」(本機 SSD) 磁碟介面類型。有效選項為:scsinvme。 每個本機 SSD 磁碟為 375 GB。針對要新增的每個本機 SSD 磁碟,重複 local_ssd 參數。您最多可以指定 24 個本機 SSD。

    • REPLACEMENT_RESERVATION_PROJECT_ID: 目前專案的專案 ID,該專案具有承諾和附加的預留資源。如要跨多個消費者專案共用替代預留項目,請指定這個欄位。

    • REPLACEMENT_RESERVATION_SHARE_SETTING: 替代預訂的共用類型。 如要跨多個消費者專案共用替代預留項目,請將這個欄位的值指定為 projects

    • REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2: 可共用此預留項目的專案專案 ID,例如 project-1,project-2。最多可包含 100 個消費者專案。這些專案必須與擁有者專案位於同一個機構。 請勿加入 REPLACEMENT_RESERVATION_PROJECT_ID,因為預設已允許該項目使用這項預留量。

  2. 執行 gcloud beta compute commitments update-reservations 指令,並使用 --reservations-from-file 旗標指定 YAML 檔案的路徑。

    gcloud beta compute commitments update-reservations COMMITMENT_NAME \
        --project= PROJECT_ID \
        --region= REGION \
        --reservations-from-file= YAML_FILE
    

    更改下列內容:

    • COMMITMENT_NAME:附加預訂的承諾名稱。
    • PROJECT_ID:附加預留資源的約期專案 ID。
    • REGION:承諾產品所在的區域。
    • YAML_FILE:YAML 檔案的路徑,其中包含目前和替代預訂的設定。

更換承諾中附加的預訂項目範例

為說明這點,本節將顯示附有保留項目的範例約期,以及如何取代範例中附加的保留項目

附加保留項目的承諾範例

舉例來說,假設您想更新 my-commitment-with-reservations 承諾使用合約的附加預留項目,而該合約是使用下列指令購買:

  gcloud beta compute commitments create my-commitment-with-reservations \
      --region=asia-east1 \
      --resources=vcpu=16,memory=60GB,local-ssd=3000 \
      --resources-accelerator=type=nvidia-tesla-p100,count=4 \
      --plan=12-month \
      --type=general-purpose \
      --reservations-from-file=one-reservation.yaml

以這個範例來說,假設執行這項指令時,one-reservation.yaml 是目前目錄中的檔案,且包含下列內容,定義名為 res-1 的附加預訂。

  - reservation: res-1
    reservation_zone: asia-east1-a
    vm_count: 4
    machine_type: n1-standard-4
    accelerator:
    - count: 1
      type: nvidia-tesla-p100
    local_ssd:
    - interface: scsi
      size: 375
    - interface: scsi
      size: 375

這項my-commitment-with-reservations承諾和附加的預留項目res-1產生下列承諾和預留資源:

資源類型 使用承諾中的資源
(my-commitment-with-reservations)
目前附加預留項目中的資源
(res-1)
vCPU 和記憶體 16 個 vCPU 和 60 GB 16 個 vCPU 和 60 GB
(4 個預留 n1-standard-4 VM)*
GPU 4 個 P100 GPU 4 個 P100 GPU
(每個 VM 1 個 P100 GPU,共 4 個 VM)*
本機固態硬碟磁碟 3000 GB 或 8 個本機 SSD 磁碟 3000 GB 或 8 個本機 SSD 磁碟
(每個 VM 750 GB 或 2 個本機 SSD 磁碟,適用於 4 個 VM)*

*具體來說,範例附加保留項目 res-1 會保留 4 個 n1-standard-4 VM,每個 VM 都有 1 個 P100 GPU 和 2 個 scsi 介面類型的本機 SSD 磁碟。n1-standard-4 機器類型會為每個 VM 使用 4 個 vCPU 和 15 GB。

取代附加的範例預留項目

假設您想以新的附加預留項目 res-2 取代附加預留項目 res-1,並將預留資源變更為下列項目:

資源類型 使用承諾中的資源
(my-commitment-with-reservations)
目前附加預留項目中的資源
(res-1)
更換預留項目中的資源
(res-2)
vCPU 和記憶體 16 個 vCPU 和 60 GB 16 個 vCPU 和 60 GB
(4 個預留 n1-standard-4 VM)*
16 個 vCPU 和 60 GB
(2 個預留和共用 n1-standard-8 VM)
GPU 4 個 P100 GPU 4 個 P100 GPU
(每個 VM 1 個 P100 GPU,共 4 個 VM)*
4 個 P100 GPU
(每個 VM 2 個 P100 GPU,共 2 個 VM)
本機固態硬碟磁碟 3000 GB 或 8 個本機 SSD 磁碟 3000 GB 或 8 個本機 SSD 磁碟
(每個 VM 750 GB 或 2 個本機 SSD 磁碟,適用於 4 個 VM)*
3000 GB 或 8 個本機 SSD 磁碟
(每個 VM 1500 GB 或 4 個本機 SSD 磁碟,適用於 2 個 VM)*

*具體來說,範例附加保留項目 res-1 會保留 4 個 n1-standard-4 VM,每個 VM 都有 1 個 P100 GPU 和 2 個 scsi 介面類型的本機 SSD 磁碟。n1-standard-4 機器類型會為每個 VM 使用 4 個 vCPU 和 15 GB。

具體來說,替代附加保留項目定義 res-2,保留 2 個 n1-standard-8 VM,每個 VM 都有 1 個 P100 GPU 和 4 個 scsi 介面類型的本機 SSD 磁碟。此外,res-2 也與其他 2 個專案 (project-1project-2) 共用,且由目前專案 my-project 擁有。n1-standard-8 機型會為每個 VM 使用 8 個 vCPU 和 30 GB。

如要將附加的預留項目 res-1 替換為 my-commitment-with-reservations 承諾的 res-2,請按照下列步驟操作:

  1. 在目前目錄中建立名為 two-reservations.yaml 的檔案,並在當中加入下列內容:

    - reservation: res-1
      reservation_zone: asia-east1-a
      vm_count: 0
      machine_type: n1-standard-4
      accelerator:
      - count: 1
        type: nvidia-tesla-p100
      local_ssd:
      - interface: scsi
        size: 375
      - interface: scsi
        size: 375
    - reservation: res-2
      reservation_zone: asia-east1-a
      vm_count: 2
      machine_type: n1-standard-8
      accelerator:
      - count: 2
        type: nvidia-tesla-p100
      project: my-project
      share_setting: projects
      share_with:
      - project-1
      - project-2
      local_ssd:
      - interface: scsi
        size: 375
      - interface: scsi
        size: 375
      - interface: scsi
        size: 375
      - interface: scsi
        size: 375
    
  2. 執行下列指令:

    gcloud beta compute commitments update-reservations my-commitment-with-reservations \
        --region=asia-east1 \
        --reservations-from-file=two-reservations.yaml
    

REST

如要取代附加至承諾的保留項目,請使用 regionCommitments.updateReservations 方法發出 POST 要求。

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/COMMITMENT_ZONE/commitments/COMMITMENT_NAME/updateReservations

{
  "reservations":
  [
    {
      "name": "REPLACEMENT_RESERVATION_NAME",
      "specificReservation":
      {
        "count": "REPLACEMENT_RESERVATION_NUMBER_OF_VMS",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": "REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS",
              "acceleratorType": "REPLACEMENT_RESERVATION_ACCELERATOR_TYPE"
            }
          ],
          "localSsds":
          [
            {
              "diskSizeGb": "375",
              "interface": "REPLACEMENT_RESERVATION_INTERFACE_1"
            },
            {
              "diskSizeGb": "375",
              "interface": "REPLACEMENT_RESERVATION_INTERFACE_2"
            }
          ],
          "machineType": "REPLACEMENT_RESERVATION_MACHINE_TYPE"

        }
      },
      "zone": "REPLACEMENT_RESERVATION_ZONE",
      "shareSettings":
      {
        "shareType": "SPECIFIC_PROJECTS",
        "projectMap":
        {
          "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1":
          {
            "projectId": "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1"
          },
          "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2":
          {
            "projectId": "REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2"
          }
         }
      }
    },
    {
      "name": "CURRENT_RESERVATION_NAME",
      "specificReservation":
      {
        "count": "0",
        "instanceProperties":
        {
          "guestAccelerators":
          [
            {
              "acceleratorCount": "CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS",
              "acceleratorType": "CURRENT_RESERVATION_ACCELERATOR_TYPE"
            }
          ],
          "localSsds":
          [
            {
              "diskSizeGb": "375",
              "interface": "CURRENT_RESERVATION_INTERFACE_1"
            },
            {
              "diskSizeGb": "375",
              "interface": "CURRENT_RESERVATION_INTERFACE_2"
            }
          ],
          "machineType": "CURRENT_RESERVATION_MACHINE_TYPE"

        }
      },
      "zone": "CURRENT_RESERVATION_ZONE",
      "shareSettings":
      {
        "shareType": "SPECIFIC_PROJECTS",
        "projectMap":
        {
          "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1":
          {
            "projectId": "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1"
          },
          "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2":
          {
            "projectId": "CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2"
          }
         }
      }
    }
  ]
}

將下列項目替換為承諾、目前預留項目和替代預留項目的對應屬性:

承諾使用合約

  • COMMITMENT_NAME:附加預訂項目的承諾方案名稱。
  • PROJECT_ID:附加預留資源的約期專案 ID。這也是目前和已附加預留項目的專案 ID。
  • COMMITMENT_ZONE:承諾產品的可用區,其中附加了預留項目。

目前的預訂

就目前的預訂而言,下列所有屬性都必須與您查看預訂時完全相同。如果目前的預訂項目尚未指定任何屬性,請省略這些屬性的欄位。

  • CURRENT_RESERVATION_NAME:目前附加預訂的名稱。
  • CURRENT_RESERVATION_ZONE:目前附加預留項目的可用區。
  • CURRENT_RESERVATION_MACHINE_TYPE:目前附加預訂的機器類型
  • CURRENT_RESERVATION_NUMBER_OF_ACCELERATORS:目前附加預留項目中預留的 GPU 數量。
  • CURRENT_RESERVATION_ACCELERATOR_TYPE:目前附加預訂保留的加速器類型
  • CURRENT_RESERVATION_INTERFACE_1CURRENT_RESERVATION_INTERFACE_2:每個預留 VM 的本機 SSD 磁碟在目前附加的預留項目中使用的介面類型。有效選項為:scsinvme。每個本機 SSD 磁碟為 375 GB。 針對所有保留的本機 SSD 磁碟,重複使用 localSsds 參數。
  • CURRENT_RESERVATION_SHARE_SETTING: 目前預訂的分享類型。如果目前附加的預留項目會與多個消費者專案共用,請將這個參數的值指定為 projects
  • CURRENT_RESERVATION_CONSUMER_PROJECT_ID_1CURRENT_RESERVATION_CONSUMER_PROJECT_ID_2:您要與目前附加的預留項目共用的專案的專案 ID,例如 project-1project-2

換貨預留項目

請為替代預訂設定下列必要屬性。指定這些屬性時,請務必符合所有規定。省略任何不想使用的其他欄位。

  • REPLACEMENT_RESERVATION_NAME:新替代預訂的名稱。
  • REPLACEMENT_RESERVATION_ZONE:新替代預留項目的可用區。
  • REPLACEMENT_RESERVATION_NUMBER_OF_VMS:要在新替代預留項目中預留的 VM 數量。
  • REPLACEMENT_RESERVATION_MACHINE_TYPE:新替代預訂項目中 VM 的機器類型

    • 如果是預先定義的機器類型,請使用 MACHINE_FAMILY-standard-CPUS 格式,例如 n2-standard-4
    • 如果是自訂機器類型,請使用 MACHINE_FAMILY-custom-CPUS-MEMORY 格式,例如 n2-custom-4-5120。如需相關限制的完整清單,請參閱自訂機器類型的規格

    更改下列內容:

    • MACHINE_FAMILY:機器類型系列,例如指定 n2 代表 N2 VM。
    • CPUSvCPUs 數量。
    • MEMORY:預留 VM 的總記憶體。 記憶體必須是 256 MB 的倍數,且須以 MB 為單位來提供。舉例來說,如要建立具有 4 個 vCPU 和 5 GB 記憶體的 N2 VM (即 5120 MB),請使用 n2-custom-4-5120
  • REPLACEMENT_RESERVATION_NUMBER_OF_ACCELERATORS: 每個 VM 要新增的 GPU 數量 (適用於替代預留項目)。

  • REPLACEMENT_RESERVATION_ACCELERATOR_TYPE:要在替代預留項目中新增的加速器類型

  • REPLACEMENT_RESERVATION_INTERFACE_1REPLACEMENT_RESERVATION_INTERFACE_2:您希望每個預留 VM 應使用的「Local SSD」(本機 SSD) 磁碟介面類型。有效選項為:scsinvme。 每個本機 SSD 磁碟為 375 GB。如要新增多個本機 SSD 磁碟,請重複使用 localSsds 參數。您最多可以指定 24 個本機 SSD。

  • REPLACEMENT_RESERVATION_SHARE_SETTING:替代預訂的共用類型。如要跨多個消費者專案共用替代預訂,請將這個參數的值指定為 projects

  • REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_1REPLACEMENT_RESERVATION_CONSUMER_PROJECT_ID_2: 可共用此預留項目的專案專案 ID,例如 project-1,project-2。最多可包含 100 個消費者專案。這些專案必須與擁有者專案位於同一個機構。 請勿加入 PROJECT_ID,因為預設已允許該項目使用這項預留量。

更換承諾中附加的預訂項目範例

為說明這點,本節將顯示附有保留項目的範例約期,以及如何取代範例中附加的保留項目

附加保留項目的承諾範例

舉例來說,假設您想替換 my-commitment-with-reservations 承諾的附加預留項目 res-1,該承諾是透過下列 POST 要求購買:

  POST https://compute.googleapis.com/compute/beta/projects/my-project/regions/asia-east1/commitments

  {
    "name": "my-commitment-with-reservations",
    "plan": "TWELVE_MONTH",
    "reservations":
    [
      {
        "name": "res-1",
        "specificReservation":
        {
          "count": "4",
          "instanceProperties":
          {
            "guestAccelerators":
            [
              {
                "acceleratorCount": "1",
                "acceleratorType": "nvidia-tesla-p100"
              }
            ],
            "localSsds":
            [
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              }
            ],
            "machineType": "n1-standard-4"
          }
        },
        "zone": "asia-east1-a"
      }
    ],
    "resources":
    [
      {
        "amount": "16",
        "type": "VCPU"
      },
      {
        "amount": "61440",
        "type": "MEMORY"
      },
      {
        "acceleratorType": "nvidia-tesla-p100",
        "amount": "4",
        "type": "ACCELERATOR"
      }
      {
        "amount": "3072000",
        "type": "LOCAL_SSD"
      }
    ],
    "type": "GENERAL_PURPOSE"
  }

這項my-commitment-with-reservations承諾和附加的預留項目res-1產生下列承諾和預留資源:

資源類型 使用承諾中的資源
(my-commitment-with-reservations)
目前附加預留項目中的資源
(res-1)
vCPU 和記憶體 16 個 vCPU 和 60 GB 16 個 vCPU 和 60 GB
(4 個預留 n1-standard-4 VM)*
GPU 4 個 P100 GPU 4 個 P100 GPU
(每個 VM 1 個 P100 GPU,共 4 個 VM)*
本機固態硬碟磁碟 3000 GB 或 8 個本機 SSD 磁碟 3000 GB 或 8 個本機 SSD 磁碟
(每個 VM 750 GB 或 2 個本機 SSD 磁碟,適用於 4 個 VM)*

*具體來說,附加的保留項目範例 res-1 會保留 4 個 n1-standard-4 VM,每個 VM 都有 1 個 P100 GPU 和 2 個 scsi 介面類型的本機 SSD 磁碟。n1-standard-4 機器類型會為每個 VM 使用 4 個 vCPU 和 15 GB。

取代附加的範例預留項目

假設您想以新的附加預留項目 res-2 取代附加預留項目 res-1,並將預留資源變更為下列項目:

資源類型 使用承諾中的資源
(my-commitment-with-reservations)
目前附加預留項目中的資源
(res-1)
更換預留項目中的資源
(res-2)
vCPU 和記憶體 16 個 vCPU 和 60 GB 16 個 vCPU 和 60 GB
(4 個預留 n1-standard-4 VM)*
16 個 vCPU 和 60 GB
(2 個預留和共用 n1-standard-8 VM)
GPU 4 個 P100 GPU 4 個 P100 GPU
(每個 VM 1 個 P100 GPU,共 4 個 VM)*
4 個 P100 GPU
(每個 VM 2 個 P100 GPU,共 2 個 VM)
本機固態硬碟磁碟 3000 GB 或 8 個本機 SSD 磁碟 3000 GB 或 8 個本機 SSD 磁碟
(每個 VM 750 GB 或 2 個本機 SSD 磁碟,適用於 4 個 VM)*
3000 GB 或 8 個本機 SSD 磁碟
(每個 VM 1500 GB 或 4 個本機 SSD 磁碟,適用於 2 個 VM)*

*具體來說,範例附加保留項目 res-1 會保留 4 個 n1-standard-4 VM,每個 VM 都有 1 個 P100 GPU 和 2 個 scsi 介面類型的本機 SSD 磁碟。n1-standard-4 機器類型會為每個 VM 使用 4 個 vCPU 和 15 GB。

具體來說,替代附加保留項目定義 res-2,保留 2 個 n1-standard-8 VM,每個 VM 都有 1 個 P100 GPU 和 4 個 scsi 介面類型的本機 SSD 磁碟。此外,res-2 也與其他 2 個專案 (project-1project-2) 共用,且由目前專案 my-project 擁有。n1-standard-8 機器類型會為每個 VM 使用 8 個 vCPU 和 30 GB。

如要將附加的預留項目 res-1 替換為 res-2,請使用 regionCommitments.updateReservations 方法,對 my-commitment-with-reservations 承諾提出下列 POST 要求:

  POST https://compute.googleapis.com/compute/beta/projects/my-project/regions/asia-east1/commitments/my-commitment-with-reservations/updateReservations

  {
    "reservations":
    [
      {
        "name": "res-2",
        "specificReservation":
        {
          "count": "2",
          "instanceProperties":
          {
            "guestAccelerators":
            [
              {
                "acceleratorCount": 2,
                "acceleratorType": "nvidia-tesla-p100"
              }
            ],
            "localSsds":
            [
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              }
            ],
            "machineType": "n1-standard-8"
          }
        },
        "zone": "asia-east1-a"
      },
      {
        "name": "res-1",
        "specificReservation":
        {
          "count": "0",
          "instanceProperties":
          {
            "guestAccelerators":
            [
              {
                "acceleratorCount": 1,
                "acceleratorType": "nvidia-tesla-p100"
              }
            ],
            "localSsds":
            [
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              },
              {
                "diskSizeGb": "375",
                "interface": "scsi"
              }
            ],
            "machineType": "n1-standard-4"
          }
        },
        "zone": "asia-east1-a"
      }
    ]
  }

後續步驟