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

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

本文說明如何為預留資源取得 CUD,以及如何將預留項目附加至以資源為準的約期

事前準備

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

    選取這個頁面上的分頁,瞭解如何使用範例:

    控制台

    使用 Cloud de Confiance 控制台存取 Cloud de Confiance by S3NS 服務和 API 時,無須設定驗證。

    gcloud

    1. 安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。登入後,執行下列指令來初始化 Google Cloud CLI:

      gcloud init
  • 設定預設地區和區域
  • REST

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

      安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI

    詳情請參閱 Cloud de Confiance 驗證說明文件中的「使用 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 帳戶內。如果 Cloud Billing 帳戶以外的專案使用共用預留項目,該用量就不符合這個 Cloud Billing 帳戶的共用 CUD 資格,且可能會按照隨選費率計費。

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

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

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

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

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

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

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

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

如要瞭解如何購買 GPU 或本機 SSD 磁碟的承諾方案,請參閱下列文章:

  • 搭配 A4X Max、A4X、A4 或 A3 Ultra 機型使用的 GPU:請參閱 AI Hypercomputer 說明文件中的「預留容量」。

  • 所有其他 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 (或在Cloud de Confiance 控制台中顯示為 PENDING)。啟用之後,承諾使用合約的狀態會變更為 ACTIVE。 舉例來說,假設您在 2024 年 1 月 20 日晚上 10 點 (美國和加拿大太平洋時間,即 UTC-8 或 UTC-7) 購買承諾方案,Compute Engine 會立即建立承諾,狀態為 NOT_YET_ACTIVE。您的承諾將於 2024 年 1 月 21 日美國和加拿大太平洋時間 (UTC-8 或 UTC-7) 凌晨 12 點生效。ACTIVE

需求條件

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

  • 您必須在同一個專案和區域中購買承諾方案,並建立附加的預訂項目。
  • 您必須購買承諾,並為同一機器家族系列資源建立附加預留項目。
  • 您必須停用附加預留項目的自動刪除選項
  • 如果承諾使用合約包含 GPU,則預留項目和承諾使用合約中指定的 GPU 類型必須相符。
  • 如果是 GPU 和本機 SSD 磁碟,每種資源類型預留的資源數量,必須與該資源類型承諾使用的資源數量完全一致。不過,如果您在承諾中指定任何本機 Titanium SSD 磁碟,供 C4、C4A、C4D、H4D 或 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 共用功能

加入現有預留項目

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

控制台

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

  1. 前往 Cloud de Confiance 控制台的「Committed use discounts」(承諾使用折扣) 頁面。前往「承諾使用折扣」頁面

  2. 按一下「購買承諾」。 系統隨即會顯示「購買使用承諾合約」頁面。

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

  4. 在「Region」(區域) 欄位中,選取要購買承諾的區域。

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

    • 如果是 A2 機型,請選取「加速器最佳化 A2」
    • 如果是 A3 Edge 和 A3 High 機型,請選取「加速器最佳化 A3」
    • 如果是 A3 Mega 機型,請選取「Accelerator-optimized A3 Mega」(加速器最佳化 A3 Mega)
    • 如果是 G2 機型,請選取「圖形最佳化 G2」
    • 如果是 G4 機型,請選取「圖形最佳化 G4」
    • 如果是 C2 機型,請選取「運算最佳化 C2」
    • 如果是 C2D 機型,請選取「運算最佳化 C2D」
    • 如果是 C3 機型,請選取「一般用途 C3」
    • 如果是 C3D 機型,請選取「一般用途 C3D」
    • 如果是 C4 機型,請選取「一般用途 C4」
    • 如果是 C4A 機型,請選取「一般用途 C4A」
    • 如果是 C4D 機型,請選取「一般用途 C4D」
    • 如果是 N1 機型,請選取「一般用途 N1」
    • 如果是 N2 機型,請選取「一般用途 N2」
    • 如果是 N2D 機器類型,請選取「一般用途 N2D」
    • 如果是 M1 機型,請選取「記憶體最佳化 M1/M2」
    • 如果是 M3 機型,請選取「記憶體最佳化 M3」
    • 如果是 Z3 機型,請選取「儲存空間最佳化 Z3」

  6. 如要將一或多個現有預留項目附加至承諾使用合約,請按照下列步驟操作:

    1. 選取「附加現有或新的預留項目」核取方塊。

    2. 按一下「附加現有預留項目」。「附加現有預留項目」窗格隨即顯示,並列出專案中的預留項目。這份清單會經過篩選,只顯示符合指定區域和使用承諾類型的項目。

    3. 在「附加現有預留項目」窗格中,找出要附加的各個預留項目,然後勾選相應的核取方塊。

    4. 查看所選預訂的資源摘要,然後按一下「附加」

    附加預訂項目後,Compute Engine 會自動填入「承諾詳細資料」部分中的欄位,以符合附加預訂項目的資源數量和類型。如果您在附加預留項目之前,已手動輸入「承諾詳細資料」部分中任何資源的值,系統會以預留項目中的值覆寫這些值。

  7. 在「Commitment details」(承諾詳細資料) 部分,執行下列操作:

    1. 在「Cores」欄位中,確認預先填入的值。您可以選擇指定不同的 vCPU 數量。

    2. 在「記憶體」欄位中,確認預先填入的記憶體大小 (以 GB 為單位)。你也可以指定其他金額。記憶體只能以 0.25 GB 為增量指定。如要為約定用量指定自訂記憶體值,請改用 gcloud CLI 或 REST。

    3. 展開「GPU 和本機 SSD」部分,確認承諾和附加的預留項目類型和數量相符,如下所示:

      1. 在「GPU type」(GPU 類型) 欄位中,確認預先填入的 GPU 類型。

      2. 在「Number of GPUs」(GPU 數量) 欄位中,確認預先填入的 GPU 數量。

      3. 在「本機 SSD」欄位中,確認預先填入的磁碟數量。

      如果手動為任何這些欄位指定與附加預訂不同的值,承諾購買程序就會失敗。對於所有 GPU 和大多數本機 SSD 磁碟,承諾和附加預留項目之間的總數和類型必須相符。

  8. 在「Term」(期限) 部分,執行下列操作:

    1. 如要指定承諾的方案,請選取「1 年」或「3 年」。方案會決定承諾的 CUD 費率和預設期限。

    2. 查看「開始日期」欄位,瞭解承諾生效的日期和時間。系統會自動將這個欄位設為目前日期隔天的美國和加拿大太平洋時間凌晨 12 點。

    3. 選用。如要將承諾的約期延長至承諾方案預設的約期以外,請在「結束日期」欄位中,為承諾指定自訂結束日期。詳情請參閱「延長承諾使用合約期限」。

    4. 選用。如要讓承諾使用合約在約期結束時自動續約,請選取「承諾使用合約自動續約」核取方塊。

  9. 在「摘要」窗格中,查看承諾詳細資料和任何潛在配額限制。

  10. 如要完成購買承諾,請按照下列步驟操作:

    1. 移至頁面最下方。

    2. 查看「揭露事項」部分,瞭解費用、折扣資格,以及條款及細則。

    3. 如要確認接受承諾價格服務專屬條款,請勾選核取方塊。

    4. 按一下「購買」

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=PLAN \
    --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,並附上預訂。
  • PLAN:承諾方案,決定 CUD 費率和預設期限。指定 12-month36-month
  • CUSTOM_END_DATE:選用。學期的自訂結束日期,格式必須為 YYYY-MM-DD。舉例來說,如要指定 2024 年 4 月 20 日為自訂結束日期,請將格式設為 2024-04-20
  • COMMITMENT_TYPE:承諾類型。下列承諾類型提供 GPU、本機 SSD 磁碟或兩者的選項:

    • 若為 A2 機型,請使用 accelerator-optimized
    • 如為 A3 Edge 和 A3 High 機型,請使用 accelerator-optimized-a3
    • 如果是 A3 Mega 機型,請使用 accelerator-optimized-a3-mega
    • 如果是 G2 機型,請使用 graphics-optimized
    • 如為 G4 機型,請使用 graphics-optimized-g4
    • 如為 C2 機型,請使用 compute-optimized
    • 如為 C2D 機型,請使用 compute-optimized-c2d
    • 如為 C3 機型,請使用 compute-optimized-c3
    • 如果是 C3D 機型,請使用 compute-optimized-c3d
    • 若為 N1 機器類型,請使用 general-purpose
    • 如為 C4 機型,請使用 general-purpose-c4
    • 如為 C4A 機型,請使用 general-purpose-c4a
    • 如為 C4D 機型,請使用 general-purpose-c4d
    • 如果是 N2 機器類型,請使用 general-purpose-n2
    • 如果是 N2D 機型,請使用 general-purpose-n2d
    • 如為 M1 機型,請使用 memory-optimized
    • 如為 M3 機型,請使用 memory-optimized-m3
    • 如為 Z3 機型,請使用 storage-optimized-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": "PLAN",
  "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,並附上預訂。
  • PLAN:承諾方案,決定 CUD 費率和預設期限。指定 TWELVE_MONTHTHIRTY_SIX_MONTH
  • COMMITMENT_TYPE:承諾類型。下列承諾類型提供 GPU、本機 SSD 磁碟或兩者的選項:

    • 若為 A2 機型,請使用 ACCELERATOR_OPTIMIZED
    • 如為 A3 Edge 和 A3 High 機型,請使用 ACCELERATOR_OPTIMIZED_A3
    • 如果是 A3 Mega 機型,請使用 ACCELERATOR_OPTIMIZED_A3_MEGA
    • 如果是 G2 機型,請使用 GRAPHICS_OPTIMIZED
    • 如為 G4 機型,請使用 GRAPHICS_OPTIMIZED_G4
    • 如為 C2 機型,請使用 COMPUTE_OPTIMIZED
    • 如為 C2D 機型,請使用 COMPUTE_OPTIMIZED_C2D
    • 如為 C3 機型,請使用 COMPUTE_OPTIMIZED_C3
    • 如果是 C3D 機型,請使用 COMPUTE_OPTIMIZED_C3D
    • 若為 N1 機器類型,請使用 GENERAL_PURPOSE
    • 如為 C4 機型,請使用 GENERAL_PURPOSE_C4
    • 如為 C4A 機型,請使用 GENERAL_PURPOSE_C4A
    • 如為 C4D 機型,請使用 GENERAL_PURPOSE_C4D
    • 如果是 N2 機器類型,請使用 GENERAL_PURPOSE_N2
    • 如果是 N2D 機型,請使用 GENERAL_PURPOSE_N2D
    • 如為 M1 機型,請使用 MEMORY_OPTIMIZED
    • 如為 M3 機型,請使用 MEMORY_OPTIMIZED_M3
    • 如為 Z3 機型,請使用 STORAGE_OPTIMIZED_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"
  ]
}

建立要附加的新預留項目

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

控制台

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

  1. 前往 Cloud de Confiance 控制台的「Committed use discounts」(承諾使用折扣) 頁面。前往「承諾使用折扣」頁面

  2. 按一下「購買承諾」。 系統隨即會顯示「購買使用承諾合約」頁面。

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

  4. 在「Region」(區域) 欄位中,選取要購買承諾的區域。

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

    • 如果是 A2 機型,請選取「加速器最佳化 A2」
    • 如果是 A3 Edge 和 A3 High 機型,請選取「加速器最佳化 A3」
    • 如果是 A3 Mega 機型,請選取「Accelerator-optimized A3 Mega」(加速器最佳化 A3 Mega)
    • 如果是 G2 機型,請選取「圖形最佳化 G2」
    • 如果是 G4 機型,請選取「圖形最佳化 G4」
    • 如果是 C2 機型,請選取「運算最佳化 C2」
    • 如果是 C2D 機型,請選取「運算最佳化 C2D」
    • 如果是 C3 機型,請選取「一般用途 C3」
    • 如果是 C3D 機型,請選取「一般用途 C3D」
    • 如果是 C4 機型,請選取「一般用途 C4」
    • 如果是 C4A 機型,請選取「一般用途 C4A」
    • 如果是 C4D 機型,請選取「一般用途 C4D」
    • 如果是 N1 機型,請選取「一般用途 N1」
    • 如果是 N2 機型,請選取「一般用途 N2」
    • 如果是 N2D 機器類型,請選取「一般用途 N2D」
    • 如果是 M1 機型,請選取「記憶體最佳化 M1/M2」
    • 如果是 M3 機型,請選取「記憶體最佳化 M3」
    • 如果是 Z3 機型,請選取「儲存空間最佳化 Z3」

  6. 如要建立新的預留項目並附加至承諾使用合約,請按照下列步驟操作:

    1. 選取「附加現有或新的預留項目」核取方塊。

    2. 按一下「建立新的預留項目」。「建立新的預訂」窗格隨即顯示。

    3. 在「Name」(名稱) 欄位中,輸入預留項目的名稱。

    4. 選用:在「Description」(說明) 欄位中輸入說明。

    5. 在「Zone」(可用區) 欄位中,選取要提供預留資源的可用區。

    6. 在「共用類型」部分,指定要如何共用這項預訂:

      • 如要為單一專案建立預留項目,請選取「本機」
      • 如要建立可與多個專案共用的預留項目,請選取「共用」。然後按一下「新增專案」,並選取所需專案。
    7. 在「Google Cloud Services」(Google Cloud 服務) 專區中,指定是否要與 Google Kubernetes Engine 或 Vertex AI 等其他服務共用此預留項目。

    8. 在「Use with VM instance」(用於 VM 執行個體) 區段中,選取 VM 使用預留項目的方式:

      • 如要允許具有相符屬性的 VM 自動使用這個預留項目,請選取「Use reservation automatically」(自動使用預留項目)
      • 如要只在明確指定名稱時才使用這個預留項目的資源,請選取「Select specific reservation」(選取特定預留項目)
    9. 在「資源詳細資料」部分,執行下列操作:

      1. 在「Number of VM instances」(VM 執行個體數量) 欄位中,輸入 VM 數量。

      2. 在「Machine configuration」(機器設定) 區段中,選取「Machine type」(機型),指定屬性。從清單中選取機型,或選取「自訂」Custom來指定「核心」Cores數量和「記憶體」Memory容量。

      3. 選用:如要預留 GPU,請按一下「新增 GPU」,然後為每個 VM 指定「GPU 類型」和「GPU 數量」

      4. 選用:如要預留本機 SSD 磁碟,請指定「磁碟數量」和「介面類型」

      5. 選用:如要指定群組配置政策,請在「群組配置政策」清單中選取或建立政策。

    10. 如要完成指定這項預留項目的屬性,請按一下「建立並附加」

    11. 選用:如要建立及附加更多新預訂,請再次按一下「建立新預訂」,然後重複這些步驟。

    附加預訂項目後,Compute Engine 會自動填入「承諾詳細資料」部分中的欄位,以符合附加預訂項目的資源數量和類型。如果您在附加預留項目之前,已手動輸入「承諾詳細資料」部分中任何資源的值,系統會以預留項目中的值覆寫這些值。

  7. 在「Commitment details」(承諾詳細資料) 部分,執行下列操作:

    1. 在「Cores」欄位中,確認預先填入的值。您可以選擇指定不同的 vCPU 數量。

    2. 在「記憶體」欄位中,確認預先填入的記憶體大小 (以 GB 為單位)。你也可以指定其他金額。記憶體只能以 0.25 GB 為增量指定。如要為約定用量指定自訂記憶體值,請改用 gcloud CLI 或 REST。

    3. 展開「GPU 和本機 SSD」部分,確認承諾和附加的預留項目類型和數量相符,如下所示:

      1. 在「GPU type」(GPU 類型) 欄位中,確認預先填入的 GPU 類型。

      2. 在「Number of GPUs」(GPU 數量) 欄位中,確認預先填入的 GPU 數量。

      3. 在「本機 SSD」欄位中,確認預先填入的磁碟數量。

      如果手動為任何這些欄位指定與附加預訂不同的值,承諾購買程序就會失敗。對於所有 GPU 和大多數本機 SSD 磁碟,承諾和附加預留項目之間的總數和類型必須相符。

  8. 在「Term」(期限) 部分,執行下列操作:

    1. 如要指定承諾的方案,請選取「1 年」或「3 年」。方案會決定承諾的 CUD 費率和預設期限。

    2. 查看「開始日期」欄位,瞭解承諾生效的日期和時間。系統會自動將這個欄位設為目前日期隔天的美國和加拿大太平洋時間凌晨 12 點。

    3. 選用。如要將承諾的約期延長至承諾方案預設的約期以外,請在「結束日期」欄位中,為承諾指定自訂結束日期。詳情請參閱「延長承諾使用合約期限」。

    4. 選用。如要讓承諾使用合約在約期結束時自動續約,請選取「承諾使用合約自動續約」核取方塊。

  9. 在「摘要」窗格中,查看承諾詳細資料和任何潛在配額限制。

  10. 如要完成購買承諾,請按照下列步驟操作:

    1. 移至頁面最下方。

    2. 查看「揭露事項」部分,瞭解費用、折扣資格,以及條款及細則。

    3. 如要確認接受承諾價格服務專屬條款,請勾選核取方塊。

    4. 按一下「購買」

gcloud

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

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

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

    gcloud compute commitments create COMMITMENT_NAME \
        --region=REGION \
        --project=PROJECT_ID \
        --plan PLAN \
        --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 PLAN \
          --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,並附上預訂。
  • PLAN:承諾方案,決定 CUD 費率和預設期限。指定 12-month36-month
  • CUSTOM_END_DATE:選用。學期的自訂結束日期,格式必須為 YYYY-MM-DD。舉例來說,如要指定 2024 年 4 月 20 日為自訂結束日期,請將格式設為 2024-04-20
  • COMMITMENT_TYPE:承諾類型。下列承諾類型提供 GPU、本機 SSD 磁碟或兩者的選項:

    • 若為 A2 機型,請使用 accelerator-optimized
    • 如為 A3 Edge 和 A3 High 機型,請使用 accelerator-optimized-a3
    • 如果是 A3 Mega 機型,請使用 accelerator-optimized-a3-mega
    • 如果是 G2 機型,請使用 graphics-optimized
    • 如為 G4 機型,請使用 graphics-optimized-g4
    • 如為 C2 機型,請使用 compute-optimized
    • 如為 C2D 機型,請使用 compute-optimized-c2d
    • 如為 C3 機型,請使用 compute-optimized-c3
    • 如果是 C3D 機型,請使用 compute-optimized-c3d
    • 若為 N1 機器類型,請使用 general-purpose
    • 如為 C4 機型,請使用 general-purpose-c4
    • 如為 C4A 機型,請使用 general-purpose-c4a
    • 如為 C4D 機型,請使用 general-purpose-c4d
    • 如果是 N2 機器類型,請使用 general-purpose-n2
    • 如果是 N2D 機型,請使用 general-purpose-n2d
    • 如為 M1 機型,請使用 memory-optimized
    • 如為 M3 機型,請使用 memory-optimized-m3
    • 如為 Z3 機型,請使用 storage-optimized-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 VM 指定 n2
      • 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 的承諾方案

假設您想在 us-central1 區域購買承諾 commitment-01,其中包含 4 個 NVIDIA V100 GPU。您想為這些 GPU 建立新的預留項目 reservation-01 做為附加預留項目。假設您也想指定 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": "PLAN",
    "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": "PLAN",
    "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,並附上預訂。
  • PLAN:承諾方案,決定 CUD 費率和預設期限。指定 TWELVE_MONTHTHIRTY_SIX_MONTH
  • COMMITMENT_TYPE:承諾類型。下列承諾類型提供 GPU、本機 SSD 磁碟或兩者的選項:

    • 若為 A2 機型,請使用 ACCELERATOR_OPTIMIZED
    • 如為 A3 Edge 和 A3 High 機型,請使用 ACCELERATOR_OPTIMIZED_A3
    • 如果是 A3 Mega 機型,請使用 ACCELERATOR_OPTIMIZED_A3_MEGA
    • 如果是 G2 機型,請使用 GRAPHICS_OPTIMIZED
    • 如為 G4 機型,請使用 GRAPHICS_OPTIMIZED_G4
    • 如為 C2 機型,請使用 COMPUTE_OPTIMIZED
    • 如為 C2D 機型,請使用 COMPUTE_OPTIMIZED_C2D
    • 如為 C3 機型,請使用 COMPUTE_OPTIMIZED_C3
    • 如果是 C3D 機型,請使用 COMPUTE_OPTIMIZED_C3D
    • 若為 N1 機器類型,請使用 GENERAL_PURPOSE
    • 如為 C4 機型,請使用 GENERAL_PURPOSE_C4
    • 如為 C4A 機型,請使用 GENERAL_PURPOSE_C4A
    • 如為 C4D 機型,請使用 GENERAL_PURPOSE_C4D
    • 如果是 N2 機器類型,請使用 GENERAL_PURPOSE_N2
    • 如果是 N2D 機型,請使用 GENERAL_PURPOSE_N2D
    • 如為 M1 機型,請使用 MEMORY_OPTIMIZED
    • 如為 M3 機型,請使用 MEMORY_OPTIMIZED_M3
    • 如為 Z3 機型,請使用 STORAGE_OPTIMIZED_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 VM 指定 n2
      • 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 的承諾方案

假設您想在 us-central1 區域購買承諾 commitment-01,其中包含 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 磁碟數量。
  • 您可以指定要將取代的預訂項目設為單一專案 (在 Cloud de Confiance 控制台中也稱為「本機」) 或共用預訂項目。

需求條件

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

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

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

如果更換附加保留項目的要求失敗,附加的保留項目和現有預留資源不會受到影響。如要保留容量,請等到預留項目更換要求成功後,再對 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 VM 指定 n2
      • 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 VM 指定 n2
    • 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 替換為 my-commitment-with-reservations 承諾的 res-2,請使用 regionCommitments.updateReservations 方法發出下列 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"
      }
    ]
  }

後續步驟