文章段落
Google Compute Engine 的承諾使用折扣 Committed Use Discounts 可以針對包含 Google Kubernetes Engine, Dataproc, and Compute Engine 等服務自動進行折扣後的費用套用,若是 Cloud SQL 這樣的 PaaS 類型服務,在過往是沒有辦法享受到承諾使用折扣的優惠。Google Cloud Platform 針對 Cloud SQL,提供了 Cloud SQL 版的承諾使用折扣,承諾一年的費用可以節省約25%,承諾三年則是可以節省約52%。
Cloud SQL 的承諾使用折扣有以下彈性:
- 無需預先支付所有費用,以月繳的方式進行所承諾之扣款。
- 不限制特定的 Database Engine ,購買後可以共享給 Cloud SQL 上不同的類型像是 MySQL, PostgreSQL, and SQL Server instances 等皆可。
- 可完整對應到不同的機器規格 (Machine sizes)
Compute Engine 承諾與 Cloud SQL 承諾比較表:
Compute Engine CUD | Cloud SQL CUD |
Compute Engine 承諾 基於資源 (Recourse-based);它們是根據底層vCPU、內存、GPU 和本地SSD 資源進行購買和計算的。 | Cloud SQL 承諾 基於支出 (Spend-base);它們是根據等額按需支出的每小時美元金額進行購買和計算的。 |
Compute Engine 承諾是基於單個項目購買的,而不是基於Cloud Billing 帳號購買的。 但是您可以啟用 折扣共享,以便 Compute Engine 承諾使用折扣在通過同一Cloud Billing 帳號支付費用的所有項目中共享。 | Cloud SQL 承諾是通過 Cloud Billing 帳號購買的;它們適用於通過該 Cloud Billing 帳號支付費用的任何項目中符合條件的使用量。 |
GCP-文件說明 | GCP-文件說明 |
如何購買?
購買的方式跟以往 Compute Engine 有點不同,需透過 GCP Billing 的頁面,找到 Purchase a committed use discount 的按鈕進行點選。
點選後,會出現以下選單:
Product:
目前可選擇的是 Cloud SQL 或 VMWare Engine。此篇文章主題是 Cloud SQL 。
Select a billing account:
選定欲購買承諾使用折扣的 Billing account,預設就選目前專案正在使用的 Billing account 即可。
Commitment name:
此次購買承諾使用折扣的名稱,自定義一個可以簡單辨認的名稱即可。
What period?
O 1 year O 3 years: 看是要購買一年或三年。
*這邊需注意的是一旦購買下去,即便未來一年內沒有使用 Cloud SQL ,由於已經事先承諾,故仍會每月扣款,請特別留意。
Region:
Cloud SQL 承諾使用折扣是以 Region做區隔,不同的 Region 需購買不同的承諾使用折扣。一般來說台灣的使用者若是將服務開在台灣的話,選擇 asia-east1。
Hourly on-demand commitment:
這邊要注意的是由於 Cloud SQL Committed Use Discount 的收費方式是以Spend-Based 計算,這一點與過往的 Resource-based 的 Compute Engine Committed Use Discount 蠻不一樣的。
費用試算說明
假設我們在 Taiwan (asia-east1) 開了一台 Cloud SQL MySQL db-n1-standard-2 (2 vCPUs, 7.5GB),根據 GCP 公告之官方牌價每小時的原始費率為 US $0.1351 /小時,如欲購買一年的承諾使用折扣,這邊可以輸入的數字變是 US $0.13/小時。
即代表:使用者向 GCP 購買以原始費用 US$0.13/小時的費率去承諾未來一整年的用量,如此一來折扣後的費率便會是:US$0.13 * (100%-25%) = US$0.0975/小時,30天的承諾使用總費用便會是:US$0.0975 * 720 (小時) = US$70.20。
也就是說使用者是以 Spend-based (基於實際花費) 的模式去購買承諾使用折扣。
因為購買的時候只能輸入至小數點後兩位,所以在這個例子中我們只能購買US$0.13/小時,剩下的 US$0.1351 – $0.13 = US$0.0051 的部分,則是按照原始的費率計價。
若是超買是否會比較划算?
答案是:不一定。
我們可以快速試算一下:
$0.13 * (100%-25%) * 720 + $0.0051 * 720 = $73.872
若是我們算一下以 $0.14 去購買,則總費用則為:
$0.14 * (100%-25%) * 720 = $75.6 (較貴)
假設某種 Machine type 費用為每小時金額為 $0.1388。
此時若是買 $0.13
0.13 * (100%-25%) * 720 + 0.0088 * 720 = $76.536
0.14 * (100%-25%) * 720 = $75.6 (較便宜)
所以還是會建議買最接近原始費率的數字會有較多折扣。
總結
使用者必須要先估算出自己在 Cloud SQL 所有 Database 的每小時費用加總,再去購買需要的 Cloud SQL 承諾使用折扣。這也是為什麼它可以不限定 Database Engine (MySQL, PostgreSQL, and SQL Server instances),因為 Cloud SQL 承諾使用折扣是採取 Spend-based 的金額,所以只需要算出所有 Database 的每小時花費即可進行購買承諾使用折扣。
這裡提供一下 Cloud SQL 的官方牌價連結位置:
https://cloud.google.com/sql/pricing
最後需提醒的是:
Cloud SQL 的折扣範圍僅限定常規的 Machine types (vCPU, RAM) (例如 db-n1-standard-2 ) 所產生的費用,共享的 shared CPU machine types (例如 db-f1-micro and db-g1-small) 是不包含在內的,請留意。
另外,Persistent disk (硬碟),snapshots (快照), IP addresses (IP地址), network egress (網路流出), or licensing (授權)等皆不涵蓋在此承諾使用折扣範圍內。