合併及拆分承諾使用合約

為協助您管理專案的資源需求,Compute Engine 可讓您合併或分割現有承諾使用合約,並重新分配資源,以符合專案所需的精細程度。

本文說明合併及分割承諾使用合約的優點和程序,包括限制和規定。

事前準備

  • 如果尚未設定驗證,請先完成設定。驗證程序會確認您的身分,以便授予 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 進行驗證」一節。

合併承諾使用合約

您可以合併多個相容的承諾使用合約,建立新的大型合約。合併承諾使用合約後,您就能將其視為單一實體,追蹤及管理。合併承諾使用合約可讓個別合約同時到期,避免結束日期不一致。合併功能也能讓您逐步增加工作負載。舉例來說,您可以在需要時購買較新、較小的承諾使用合約,並選擇將這些合約合併,或與現有合約合併。

合併方式

合併個別承諾使用合約 (來源承諾使用合約) 時,您會建立新的承諾使用合約 (合併承諾使用合約),其中結合了所有來源承諾使用合約的資源。美國和加拿大太平洋時間 (UTC-8,日光節約時間實行期間則為 UTC-7) 隔天凌晨 12 點,合併後的承諾使用合約就會生效,來源承諾使用合約則會取消。這個啟用日期會成為合併承諾使用合約的開始日期,合併作業也會完成。

無論來源承諾使用合約是否設有預設或自訂期限,合併後的承諾使用合約都會沿用下列屬性:

  • 來源承諾使用合約中,最晚的結束日期。
  • 來源承諾使用合約中,最早結束的約期延長資格期限。

由於合併承諾使用合約只能在來源承諾使用合約生效後建立,因此合併承諾使用合約可能會有自訂效期,而非預設的 1 年或 3 年效期。不過,合併後的承諾使用合約會保留來源承諾使用合約的 1 年或 3 年承諾使用合約方案。

舉例來說,假設有兩個來源承諾使用合約,分別於 2020 年 1 月 1 日和 2020 年 12 月 1 日生效。結束日期分別為 2023 年 1 月 1 日和 2023 年 12 月 1 日。第一項承諾的使用期限延長資格申請期限為 2020 年 5 月 1 日,第二項承諾則為 2021 年 4 月 1 日。如果您在 2022 年 3 月 1 日合併這些承諾,則合併後的承諾為自訂約期承諾,開始日期為 2022 年 3 月 2 日,結束日期為 2023 年 12 月 1 日。合併承諾使用合約的約期延長資格期限,已於 2020 年 5 月 1 日結束。

如果來源承諾使用合約附加了預留項目,系統會在合併期間保留預留項目,並在合併後的承諾使用合約建立後,將預留項目附加至該合約。如要進一步瞭解附加預留項目的承諾使用合約,請參閱「將預留項目附加至資源導向承諾使用合約」。

合併承諾使用合約範例

下表顯示在 2022 年 3 月 1 日,將兩項承諾使用合約 (source-commitment-1 和 source-commitment-2) 合併為一項承諾使用合約 (merged-commitment) 時,來源和合併承諾使用合約的屬性:

第一來源承諾 第二來源承諾 合併的承諾使用合約
名稱 source-commitment-1 source-commitment-2 merged-commitment
類型 N2 N2 N2
區域 us-central1 us-central1 us-central1
資源
  • vCPU:100
  • 記憶體:100 GB
  • vCPU:200
  • 記憶體:300 GB
  • vCPU:300
  • 記憶體:400 GB
方案 3 年 3 年 3 年
字詞 3 年 3 年 自訂 (1 年 9 個月)
開始日期* 2020 年 1 月 1 日 2020 年 12 月 1 日 2022 年 3 月 2 日
(合併隔天)
結束日期† 2023 年 1 月 1 日 2023 年 12 月 1 日 2023 年 12 月 1 日
延長期限申請截止日期 2020 年 5 月 1 日 2021 年 4 月 1 日 2020 年 5 月 1 日

*所有承諾使用合約均於指定開始日期的美國和加拿大太平洋時間 (UTC-8 或 UTC-7) 凌晨 12 點生效。
†所有承諾使用合約都會在指定結束日期的美國和加拿大太平洋時間 (UTC-8 或 UTC-7) 凌晨 12 點到期。

定價影響

承諾使用費用是所有承諾資源折扣價格的總和。合併承諾使用合約後,合併合約資源的折扣價格可能會在合併合約生效當天變更。即使隨選價格有所變動,每項資源的新折扣價格仍會維持不變,直到合併承諾使用合約到期為止。不過,如果再次合併或分割這項承諾使用合約,資源的折扣價格可能會再次變更。

限制

  • 您無法合併授權使用承諾。
  • 您無法合併透過 AI Hypercomputer 未來預留項目或 Cloud TPU 未來預留項目購買的承諾使用合約。
  • 合併後的承諾使用合約會自動納入已附加至來源承諾使用合約的任何預留項目。您無法將任何其他預留項目 (無論是新的或現有的) 附加至合併的承諾使用合約。
  • 無法合併已過期或取消的承諾使用合約。
  • 根據預設,建立合併承諾時,新承諾的自動續約設定會停用,即使所有來源承諾都設為自動續約也一樣。如要自動續約合併的承諾使用合約,請務必手動啟用這些合約的自動續約設定。您可以在建立時或建立後執行這項操作。

需求條件

合併個別來源承諾使用合約,建立新的合併承諾使用合約時,來源和合併承諾使用合約必須符合下列規定:

  • 來源承諾使用合約必須具有相同的專案、區域、承諾使用合約方案、承諾使用合約類型和承諾使用合約類別。
  • 合併後的承諾使用合約必須與來源承諾使用合約位於相同專案、區域,且具有相同的承諾使用合約方案、承諾使用合約類型和承諾使用合約類別。不過,您可以為合併後的承諾使用合約選擇新名稱。
  • 您為合併承諾使用合約指定的資源類型,必須與來源承諾使用合約中的資源類型完全相符。此外,合併承諾使用合約中每種資源類型的數量,必須是所有來源承諾使用合約中該資源類型的數量總和。舉例來說,如果第一個來源承諾使用合約有 100 個 vCPU 和 100 GB 記憶體,第二個來源承諾使用合約有 200 個 vCPU 和 300 GB 記憶體,則合併後的承諾使用合約必須有 300 個 vCPU 和 400 GB 記憶體。
  • 來源和合併後的承諾使用合約必須適用於硬體資源 (vCPU、記憶體、GPU 和本機 SSD 磁碟)。

建立合併承諾使用合約

使用 Cloud de Confiance 控制台、gcloud CLI 或 REST 建立合併承諾使用合約。合併承諾使用合約前,請先詳閱合併限制。

控制台

  1. 在 Cloud de Confiance 控制台中,選取要合併承諾使用合約的專案。接著,前往「承諾使用折扣」頁面。

    前往「承諾使用折扣」

  2. 如要啟動一組承諾使用合約的合併作業,請在「Commitment list」(承諾使用合約清單) 頁面的「Hardware commitments」(硬體承諾使用合約) 分頁中,按一下「Merge」(合併)。

    或者,您也可以從清單中選取要合併的使用承諾,然後按一下「Merge」(合併)。

  3. 在開啟的「Merge」(合併) 頁面中,前往「Choose commitment」(選擇承諾使用合約) 分頁,然後執行下列操作:

    1. 在「Choose commitments to merge」(選擇要合併的承諾使用合約) 下方,從清單中選取要合併的承諾使用合約。如果您已在「Commitment list」(承諾使用合約清單) 頁面選取這些承諾使用合約,請在這個分頁驗證所選合約。

      選用:如要篩選承諾使用合約清單,請先指定合併承諾使用合約的「Plan」(方案)、「Region」(區域)和「Commitment type」(承諾使用合約類型) 值,再選取任何承諾使用合約。

    2. 點選「下一步」。「Review」分頁隨即開啟。

  4. 在「合併」頁面的「審查」分頁中,執行下列操作:

    1. 查看並確認合併承諾使用合約的詳細資料。如要修改個別承諾使用合約清單,請選取視窗左側的「Choose commitment」(選擇承諾使用合約) 分頁標籤,然後重複步驟 3。

    2. 在「New commitment name」(新承諾使用合約名稱) 欄位中,輸入合併承諾使用合約的名稱。

    3. 選用:如要為合併的承諾使用合約啟用自動續約功能,請勾選「Enable auto renew」(啟用自動續約) 核取方塊。

    4. 詳閱條款及細則。

    5. 如要完成建立合併承諾使用合約,並返回「Commitment list」(承諾使用合約清單) 頁面,請按一下「Merge」(合併)。

gcloud

如要將現有承諾使用合約合併為單一承諾使用合約,請使用 gcloud compute commitments create 指令,並加上 --merge-source-commitments 旗標。

gcloud compute commitments create COMMITMENT_NAME \
    --region=REGION \
    --project=PROJECT_ID \
    --plan=COMMITMENT_PLAN \
    --type=COMMITMENT_TYPE \
    --resources=vcpu=NUMBER_VCPUS,memory=MEMORY \
    --merge-source-commitments=SOURCE_COMMITMENT_URLS

更改下列內容:

  • COMMITMENT_NAME:新合併 承諾使用合約的名稱。
  • NUMBER_VCPUS:來源承諾使用合約中的 vCPU 數量總和。
  • COMMITMENT_TYPE:與來源承諾使用合約相同的承諾使用合約類型,可以是下列其中一項:

    • 如果是 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
    • 如果是 H3 機型,請使用 compute-optimized-h3
    • 如果是 H4D 機型,請使用 compute-optimized-h4d
    • 如果是 N1 機型,請使用 general-purpose
    • 如果是 C4 機型,請使用 general-purpose-c4
    • 如果是 C4A 機型,請使用 general-purpose-c4a
    • 如果是 C4D 機型,請使用 general-purpose-c4d
    • 如果是 C4N 機型,請使用 network-optimized-c4n
    • 如果是 E2 機型,請使用 general-purpose-e2
    • 如果是 N2 機型,請使用 general-purpose-n2
    • 如果是 N2D 機型,請使用 general-purpose-n2d
    • 如果是 N4 機型,請使用 general-purpose-n4
    • 如果是 N4D 機型,請使用 general-purpose-n4d
    • 如果是 N4A 機型,請使用 general-purpose-n4a
    • 如果是 Tau T2D 機型,請使用 general-purpose-t2d
    • 如果是 M1 或 M2 機型,請使用 memory-optimized
    • 如果是 M3 機型,請使用 memory-optimized-m3
    • 如果是記憶體為 6 TB 的 M4 機型,請使用 memory-optimized-m4-6tb
    • 如為其他 M4 機型,請使用 memory-optimized-m4
    • 如果是記憶體為 6 TB 的 X4 機型,請使用 memory-optimized-x4-6t
    • 如果是記憶體為 8 TB 的 X4 機型,請使用 memory-optimized-x4-8t
    • 如果是記憶體為 12 TB 的 X4 機型,請使用 memory-optimized-x4-12t
    • 如果是記憶體為 16 TB 的 X4 機型,請使用 memory-optimized-x4-960-16t
    • 如果是記憶體為 24 TB 的 X4 機型,請使用 memory-optimized-x4-1440-24t
    • 如果是記憶體為 32 TB 的 X4 機型,請使用 memory-optimized-x4-1920-32t
    • 如果是 Z3 機型,請使用 storage-optimized-z3
    • 如果是 Z4D 機型,請使用 storage-optimized-z4d
    • 如果是 Z4M 機型,請使用 storage-optimized-z4m

  • REGION:與來源承諾使用合約相同的區域。

  • PROJECT_ID:要合併承諾使用合約的專案 ID。

  • COMMITMENT_PLAN:承諾使用合約方案 (「12 個月」或「36 個月」),必須與來源承諾使用合約相同。

  • MEMORY:來源承諾使用合約中的記憶體總量,以 MB 或 GB 為單位。例如 1000 MB。如未指定單位,則預設單位為 GB。

  • SOURCE_COMMITMENT_URLS:以半形逗號分隔的清單,至少包含兩個不同的來源承諾網址。網址之間請勿加上空格。

舉例來說,假設 us-east1 區域有兩項來源承諾,指定的資源分別為四個 N2 vCPU 和 2048 MB,以及三個 N2 vCPU 和 2048 MB。每個來源合約的合約方案皆為 12-month。下列 gcloud CLI 指令會合併兩項承諾使用合約,並建立名為 merged-commitment 的新承諾使用合約。合併後的承諾使用合約指定資源為七個 N2 vCPU 和 4096 MB,承諾使用合約方案為 12-month:

gcloud compute commitments create merged-commitment \
    --plan=12-month \
    --project=myproject \
    --region=us-east1 \
    --type=general-purpose-n2 \
    --resources=vcpu=7,memory=4096MB \
    --merge-source-commitments=projects/myproject/regions/us-east1/commitments/source-commitment-1,projects/myproject/regions/us-east1/commitments/source-commitment-2

REST

如要將現有承諾使用合約合併為單一合約,請使用 regionCommitments.insert 方法。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments
{
  "name": "COMMITMENT_NAME",
  "plan": "COMMITMENT_PLAN",
  "type": "COMMITMENT_TYPE",
  "region": "REGION",
  "resources": [
    {
      "type": "VCPU",
      "amount": "NUMBER_VCPUS"
    },
    {
      "type": "MEMORY",
      "amount": "MEMORY"
    }
  ],
  "mergeSourceCommitments": ["SOURCE_COMMITMENT_URL" ...]
}

更改下列內容:

  • PROJECT_ID:要合併承諾使用合約的專案 ID。
  • REGION:與來源承諾使用合約相同的區域。
  • COMMITMENT_TYPE:與來源承諾使用合約相同的承諾使用合約類型,可以是下列其中一項:

    • 如果是 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
    • 如果是 H3 機型,請使用 COMPUTE_OPTIMIZED_H3
    • 如果是 H4D 機型,請使用 COMPUTE_OPTIMIZED_H4D
    • 如果是 N1 機型,請使用 GENERAL_PURPOSE
    • 如果是 C4 機型,請使用 GENERAL_PURPOSE_C4
    • 如果是 C4A 機型,請使用 GENERAL_PURPOSE_C4A
    • 如果是 C4D 機型,請使用 GENERAL_PURPOSE_C4D
    • 如果是 C4N 機型,請使用 NETWORK_OPTIMIZED_C4N
    • 如果是 E2 機型,請使用 GENERAL_PURPOSE_E2
    • 如果是 N2 機型,請使用 GENERAL_PURPOSE_N2
    • 如果是 N2D 機型,請使用 GENERAL_PURPOSE_N2D
    • 如果是 N4 機型,請使用 GENERAL_PURPOSE_N4
    • 如果是 N4D 機型,請使用 GENERAL_PURPOSE_N4D
    • 如果是 N4A 機型,請使用 GENERAL_PURPOSE_N4A
    • 如果是 Tau T2D 機型,請使用 GENERAL_PURPOSE_T2D
    • 如果是 M1 或 M2 機型,請使用 MEMORY_OPTIMIZED
    • 如果是 M3 機型,請使用 MEMORY_OPTIMIZED_M3
    • 如果是記憶體為 6 TB 的 M4 機型,請使用 MEMORY_OPTIMIZED_M4_6TB
    • 如為其他 M4 機型,請使用 MEMORY_OPTIMIZED_M4
    • 如果是記憶體為 6 TB 的 X4 機型,請使用 MEMORY_OPTIMIZED_X4_480_6T
    • 如果是記憶體為 8 TB 的 X4 機型,請使用 MEMORY_OPTIMIZED_X4_480_8T
    • 如果是記憶體為 12 TB 的 X4 機型,請使用 MEMORY_OPTIMIZED_X4_960_12T
    • 如果是記憶體為 16 TB 的 X4 機型,請使用 MEMORY_OPTIMIZED_X4_960_16T
    • 如果是記憶體為 24 TB 的 X4 機型,請使用 MEMORY_OPTIMIZED_X4_1440_24T
    • 如果是記憶體為 32 TB 的 X4 機型,請使用 MEMORY_OPTIMIZED_X4_1920_32T
    • 如果是 Z3 機型,請使用 STORAGE_OPTIMIZED_Z3
    • 如果是 Z4D 機型,請使用 STORAGE_OPTIMIZED_Z4D
    • 如果是 Z4M 機型,請使用 STORAGE_OPTIMIZED_Z4M

  • COMMITMENT_PLAN:合約方案 (「TWELVE_MONTH」或「THIRTY_SIX_MONTH」),必須與來源合約相同。

  • COMMITMENT_NAME:新合併 承諾使用合約的名稱。

  • NUMBER_VCPUS:來源承諾使用合約中的 vCPU 總數。

  • MEMORY:來源承諾中的記憶體總量,以 MB 為單位。例如 1000 MB。如未指定單位,則預設單位為 MB。

  • SOURCE_COMMITMENT_URL:要合併的來源承諾使用合約網址。您必須指定以半形逗號分隔的不同來源承諾使用合約網址清單。

舉例來說,假設 us-east1 區域中有兩個來源承諾使用合約 (source-commitment-1 和 source-commitment-2),其資源分別指定為 (四個 N2 vCPU 和 2048 MB) 和 (三個 N2 vCPU 和 2048 MB)。每個來源承諾使用合約的承諾使用合約方案為 TWELVE_MONTH。下列 POST 要求會合併來源承諾使用合約,並建立名為 merged-commitment 的新承諾使用合約。合併後的承諾使用合約指定資源為 7 個 N2 vCPU 和 4096 MB,承諾使用合約方案為 TWELVE_MONTH。

POST https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-east1/commitments
{
  "name": "merged-commitment",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE_N2",
  "region": "us-east1",
  "resources": [
    {
      "type": "VCPU",
      "amount": "7"
    },
    {
      "type": "MEMORY",
      "amount": "4096"
    }
  ],
  "mergeSourceCommitments": [
    "projects/myproject/regions/us-east1/commitments/source-commitment-1",
    "projects/myproject/regions/us-east1/commitments/source-commitment-2",
    ...
  ]
}

拆分承諾使用合約

您可以將資源從現有承諾使用合約中轉出,並將承諾使用合約分割為較小的承諾使用合約。分割功能可讓您將大型承諾使用合約拆分為較小的個別合約,以便密切監控及管理。舉例來說,您可以將承諾使用合約拆分,並只為其中一項子承諾使用合約啟用自動續約,這樣就只有部分承諾使用合約會自動續約。拆分後,您也可以使用拆分承諾使用合約的優先歸因,以更精細的方式分配承諾使用折扣。

拆分方式

分割現有承諾使用合約 (來源合約) 時,您會從來源合約轉移資源、建立一或多個新合約 (分割合約),並將轉移的資源重新分配給新的分割合約。拆分承諾使用合約的啟用和來源承諾使用合約的大小調整,都會在隔天凌晨 12 點 (美國和加拿大太平洋時間,即 UTC-8,日光節約時間實行期間則為 UTC-7) 進行。Compute Engine 會將這個啟用日期設為拆分承諾使用合約的開始日期。分割作業完成後,您會取得下列承諾使用合約:

  • 調整大小後的來源承諾使用合約,包含分割後剩餘的資源。
  • 已重新分配資源的分割承諾使用合約。

來源承諾使用合約雖然經過調整,但仍保留所有其他屬性,包括開始和結束日期,並繼續正常運作。拆分後的承諾使用合約會保留與來源承諾使用合約相同的結束日期和合約展延資格期限。

由於分割承諾使用合約只能在來源承諾使用合約生效後建立,因此分割承諾使用合約可能會有自訂期限,而非預設的 1 年或 3 年期限。不過,拆分後的承諾使用合約會保留來源承諾使用合約的 1 年或 3 年承諾使用合約方案。

使用 REST 和 gcloud CLI 時,一次只能建立一項新的拆分承諾使用合約。您可以使用 Cloud de Confiance 控制台,在單一作業中建立多項新的拆分承諾使用合約。

您無法分割已附加預留項目的承諾使用合約。如要進一步瞭解附有預留項目的承諾使用合約,請參閱「合併使用預留項目與承諾使用折扣」。

拆分承諾使用合約範例

下表顯示在 2022 年 3 月 1 日,將現有承諾使用合約 (source-commitment) 拆分為兩份不同承諾使用合約 (調整大小的 source-commitment 和 split-commitment) 時的承諾使用合約屬性:

來源承諾使用合約
(分割前)
拆分承諾使用合約 來源承諾使用合約
(拆分後)
名稱 source-commitment split-commitment source-commitment
類型 N2 N2 N2
區域 us-central1 us-central1 us-central1
資源
  • vCPU:200
  • 記憶體:200 GB
  • vCPU:50
  • 記憶體:100 GB
  • vCPU:150
  • 記憶體:100 GB
方案 3 年 3 年 3 年
字詞 3 年 自訂 (10 個月) 3 年
開始日期* 2020 年 1 月 1 日 2022 年 3 月 2 日
(拆分後隔天)
2020 年 1 月 1 日
結束日期† 2023 年 1 月 1 日 2023 年 1 月 1 日 2023 年 1 月 1 日
延長期限申請截止日期 2021 年 1 月 1 日 2021 年 1 月 1 日 2021 年 1 月 1 日

*所有承諾使用合約均於指定開始日期的美國和加拿大太平洋時間 (UTC-8 或 UTC-7) 凌晨 12 點生效。
†所有承諾使用合約都會在指定結束日期的美國和加拿大太平洋時間 (UTC-8 或 UTC-7) 凌晨 12 點到期。

定價影響

承諾使用費用是所有承諾資源折扣價格的總和。分割承諾使用合約會以下列方式影響資源費用:

  • 調整後的來源承諾使用合約:調整後的來源承諾使用合約中,資源的折扣價格維持不變。
  • 分割承諾使用合約:分割承諾使用合約生效當天,分割承諾使用合約資源的折扣價格可能會變更。即使隨選價格有所變動,每項資源的新折扣價格仍會維持不變,直到新的拆分承諾使用合約到期為止。

不過,如果再次合併或分割這些承諾使用合約,折扣價格可能會再次變更。

限制

  • 無法拆分授權承諾使用合約。
  • 您無法分割透過 AI Hypercomputer 未來預留項目或 Cloud TPU 未來預留項目購買的承諾使用合約。
  • 您無法分割附加預留項目的承諾使用合約。因此,您無法分割含有 GPU、本機 SSD 磁碟或兩者的承諾使用合約,因為含有這些資源的承諾使用合約一律會附加預留項目。
  • 您無法將任何預留項目 (無論新舊) 附加至拆分的承諾使用合約。
  • 無法拆分已過期或取消的承諾使用合約。
  • 根據預設,分割承諾使用合約時,即使所有來源承諾使用合約都設為自動續約,分割後的承諾使用合約也會停用自動續約設定。如要自動續約拆分的承諾使用合約,必須手動啟用這些合約的自動續約設定。您可以在建立時或建立後執行這項操作。
  • 使用 REST 或 gcloud CLI 時,一次只能建立一項新的拆分承諾使用合約。因此,使用這些介面時,您可以在單一作業中將來源承諾使用合約分割為最多兩個承諾使用合約。如要在單一作業中將來源承諾使用合約拆分為三項以上,請使用Cloud de Confiance 控制台。
  • 在 Cloud de Confiance 控制台中,您只能以 0.25 GB 為單位指定記憶體。如要為承諾使用合約指定自訂記憶體值,請改用 gcloud CLI 或 REST。

需求條件

拆分來源承諾使用合約並建立一或多個拆分承諾使用合約時,來源和拆分承諾使用合約必須符合下列規定:

  • 分割後的承諾使用合約必須與來源承諾使用合約具有相同的專案、承諾使用合約類型、區域和承諾使用合約方案。不過,您必須為分割的承諾使用合約選擇新名稱。
  • 您為拆分承諾使用合約指定的資源類型,必須與來源承諾使用合約中的部分或所有資源類型相符。此外,您為拆分承諾指定的資源總量,必須是來源承諾中的一部分資源。您必須保留來源承諾使用合約中的部分資源。舉例來說,如果來源承諾使用合約為 200 個 vCPU 和 300 GB 記憶體,則適用下列調整大小和重新分配情境:

    • 您可以將 200 個 vCPU 和 300 GB 記憶體的一部分,重新分配給拆分後的承諾使用合約。
    • 您可以重新分配所有 200 個 vCPU,但必須保留來源承諾中的部分記憶體。
    • 您可以重新分配所有 300 GB 記憶體,但必須保留來源承諾使用合約中的部分 vCPU。
    • 您無法在拆分的承諾使用合約中,重新分配所有 200 個 vCPU 和 300 GB 記憶體。
  • 來源和拆分承諾使用合約只能指定下列硬體資源:vCPU、記憶體或兩者的組合。

此外,如要使用 Google Cloud CLI 分割來源承諾使用合約,請將 Google Cloud CLI 更新至 423.0.0 以上版本。如果使用舊版,分割作業會失敗,Compute Engine 也會擲回錯誤。

建立分割承諾使用合約

使用 gcloud CLI 或 Compute Engine API,一次建立一項新的拆分承諾使用合約。使用 Cloud de Confiance 控制台,一次建立多項新的拆分承諾使用合約。拆分承諾使用合約前,請先詳閱拆分限制。

控制台

  1. 在 Cloud de Confiance 控制台中,選取要拆分承諾使用合約的專案。接著,前往「承諾使用折扣」頁面。

    前往「承諾使用折扣」

  2. 如要啟動承諾使用合約的拆分作業,請在「Commitment list」(承諾使用合約清單) 頁面的「Hardware commitments」(硬體承諾使用合約) 分頁中,執行下列任一操作:

    • 從清單中選取要分割的使用承諾,然後按一下「Split」(分割)。
    • 在「Name」(名稱) 欄中,按一下要分割的使用承諾合約名稱。在開啟的「Hardware commitment details」(硬體承諾使用合約詳細資料) 頁面中,按一下「Split」(分割)。
  3. 在開啟的「Split commitment」(拆分承諾使用合約) 頁面中,前往「Resize」(調整大小) 分頁,然後執行下列操作:

    1. 在「vCPUs」(vCPU) 和「Memory」(記憶體) 欄位中,指定要在原始承諾使用合約中保留的 vCPU 數量和記憶體。剩餘資源可重新分配給分割承諾使用。調整大小後,來源承諾使用合約不得為空白。
    2. 點選「下一步」。「重新分配」分頁隨即開啟。
  4. 在「Split commitment」(拆分承諾使用合約) 頁面的「Redistribute」(重新分配) 分頁中,執行下列操作:

    1. 在「Name」(名稱) 欄位中,指定分割承諾使用合約的名稱。
    2. 在「vCPUs」(vCPU) 和「Memory」(記憶體) 欄位中,指定拆分承諾的 vCPU 數量和記憶體。指定記憶體時,只能以 0.25 GB 為單位。如要為承諾使用合約指定自訂記憶體值,請改用 gcloud CLI 或 REST。

      如要建立單一拆分承諾使用合約,請指定要從來源承諾使用合約重新分配的所有資源。如要建立多個拆分承諾使用合約,請僅指定要用於這項拆分承諾使用合約的重新分配資源部分。

    3. 選用:如要啟用拆分承諾使用合約的自動續約功能,請勾選「Enable auto renew」(啟用自動續約) 核取方塊。

    4. 按一下「完成」。

    5. 選用:如要建立其他拆分承諾使用合約,請按一下「Add an item」(新增項目),然後重複上述步驟。

    6. 點選「下一步」。「Review」分頁隨即開啟。

  5. 在「Split commitment」(拆分承諾使用合約) 頁面的「Review」(審查) 分頁中,執行下列操作:

    1. 查看並確認調整後的承諾使用合約和拆分承諾使用合約的詳細資料。
      • 如要修改原始承諾的資源分配,請選取視窗左側的「Resize」(調整大小) 分頁標籤,然後重複步驟 3。
      • 如要修改拆分承諾使用合約之間的資源重新分配,請選取視窗左側的「Redistribute」(重新分配) 分頁標籤,然後重複步驟 4。
    2. 詳閱條款及細則。
    3. 如要完成建立拆分承諾使用合約並返回「Commitment list」(承諾使用合約清單) 頁面,請按一下「Submit」(提交)。

gcloud

如要將現有承諾使用合約拆分為兩份,請使用 gcloud compute commitments create 指令,並加上 --split-source-commitment 旗標。

gcloud compute commitments create COMMITMENT_NAME \
    --region=REGION \
    --project=PROJECT_ID \
    --plan=COMMITMENT_PLAN \
    --type=COMMITMENT_TYPE \
    --resources=vcpu=NUMBER_VCPUS,memory=MEMORY \
    --split-source-commitment=SOURCE_COMMITMENT_URL

更改下列內容:

  • COMMITMENT_NAME:新拆分承諾使用合約的名稱。
  • COMMITMENT_TYPE:與來源承諾使用合約相同的承諾使用合約類型,可以是下列其中一項:

    • 如果是 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
    • 如果是 H3 機型,請使用 compute-optimized-h3
    • 如果是 H4D 機型,請使用 compute-optimized-h4d
    • 如果是 N1 機型,請使用 general-purpose
    • 如果是 C4 機型,請使用 general-purpose-c4
    • 如果是 C4A 機型,請使用 general-purpose-c4a
    • 如果是 C4D 機型,請使用 general-purpose-c4d
    • 如果是 C4N 機型,請使用 network-optimized-c4n
    • 如果是 E2 機型,請使用 general-purpose-e2
    • 如果是 N2 機型,請使用 general-purpose-n2
    • 如果是 N2D 機型,請使用 general-purpose-n2d
    • 如果是 N4 機型,請使用 general-purpose-n4
    • 如果是 N4D 機型,請使用 general-purpose-n4d
    • 如果是 N4A 機型,請使用 general-purpose-n4a
    • 如果是 Tau T2D 機型,請使用 general-purpose-t2d
    • 如果是 M1 或 M2 機型,請使用 memory-optimized
    • 如果是 M3 機型,請使用 memory-optimized-m3
    • 如果是記憶體為 6 TB 的 M4 機型,請使用 memory-optimized-m4-6tb
    • 如為其他 M4 機型,請使用 memory-optimized-m4
    • 如果是記憶體為 6 TB 的 X4 機型,請使用 memory-optimized-x4-6t
    • 如果是記憶體為 8 TB 的 X4 機型,請使用 memory-optimized-x4-8t
    • 如果是記憶體為 12 TB 的 X4 機型,請使用 memory-optimized-x4-12t
    • 如果是記憶體為 16 TB 的 X4 機型,請使用 memory-optimized-x4-960-16t
    • 如果是記憶體為 24 TB 的 X4 機型,請使用 memory-optimized-x4-1440-24t
    • 如果是記憶體為 32 TB 的 X4 機型,請使用 memory-optimized-x4-1920-32t
    • 如果是 Z3 機型,請使用 storage-optimized-z3
    • 如果是 Z4D 機型,請使用 storage-optimized-z4d
    • 如果是 Z4M 機型,請使用 storage-optimized-z4m

  • REGION:與來源承諾使用合約相同的區域。

  • PROJECT_ID:要分割來源承諾使用合約的專案 ID。

  • COMMITMENT_PLAN:承諾使用合約方案 (「12 個月」或「36 個月」),必須與來源承諾使用合約相同。

  • NUMBER_VCPUS:要從來源承諾使用合約轉移多少 vCPU,建立新的分割承諾使用合約。這個數字必須是整數,且小於來源承諾使用合約中的 vCPU 數量。

  • MEMORY:要從來源承諾使用合約轉移多少記憶體 (以 MB 或 GB 為單位),建立新的分割承諾使用合約。這個數量必須小於來源承諾使用合約中的記憶體數量。例如 10000 MB。如未指定單位,則預設單位為 GB。

  • SOURCE_COMMITMENT_URL:要從中劃分資源的來源承諾使用合約網址。

舉例來說,假設 us-east1 區域中的來源承諾使用合約 (source-commitment) 指定的資源為三個 N2 vCPU 和 2048 MB 記憶體。來源承諾使用合約的承諾使用合約方案為 12-month。下列 gcloud CLI 指令會將承諾使用合約拆分為兩份:

gcloud compute commitments create split-commitment \
    --plan=12-month \
    --type=general-purpose-n2 \
    --region=us-east1 \
    --project=myproject \
    --resources vcpu=1,memory=1024MB \
    --split-source-commitment=projects/myproject/regions/us-east1/commitments/source-commitment

分割 source-commitment 時,Compute Engine 會執行下列操作:

  • 從 source-commitment 取得資源,並建立新的承諾使用合約 split-commitment,其中包含一個 N2 vCPU 和 1024 MB 記憶體。
  • 將 source-commitment 調整為剩餘資源的大小。

REST

如要將現有承諾使用合約拆分為兩份,請使用 regionCommitments.insert 方法。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments
{
  "name": "COMMITMENT_NAME",
  "plan": "COMMITMENT_PLAN",
  "type": "COMMITMENT_TYPE",
  "region": "REGION",
  "resources": [
    {
      "type": "VCPU",
      "amount": "NUMBER_VCPUS"
    },
    {
      "type": "MEMORY",
      "amount": "MEMORY"
    }
  ],
  "splitSourceCommitment": "SOURCE_COMMITMENT_URL"
}

更改下列內容:

  • PROJECT_ID:要分割來源承諾使用合約的專案 ID。
  • REGION:與來源承諾使用合約相同的區域。
  • COMMITMENT_NAME:新拆分承諾使用合約的名稱。
  • COMMITMENT_TYPE:與來源承諾使用合約相同的承諾使用合約類型,可以是下列其中一項:

    • 如果是 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
    • 如果是 H3 機型,請使用 COMPUTE_OPTIMIZED_H3
    • 如果是 H4D 機型,請使用 COMPUTE_OPTIMIZED_H4D
    • 如果是 N1 機型,請使用 GENERAL_PURPOSE
    • 如果是 C4 機型,請使用 GENERAL_PURPOSE_C4
    • 如果是 C4A 機型,請使用 GENERAL_PURPOSE_C4A
    • 如果是 C4D 機型,請使用 GENERAL_PURPOSE_C4D
    • 如果是 C4N 機型,請使用 NETWORK_OPTIMIZED_C4N
    • 如果是 E2 機型,請使用 GENERAL_PURPOSE_E2
    • 如果是 N2 機型,請使用 GENERAL_PURPOSE_N2
    • 如果是 N2D 機型,請使用 GENERAL_PURPOSE_N2D
    • 如果是 N4 機型,請使用 GENERAL_PURPOSE_N4
    • 如果是 N4D 機型,請使用 GENERAL_PURPOSE_N4D
    • 如果是 N4A 機型,請使用 GENERAL_PURPOSE_N4A
    • 如果是 Tau T2D 機型,請使用 GENERAL_PURPOSE_T2D
    • 如果是 M1 或 M2 機型,請使用 MEMORY_OPTIMIZED
    • 如果是 M3 機型,請使用 MEMORY_OPTIMIZED_M3
    • 如果是記憶體為 6 TB 的 M4 機型,請使用 MEMORY_OPTIMIZED_M4_6TB
    • 如為其他 M4 機型,請使用 MEMORY_OPTIMIZED_M4
    • 如果是記憶體為 6 TB 的 X4 機型,請使用 MEMORY_OPTIMIZED_X4_480_6T
    • 如果是記憶體為 8 TB 的 X4 機型,請使用 MEMORY_OPTIMIZED_X4_480_8T
    • 如果是記憶體為 12 TB 的 X4 機型,請使用 MEMORY_OPTIMIZED_X4_960_12T
    • 如果是記憶體為 16 TB 的 X4 機型,請使用 MEMORY_OPTIMIZED_X4_960_16T
    • 如果是記憶體為 24 TB 的 X4 機型,請使用 MEMORY_OPTIMIZED_X4_1440_24T
    • 如果是記憶體為 32 TB 的 X4 機型,請使用 MEMORY_OPTIMIZED_X4_1920_32T
    • 如果是 Z3 機型,請使用 STORAGE_OPTIMIZED_Z3
    • 如果是 Z4D 機型,請使用 STORAGE_OPTIMIZED_Z4D
    • 如果是 Z4M 機型,請使用 STORAGE_OPTIMIZED_Z4M

  • COMMITMENT_PLAN:合約方案 (「TWELVE_MONTH」或「THIRTY_SIX_MONTH」),必須與來源合約相同。

  • NUMBER_VCPUS:要從來源承諾使用合約轉移的 vCPU 數量,用於建立新的拆分承諾使用合約。這個數字必須是整數,且小於來源承諾使用合約中的 vCPU 數量。

  • MEMORY:要從來源承諾使用合約轉移多少記憶體 (以 MB 為單位),建立新的分割承諾使用合約。這個數量必須小於來源承諾使用合約中的記憶體數量。例如 1000 MB。如未指定單位,則預設單位為 MB。

  • SOURCE_COMMITMENT_URL:要轉移資源的來源承諾使用合約網址。

舉例來說,假設 us-east1 區域中的來源承諾使用合約 (source-commitment) 指定的資源為三個 N2 vCPU 和 2048 MB 記憶體。來源承諾使用合約的承諾使用合約方案為 TWELVE_MONTH。下列 POST 要求會將承諾使用合約拆分為兩份:

POST https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-east1/commitments
{
  "name": "split-commitment",
  "plan": "TWELVE_MONTH",
  "type": "GENERAL_PURPOSE_N2",
  "region": "us-east1",
  "resources": [
    {
      "type": "VCPU",
      "amount": "1"
    },
    {
      "type": "MEMORY",
      "amount": "1024"
    }
  ],
  "splitSourceCommitment": "projects/myproject/regions/us-east1/commitments/source-commitment"
}

分割 source-commitment 時,Compute Engine 會執行下列操作:

  • 從 source-commitment 取得資源,並建立新的承諾使用合約 split-commitment,其中包含一個 N2 vCPU 和 1024 MB 記憶體。
  • 將 source-commitment 調整為剩餘資源的大小。

後續步驟