合併及拆分承諾使用合約

為協助您管理專案的資源需求,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-1source-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 年
開始日期* 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 點到期。

價格相關注意事項

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

限制

  • 您無法合併授權使用承諾。
  • 合併後的承諾會自動納入已附加至來源承諾的任何預留項目。合併後的承諾使用合約無法再附加任何預留項目 (無論是新的或現有的)。
  • 您無法合併已過期或取消的承諾使用合約。
  • 根據預設,建立合併的約期時,即使所有來源約期都設為自動續約,新約期的自動續約設定也會停用。如要讓合併後的承諾使用合約自動續約,請手動啟用這些合約的自動續約設定。您可以在建立時建立後進行這項操作。

需求條件

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

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

建立合併的承諾使用合約

使用 gcloud CLI 或 REST 建立合併的約定。 合併承諾使用合約前,請先詳閱合併限制

控制台

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

    前往「承諾使用折扣」

  2. 如要針對一組承諾啟動合併作業,請在「承諾清單」頁面的「硬體承諾」分頁中,按一下「合併」

    或者,你也可以從清單中選取要合併的承諾,然後按一下「合併」

  3. 在隨即開啟的「合併」頁面中,選取「選擇承諾」分頁標籤,然後執行下列操作:

    1. 在「選擇要合併的承諾使用合約」下方,從清單中選取要合併的承諾使用合約。如果您已在「承諾清單」頁面選取這些承諾,請在這個分頁中確認所選承諾。

      選用:如要篩選承諾清單,請先為合併的承諾指定「方案」、「區域」和「承諾類型」值,再選取任何承諾。

    2. 點選「下一步」。系統會開啟「查看」分頁。

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

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

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

    3. 選用:如要啟用合併承諾使用方案的自動續訂功能,請勾選「啟用自動續訂」核取方塊。

    4. 詳閱條款及細則

    5. 如要完成建立合併承諾並返回「承諾清單」頁面,請按一下「合併」

gcloud

如要將現有承諾合併為單一承諾,請使用 gcloud compute commitments create 指令,並加上 --merge-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 \
    --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
    • 如為 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
    • 如為 M4 機型,請使用 memory-optimized-m4
    • 如要使用搭載 6 TB 記憶體的 M4 機器類型,請使用 memory-optimized-m4-6tb
    • 如為搭載 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

  • 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": "vCPUs",
      "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
    • 如為 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
    • 如為 M4 機型,請使用 MEMORY_OPTIMIZED_M4
    • 如要使用搭載 6 TB 記憶體的 M4 機器類型,請使用 MEMORY_OPTIMIZED_M4_6TB
    • 如為搭載 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

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

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

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

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

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

舉例來說,假設 us-east1 區域有兩項來源承諾使用 (source-commitment-1source-commitment-2),資源分別指定為 (四個 N2 vCPU 和 2048 MB) 和 (三個 N2 vCPU 和 2048 MB)。每個來源承諾的承諾方案為 TWELVE_MONTH。下列 POST 要求會合併來源約期,並建立名為 merged-commitment 的新約期。合併後的使用承諾會將資源指定為七個 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",
    ...
  ]
}

拆分承諾使用合約

您可以將資源從現有承諾轉移出去,並將承諾分割為較小的承諾。分割後,您就能以較小的個別承諾使用合約,密切監控及管理大型承諾使用合約的部分內容。舉例來說,您可以只為部分約期設定自動續約,方法是將約期拆分,然後只為其中一個子項約期啟用自動續約。此外,您也可以使用優先歸因,為分割的承諾使用分配折扣,以更精細的層級分配承諾使用折扣。

如何拆分付款

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

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

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

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

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

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

分攤承諾示例

下表顯示在 2022 年 3 月 1 日將現有承諾 (source-commitment) 分成兩個不同承諾 (大小調整後的 source-commitmentsplit-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 年
開始日期* 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 點到期。

價格相關注意事項

承諾使用費用是所有承諾資源折扣價格的總和。分割承諾會對資源費用造成以下影響:

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

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

限制

  • 您無法拆分授權承諾。
  • 您無法拆分附加保留項目的承諾使用合約。因此,您無法分割含有 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」(硬體使用承諾) 分頁中,執行下列任一操作:

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

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

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

      如要建立單一分割承諾,請指定要從來源承諾重新分配的所有資源。如要建立多個分割承諾,請只指定您要用於此分割承諾的重新分配資源部分。

    3. 選用:如要啟用自動續訂功能,請勾選「啟用自動續訂」核取方塊。

    4. 按一下 [完成]

    5. 選用:如要建立其他分割承諾,請按一下新增項目,然後重複上述步驟。

    6. 點選「下一步」。系統會開啟「查看」分頁。

  5. 在「Split commitment」(分割使用承諾) 頁面的「Review」(檢閱) 分頁中,執行下列操作:

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

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
    • 如為 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
    • 如為 M4 機型,請使用 memory-optimized-m4
    • 如要使用搭載 6 TB 記憶體的 M4 機器類型,請使用 memory-optimized-m4-6tb
    • 如為搭載 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

  • 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": "vCPUs",
      "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
    • 如為 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
    • 如為 M4 機型,請使用 MEMORY_OPTIMIZED_M4
    • 如要使用搭載 6 TB 記憶體的 M4 機器類型,請使用 MEMORY_OPTIMIZED_M4_6TB
    • 如為搭載 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

  • 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 大小調整為剩餘資源。

後續步驟