【東東老師 X 思想科技】Google Cloud VM 永續折扣與承諾使用折扣

在上一篇文章中,我們已經介紹了 GCP VM 的基本計費方式,其中大部分產品都是採取「用多少算多少」(Pay as you go) 的模式計算,也就是說,依照每月的實際使用量來繳費。這樣的計費方式雖然簡單直觀,但在長期運行的情境下,若能善用折扣機制,將有助於顯著降低成本。接下來,我們將深入探討 GCP VM 提供的兩種主要折扣方案:「永續使用折扣」與「承諾使用折扣」,並且教大家如何使用 GCP 費用計算工具來估算與規劃未來的雲端成本。

續用折扣 (Sustained Usage Discount; SUD)

續用折扣是在同一個月內,使用某一個型號到達某個時數的時候,可以享受到的折扣,而且它是會自動套用的。類似現在電子商務的「滿額折扣」,例如結帳金額「滿千送百」,或是購物滿多少錢免運費的概念。而不同型號會有不同的折扣深度,例如:

使用 N1、M1、M2,以及除了 NVIDIA H100, A100, and L4 以外的所有 GPU,最高可達 30% Off 折扣,就是打七折。使用 N2、N2D、C2 最高可達 20% Off 折扣,就是打八折。

另外要注意,E2 沒有 SUD 喔!

我們以 n1-standard2 型號為例,原價每小時 0.55 美金,以 2025 年 2 月是 28 天(方便計算),如果機器一直開著不關,我們來看它的折扣狀況:

GCP VM 續用折扣 (Sustained Usage Discount; SUD), 持續使用折扣 SUD 計算範例
持續使用折扣 SUD 計算範例
資料來源:東東老師自行整理

我們再看這張圖,可以得知,用越多省越多:

GCP VM 續用折扣 (Sustained Usage Discount; SUD),承諾使用折扣
持續使用折扣,用越多省越多
資料來源:擷圖自 GCP 官方文件

上面的例子是假設你的主機都不關的情況下,可以獲得的折扣。那如果機器中途關機,會不會失去折扣?如果你機器剛好在2月初開了一個禮拜,最後一周也開一個禮拜,因為第一周的開機時數已滿 (25%),最後那周開機的費用,就滿足 20% Off 的條件,也就是打八折,再跟第一周的原價平均起來,就是打九折。
那如果是中途升級呢?Google 官網有個範例

GCP VM 續用折扣 (Sustained Usage Discount; SUD),主機中途升級的 SUD 折扣認定
主機中途升級的 SUD 折扣認定
資料來源:擷圖自 GCP 官方文件

為了讓你可以跟 Google 官網正確對照,我們沿用官網的價格,以及每月時數 730 小時來計算。我們本來用 n1-standard-4,用了半個月,再升級成為 n1-standard-16。原本的費用是:n1-standard-4 使用半個月的費用 + n1-standard-16 使用半個月的費用。照理來說,使用半個月就是打九折。但 Google 的算法是,n1-standard-4 使用一個月的費用,增加的規格 (12vCPU, 45GB) 使用半個月的費用。就是 n1-standard-4 打七折,增加的規格才打九折。

具體算法如下圖:

GCP VM 續用折扣 (Sustained Usage Discount; SUD), 主機中途升級的 SUD 計算方式
主機中途升級的 SUD 計算方式
資料來源:東東老師自行整理

但要注意,如果你是自訂規格,你的 vCPU 和記憶體是自己指定的,它們的續用折扣會獨立計算,不會跟原本配好的機器類型合併計算喔!

三、承諾使用折扣 (Committed Usage Discount; CUD)

如果你確定有些機器要長期持續運作,Google 提供一年到三年的 CUD。這裡分為以資源為基礎的 (Resource-Based) CUD 和運算彈性的 (Flexible) CUD。接下來我們一邊說明折扣計算方式,一邊操作下單的畫面給大家看。

(一) 以資源為基礎的 (Resource-Based) CUD

指的是特定 Region、特定型號 (例如 N1)、特定期間 (例如一年) 還有特定數量等等。因此你在美國開的 CUD,就不能用在台灣,或是你開 N1 的 CUD,就不能用在 N2。這裡提供 CUD 的資源包含 vCPU、記憶體、GPU、Local SSD、Sole-tenant nodes 和作業系統授權 (其實只有 SUSE)。常見的機器型號如 E2、N1、N2、N2D、M1、M2、M3、C2、C2D、C3D、G2、T2D 都有提供。

1. 購買 Resourced-Based CUD

我們直接進到購買 CUD 的畫面:

GCP VM 承諾使用折扣 (Committed Usage Discount; CUD), 以資源為基礎的 CUD, 購買 Resourced-Based CUD 畫面
進入購買 CUD 的畫面
資料來源:擷圖自 GCP 主控台

我們可以針對每一個承諾 (Commitment) 來命名,接著選擇要在哪一個 Region 使用資源,以及使用的型號和時間長度 (一年或三年)。例如我要用 N1 的 10 個 vCPU 和 20 GB 的記憶體,它會直接在右邊列出預估的每月費用,並且告訴你會省下多少錢:

GCP VM 承諾使用折扣 (Committed Usage Discount; CUD), 以資源為基礎的 CUD, N1 CUD 一年的費用與折扣
N1 CUD 一年的費用與折扣
資料來源:擷圖自 GCP 主控台

你會看到它有顯示折扣金額,如果你把 213.46 除以 338.82 是 0.63,就是 63 折的金額,你可以再切成三年,看它有什麼變化:

GCP VM 承諾使用折扣 (Committed Usage Discount; CUD), 以資源為基礎的 CUD, N1 CUD 三年的費用與折扣
N1 CUD 三年的費用與折扣
資料來源:擷圖自 GCP 主控台

你會看到它的每月費用就是 152.48 除以 338.32 等於 0.45, 就是打 45 折。我也有試著把大部分型號拉出來看,如官方文件所說,除了「記憶體最佳化」(Memory) 的主機,一年打 59 折,三年打 3 折。(你沒看錯是 3 折)其他用途的主機都是一年打 63 折,三年打 45 折。整理如下表:

GCP VM 承諾使用折扣 (Committed Usage Discount; CUD), 以資源為基礎的 CUD, 各個型號的 CUD 折扣整理
各個型號的 CUD 折扣整理
資料來源:東東老師自行整理

2. CUD 要下多少才對?

其實這沒有絕對的答案,主要是取決於你平常使用量的變動性,你可以先從帳單的選單找到 Commitments,再點擊 Compute Engine Commitment Analysis。(Commitments 現在改版叫 Committed Used Discounts,圖片是較舊的版本) 

GCP VM 承諾使用折扣 (Committed Usage Discount; CUD), 以資源為基礎的 CUD, 進入 CUD 分析畫面
進入 CUD 分析畫面
資料來源:擷圖自 GCP 官方影片

接下來你會看到一個月內某個型號機器資源的使用量,如果你還沒買過 CUD,你看到的應該都呈現灰色的長條圖。

GCP VM 承諾使用折扣 (Committed Usage Discount; CUD), 以資源為基礎的 CUD, 查看 CUD 使用情況
查看 CUD 使用情況
資料來源:擷圖自 GCP 官方影片

如果你很固定每個月都是 N1 的 30 vCPU,那你就很適合直接下單 CUD,但如果你每個月的用量忽大忽小,例如這個月 20 vCPU,下個月只有 8 個 vCPU,一種方式是抓中間值,例如買 14 個 vCPU,但是 CUD 在合約期間內,每個月都會出帳給你,不管你有沒有用滿 14 個 vCPU,當你某個月只用  8 個 vCPU,你還是要多付 6 個 vCPU 的費用。

那你可以買少一點,例如只買 8 個或 10 個 vCPU,其餘的就享受不到折扣嗎?這點不用擔心,超過 8 個的 vCPU 數量,會自動套用 SUD。

3. GPU 的 CUD

再下來再看 GPU,要注意不是所有型號都機器,都可以配任何型號的 GPU,要查詢主機型號和可用的 GPU,可以參考這份文件。而且每個 Region 和 Zone 提供的 GPU 都不同,請以這份文件為準。在操作查看 GPU 的 CUD 折扣時要注意,單純指定 GPU 數量是看不到折扣的:

GCP VM 承諾使用折扣 (Committed Usage Discount; CUD), 以資源為基礎的 CUD, 若沒選擇 Reservation,GPU 折扣無法顯示
若沒選擇 Reservation,GPU 折扣無法顯示
資料來源:擷圖自 GCP 主控台

你必須要先選擇 Create Reservations,並且要指定使用的 Zone 有提供 GPU 型號,網頁才能正確顯示折扣和費用,例如我們在官方文件查到 asia-east1-a 有提供 P100,就它提提供的來選擇:

GCP VM 承諾使用折扣 (Committed Usage Discount; CUD), 以資源為基礎的 CUD, 選擇 asia-east1-a 有提供的 P100 GPU
選擇 asia-east1-a 有提供的 P100 GPU
資料來源:擷圖自 GCP 主控台

接著在 Reservation 的部分,也要填寫正確的 Region 和 Zone,尤其主機型號和 GPU 的型號跟數量要相同,才能顯示 CUD 折扣資訊如下圖。關於 Reservation 的各項細節,未來有機會再專門討論。

GCP VM 承諾使用折扣 (Committed Usage Discount; CUD), 以資源為基礎的 CUD, 主機型號和 GPU 的型號跟數量要相同,才能顯示 CUD 折扣資訊
主機型號和 GPU 的型號跟數量要相同,才能顯示 CUD 折扣資訊
資料來源:擷圖自 GCP 主控台

經過確認 GPU 也是和一般機器類型的 CUD 相同,一年 63 折,三年 45 折。

4. CUD 何時生效

很多用戶都在詢問購買 CUD 之後,想說怎麼還沒生效,根據 Google 官方文件,CUD 生效是在 Pacifitc Time 的 00:00,也就是「隔天的 UTC-8 或 UTC-7 的 00:00」(而台灣是 UTC+8),這個時間點就是 Google 的帳務系統,切換到隔天的時間點,而這個時間在美國,又有所謂的「日光節約時間」,就是夏天會調快一小時,冬天會調回來。

而且夏令和冬令的切換時間,每年都不一樣。以今天 (2023) 為例,10月27日會從夏令時間改回冬令時間如果你是在 11 月 5 日以前購買 CUD,它的生效時間就是 UTC-7 00:00,即台灣時間下午 15:00。如果你是在 11 月 5 日後前購買 CUD,它的生效時間就是 UTC-8 00:00,即台灣時間下午 16:00。

我們來看下面這兩個例子:

GCP VM 承諾使用折扣 (Committed Usage Discount; CUD), 以資源為基礎的 CUD, 夏令時間購買 CUD
夏令時間購買 CUD
資料來源:擷圖自 Worldtimebuddy 網站

如果你剛好是在 10/31 的 14:30 下單,那你運氣很好,在美國剛好是 10/30 23:30,代表半個小時後,就進入隔天了,你下單的 CUD 在 15:00 就生效了。但如果你超過你是 10/31 的 15:00 以後才下單,那抱歉了,美國才剛過凌晨 00:00,你要等到 11/1 的 15:00,就是幾乎要等一整天,才會看到生效。

GCP VM 承諾使用折扣 (Committed Usage Discount; CUD), 以資源為基礎的 CUD, 冬令時間購買 CUD
冬令時間購買 CUD
資料來源:擷圖自 Worldtimebuddy 網站

如果你剛好是在 11/3 的 15:30 下單,那因為是冬令時間,在美國剛好是 11/2 23:30,代表半個小時後,就進入隔天了,你下單的 CUD 在 16:00 就生效了。但如果你超過你是 11/3 的 16:00 以後才下單,一樣美國才剛過凌晨 00:00,你要等到 11/4 的 16:00,就是幾乎要等一整天,才會看到生效。

這裡再補充一 下,Local SSD 也是同樣的道理,要 Create Reservation 才能下單,它的折扣一樣是一年 63 折,三年 45 折喔!

GCP VM 承諾使用折扣 (Committed Usage Discount; CUD), 以資源為基礎的 CUD, Local SSD 的 CUD 費用與折扣
Local SSD 的 CUD 費用與折扣
資料來源:擷圖自 GCP 官方文件

5. 作業系統授權也有 CUD

以資源為基礎的 CUD,除了硬體,也有軟體的 CUD,一樣是從 CUD 的選單進入:

GCP VM 承諾使用折扣 (Committed Usage Discount; CUD), 以資源為基礎的 CUD, 進入作業系統授權的 CUD 設定位置
進入作業系統授權的 CUD 設定位置
資料來源:擷圖自 GCP 主控台

但是進來之後你會發現,只有 SUSE Linux 系列的作業系統才有提供 CUD,我們最常用的 Windows 是沒有 CUD 的喔!

GCP VM 承諾使用折扣 (Committed Usage Discount; CUD), 以資源為基礎的 CUD, 作業系統授權的 CUD 只有 SUSE
作業系統授權的 CUD 只有 SUSE
資料來源:擷圖自 GCP 主控台

6. CUD 套用範圍與共享

當你下完 CUD 訂單後,預設它只會給同一個專案內的資源使用,但你也可以分享給同一個帳單帳戶底下,其他的專案一起使用。

GCP VM 承諾使用折扣 (Committed Usage Discount; CUD), 以資源為基礎的 CUD, 設定 CUD 分享範圍
設定 CUD 分享範圍
資料來源:擷圖自 GCP 官方影片

接下來跳出一個小視窗,你可以輸入 Enable,讓同一個帳單帳戶的其他專案,可以共用 CUD。但要注意,如果原本購買 CUD 的專案,移到另一個帳單帳戶的話,那 CUD 還是會跟著原本的專案一起離開喔,其他專案就用不到這個 CUD 了。

GCP VM 承諾使用折扣 (Committed Usage Discount; CUD), 以資源為基礎的 CUD, 啟用跨專案共享 CUD
啟用跨專案共享 CUD
資料來源:擷圖自 GCP 官方影片

7. CUD 重要提醒

既然它叫「以資源為基礎的 CUD」,代表它綁定的就是特定 Region 或型號,這一點要非常注意,因為非常容易操作錯誤,很多用戶都是錯在 Region 或是型號,並且下錯就完全不能修改,唯一的辦法是發現下錯的當下,馬上去聯絡 GCP 的代理商,請他們開立技術支援單 (Support Ticket),聯絡原廠的人員來處理,非常麻煩。後來 Google 推出另一種運算彈性的 CUD,比上面這種單純又方便很多喔!

(二) 運算彈性的 (Computed Flexible) CUD

它的名字取得不好,其實就是「以費用為基礎的」Spent Based CUD,它不管你用在哪個 Region、哪個 Zone、什麼型號、vCPU、記憶體還是 GPU,你只要設定一個每小時的費用,購買之後就套用到所有 Compute Engine 的資源上,所以使用 Flexible CUD,就不會那麼容易下錯單囉!

要注意的是,你不是在 Compute Engine 頁面購買,它是以帳單帳戶為基礎,所以在這個帳單帳戶底下的專案都可以共享這個 CUD。

GCP VM 承諾使用折扣 (Committed Usage Discount; CUD), 運算彈性的 (Computed Flexible) CUD, 進入購買 Flexible CUD
進入購買 Flexible CUD
資料來源:擷圖自 GCP 主控台

進來之後,你會看到很多產品都有各種 CUD,那我們就選 Compute Flexible Commited Use Discounts:

GCP VM 承諾使用折扣 (Committed Usage Discount; CUD), 運算彈性的 (Computed Flexible) CUD, 選擇購買 Flexible CUD 的產品
選擇購買 Flexible CUD 的產品
資料來源:擷圖自 GCP 主控台

然後我們就根據過去經驗,輸入每小時大概花費多少錢,以及設定一年或三年的承諾。

GCP VM 承諾使用折扣 (Committed Usage Discount; CUD), 運算彈性的 (Computed Flexible) CUD, 輸入每小時費用和承諾長度
輸入每小時費用和承諾長度
資料來源:擷圖自 GCP 主控台

你會看到它在下方會自動秀出折扣後的價格,原本每小時 10 美金,現在變成 7.2 美金,代表打 72 折了。然後原本整個月是 7200 美金,節省了 2016 美金,只要  5184 美金。那如果選三年的承諾,就直接打 46 折。這邊比較奇怪的是,為什麼它不用一個月 730 小時來算,而是用 1000 小時?

所以各位試算的時候,還是注意一下,用 730 小時來算比較精準。另外關於生效時間,你也不用像前段提到的 UTC-7 或 UTC-8,你只要下單後的一個小時內就會生效喔!

文章轉載自《東東GCP 教學》網站

由專業團隊提供的全面技術學習與支援

歡迎您與我們聯絡
我們會協助您取得最佳解決方案!

歡迎您與我們聯絡
我們會協助您取得最佳解決方案!

思想科技 Master Concept
微信公众号:Master_Concept