iT邦幫忙

2023 iThome 鐵人賽

DAY 6
1
Software Development

Google Cloud Platform 零基礎入門系列 第 6

GCP 零基礎入門 (6) - 運算服務 - Compute Engine

  • 分享至 

  • xImage
  •  

哈囉大家好,我是古古

上一篇文章中有先介紹了 IaaS、PaaS、FaaS 以及 SaaS 的概念,並且也比較了這些服務的優缺點,讓大家先對這些 XaaS 的服務有個認識

接著這篇文章會回到 Google Cloud 的運算服務主題上,開始介紹 Google Cloud 中第一個的運算服務:Compute Engine

什麼是 Compute Engine?


Compute Engine 是 Google Cloud 中的 IaaS 運算服務,因此 Compute Engine 的用途,就是去提供一個 VM,讓我們可以自由的在此 VM(Virtual Machine, 虛擬機)上開發程式

https://ithelp.ithome.com.tw/upload/images/20230920/20151036BxRA8GXT9Y.png

不過,也因為 Compute Engine 就只是很單純的提供 VM 給我們使用,因此舉凡上到 Python 安裝環境、下到設定網路防火牆,這些全部的事情都需要工程師手動來操作

因此如果是使用 Compute Engine 來開發程式的話,除了本身要會寫程式之外,也需要具備環境設定的能力才可以(通常第一次架設會花比較久的時間去摸熟相關設定,後面熟了就是依樣畫葫蘆了)

Compute Engine 的計費方式


在 Compute Engine 中,只要 VM 開著就是需要收費的,不管你裡面有沒有運行任何程式,反正只要 VM 開著就要收錢,不過這個計費方式是精確到「秒」等級的程度,所以不用預繳一整天的費用,等於是「用多少付多少」就對了

除了運行 VM 本身要付費之外,以下幾個因素也會影響到 VM 的每小時單價:

  • VM 所使用的 cpu 和 memory 大小
  • VM 所在的地區

1. 影響 VM 單價的因素之一:使用的 cpu 和 memory 大小

在 Compute Engine 裡面,首先會先根據不同的使用情境(一般用途、運算最佳化...等等),將 VM 分類為 C3、E2....等等的系列

像是在一般用途中,就有 C3、E2、N2....等多種機型可以選擇

https://ithelp.ithome.com.tw/upload/images/20230920/20151036HWLkzivBLz.png

當然選擇不同系列的 VM,他的單價就會不一樣,因此這裡就可以先初步根據你的使用情境,去挑選試適合的 VM 系列

當挑選好 VM 系列之後,那麼接下來可以為這台 VM 選擇想要的 cpu 和 memory(這裡以 E2 系列為例),在 E2 裡面,Google Cloud 會預先定義好幾種組合給我們挑選,譬如說在最便宜的共用核心,就有 e2-micro、e2-small 以及 e2-medium 可以選

https://ithelp.ithome.com.tw/upload/images/20230920/20151036HGPhKiVTnp.png

如果想要挑好一點的 VM,E2 系列也是有 es-standard-2、es-standard-4、es-standard-8....等等 VM 可以選擇

https://ithelp.ithome.com.tw/upload/images/20230920/20151036xBJOn1OzH9.png

如果不想要套用 Google Cloud 預先定義好的這些設置,想要完全自己自定義 cpu 和 memory 大小也是完全沒問題的!雲端服務的好處就是非常彈性,可以根據自己當前的需求選擇最適合的機器

不過當然啦,使用了越多的 cpu 和 memory,這個 VM 的每小時單價就會越高,因此要如何在節省成本的同時、又可以確保開發環境是足以承受使用者流量的,這個就是需要經驗和後續不斷監控去調整的了~

補充:如果是單純想試試看如何創建 VM,建議可以選最便宜的 e2-micro 即可,我還滿常用 e2-micro 來開發小型的 side project 的,作為 demo 的 VM 真的滿夠用的了

2. 影響 VM 單價的因素之一:VM 所在的地區

除了最直觀的 cpu 和 memory 會影響 VM 的每小時單價之外,其實 VM 所在的地區,也是會去影響到這台 VM 的每小時單價的

Day 2 - Google Cloud 的基本知識 的那篇文章中有介紹到,在 Google Cloud 中是有「Region」和「Zone」的概念的

快速複習 Region 和 Zone 的概念:

  • Region 的概念:每一個 Region 就是一個 Google 蓋的資料中心
    • 譬如說「台灣的彰化資料中心」就是 asia-east1 region,「日本的東京資料中心」是 asia-northeast1 region
  • Zone 的概念:在每一個 Region 底下,都會有數個 Zone,可以想像成 Zone 就是機房,機房 A、機房 B、機房 C...這樣
    • 所以以台灣的彰化資料中心 asia-east1 region 為例的話,底下就是有 3 個 zone 可以選,分別是 asia-east1-aasia-east1-basia-east1-c(差別在每個後綴不一樣,分別是 -a、-b、-c)

而 Compute Engine 這個運算服務,是會要求我們指定要把 VM 創建到哪一個「Zone」底下的,所以我們今天在創 VM 的時候,除了選定「我要創在 Google 的哪座資料中心」之外,還需要選定「要創建在底下的哪個機房」

所以在 Compute Engine 中的 VM,其實是跟地理位置綁滿深的,因此今天在台灣彰化創建的 VM 單價可能是每小時 0.07 美元,而在英國倫敦所創建的 VM 單價是每小時 0.086 美元

所以大家在使用 Compute Engine 創建 VM 的時候,除了根據 cpu 和 memory 來付費之外,也要額外考慮在不同地區創建 VM 的價格也是不同的,這點是比較容易被忽略的部分

如何估算 Compute Engine 的花費?

綜合以上的因素,如果大家想要估算 VM 的總花費的話,可以使用 Google Cloud 的官方估算器 來估算整體總花費,Google Cloud 就會根據大家填寫的資料,幫大家計算大概每個月要花多少錢了!

Compute Engine 的 3 種折扣方式


如前面所述,在 Compute Engine 中,只要 VM 開著就是需要收費的,但是針對 Compute Engine 這個運算服務,Google Cloud 是有提供 3 種不同的折扣方式來幫大家省錢的,最高可以達到 80% off(你沒看錯就是打 2 折),所以我們就來介紹這 3 種省錢的妙招吧!

補充:這裡的折扣數字僅供參考,最終具體折扣多少還是以 Google Cloud 官方為準

Compute Engine 提供了 3 種折扣方式,分別是 Sustained-use、Committed-use、Premptible VMs:

https://ithelp.ithome.com.tw/upload/images/20230920/20151036xtUJndaxu7.png

1. Sustained-use(續用折扣)

Sustained-use 又稱為續用折扣,即是「每個月開越久,VM 的 "單價" 會越來越便宜」的意思

Sustained-use 的運作邏輯是這樣的:

Google Cloud 會把一個月切分成四週,假設第一週這台 VM 的單價是 1 元/hr,如果你的 VM 在第一週有開到 Google Cloud 指定的時數,那第二週的單價就是 0.8 元/hr,如果第二週又達標時數,那第三週的單價就是 0.6 元/hr...等等,以此類推

因此可以得到一個結論,即是「當月你用的越多,折數越高,單價會越便宜」,也就是 Google Cloud 鼓勵大家多多使用他們的機器就是了XD

2. Committed-use(承諾使用折扣)

第二種優惠方式是 Committed-use,他又稱承諾使用折扣,即是「先和 Google Cloud 簽約談好我要某批 VM 一年或三年,然後這批 VM 就會有折扣」這樣

所以簡單的說的話,Committed-use 其實就是簽個長期合約啦,你先把一整批的 VM 的一年份都買起來了,Google Cloud 就會先算你便宜一點這樣

不過使用 Committed-use 的缺點就是這批 VM 不能退錢,不能像是一般創建的 VM 那樣關掉就不用付錢,所以在簽之前就要先想好是否真的需要這批 VM 一年

也因為這個 Committed-use 是比較長期的合約,所以比較適合長期穩定發展的公司來簽,他打折的力道也滿猛的,簽一年是打 63 折,簽三年是打 43 折,所以一次簽好簽滿是真的可以省滿多錢的(簽下去!簽下去!)

3. Preemptible VMs(先占式虛擬機)

最後一個折扣是 Preemptible VMs,中文翻譯是先占式虛擬機,這名詞聽起來是有點抽象,不過簡單的說的話,其實 Preemptible VMs 就只是「去蹭空閒的 VM」的一種折扣方式而已XDD

Preemptible VMs 的運作邏輯是這樣的:

假設你有一些「不重要且不緊急」的 batch job 要跑,這種情境就可以使用這種 Preemptible VMs,Google Cloud 會在 VM 沒人租很空閒的時候,去跑一下你的這個 batch job(反正 Google 實體機房都買了,不跑白不跑),但是萬一運行你的 batch job 到一半時有人突然來租 VM,Google Cloud 就會馬上把你運行到一半的 batch job 直接停掉,把 VM 資源釋放給那個付錢的人

因此建議是當你有不重要且不緊急的 batch job 要跑時,再考慮來使用 Preemptible VMs,因為他是會暴力 terminate 掉你的 batch job 的,也因為 Google Cloud 會暴力關掉程式,所以我們也必須要確保該 job 是可以中途被強制停止,然後可以隨時重新運行的

雖然 Preemptible VMs 的使用限制有點多,但是這個真的超超超超級便宜,各位客官,VM 只要 2 折!!!真的是打到骨折的程度的便宜XD,所以如果大家有這種情境的話就很推薦使用

總結


這篇文章先介紹了 Compute Engine 提供的是什麼服務,然後介紹了他的計費方式影響因素,最後則是介紹了 Compute Engine 所提供的 3 種折扣方式,不得不說 Compute Engine 作為一個 IaaS 的服務來說,真的提供了很多花招讓大家花式省錢XD

介紹完經典的 IaaS 服務 Compute Engine 之後,下一篇文章就要來介紹另一個經典的 PaaS 服務,也就是 App Engine,IaaS 和 PaaS 可以說是概念完全相反的兩個極端,那我們就下一篇文章見啦!

相關連結



上一篇
GCP 零基礎入門 (5) - IaaS、PaaS、FaaS、SaaS 的差別
下一篇
GCP 零基礎入門 (7) - 運算服務 - App Engine
系列文
Google Cloud Platform 零基礎入門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
ckp6250
iT邦好手 1 級 ‧ 2024-06-09 15:16:35

請教一下,我對於【承諾使用折扣】一直搞不太明白,

我在GCP上有二台VM,也使用了很多年了,我可以指定這二台VM雄用承諾使用折扣嗎?

我有試著操作承諾使用折扣,但我發現要創建它,要重新選機器、cpu, ram 等等,到這裡,我就搞不懂了,

承諾使用折扣是只適用於建立vm之前嗎?

像我這樣已經用好幾年的,可以嗎?

古古 iT邦新手 3 級 ‧ 2024-06-13 23:54:28 檢舉

哇抱歉這我還真不確定😂,不過我還滿確定 Google 有提供「承諾使用折扣」的(其實像是 Amazon 也有提供類似的折扣),所以你遇到的這個問題,可能要麻煩你直接找 Google 官方客服詢問了🥹

我要留言

立即登入留言