Google Compute Engine 規格價格和架設步驟
為什麼要使用雲端?
雲端運算是這個時代非常重要的技術,也是推動科技進步和產品開發的一大幫手。以時下最火紅的深度學習來說,訓練一個 model 可能會需要一張好的 GPU card、好的CPU,或者大量的記憶體。但如果不需要時常使用到這麼好的配備,一次購買大規格的硬體又會造成浪費,那麼就可以使用雲端 VM 運算資源來快速做一些簡單的測試。
一般來說,雲端運算共分3 個層次,分別是 Infrastructure as a service (IaaS)、Platform as a service (PaaS) 和 Software as a service (SaaS),詳見 連結。今天要介紹的 GCE (Google Compute Engine),在上述三者之中,屬於 IaaS 的範疇,也是三者之中,彈性最大的雲端服務。基本上我們可以把 IaaS 想像成是一個資料運算中心,提供客戶所有電腦該有的配備,例如硬碟、GPU、CPU、記憶體⋯⋯。
Google Compute Engine (VM) 規格
1. Standard machine types (VM)
GCE 提供了許多種主機的規格,n1-standard type 系列規格如下:
不同的規格對應不同的 CPU 顆數、記憶體大小和硬碟大小。至於單顆 CPU 的效能,Google 也有做出下方的解釋:
2. High-CPU machine types (VM)
除了 standard type 之外,GCE 也有提供其它種 type 的機器。例如跑 reinforcement learning 演算法時,可能需要較多的 CPU 的話,那也可以選擇 high CPU type 的機器。下圖為 high CPU 的規格:
3. High-memory machine types (VM)
如果程式會佔用大量的記憶體,也可以選擇 high memory type 的機器:
4. 客製化規格 (VM)
當然也有可能上述的機器組合都不太適合你的需求,那麼也可以選擇 客製化自己的機器。但是客製化機器除了資費稍微昂貴之外,還必須注意以下小小的限制:
• 最大的 vCPU 數會和選擇的區域有關。
• vCPU 的個數必須是 1 或偶數
• 每個 vCPU 對應到的記憶體大小也必須介於 0.9 GB 到 6.5GB 之間
• 記憶體的總量必須是 256MB 的倍數。
最後,關於磁碟或 SSD 硬碟的部分,因為用量需求可能會隨著服務擴充而增加。如果有這個需求的話,也可以再多付費並直接增加到現存的 project 裡頭!
立即聯繫 iKala Cloud,瞭解更多雲端加值服務!
Price & Discount
因為雲端運算是非常耗能和運算資源的,對於購買者而言,每一分鐘、每一小時的價格,一定都是錙珠必較的。當然,為了推廣 GCE ,Google 也有給出優惠的計價方式和折扣。在 Google Cloud Engine 的部分,計價的方式是以秒計費。
至於折扣的部分,如果成功把機器操好操滿,那麼 Google 也會做功德,給予使用者 SUD (Sustained Use Discount)優惠。示意圖如下,假設你共開了 6 個 VM 來跑程式,使用的天數分別如下:
那麼 Google 會自動把你的運算視為使用 4 台機器,如下:
接著,因為你使用的量分別到達一定的比例,所以 Google 給予大小不等的折扣。
到這裡你可能會疑惑為什麼 VM 1 和 2 是打 7折,而 VM3 是打 76 折?看完下方的價格表後,讓我來為各位算一次。
上方這個表格的意思是,每個月使用的 0% – 25% 不會有折扣,25% – 50% 的資費會打 8 折,以此類推。而 VM 1 和 2 分別都做好做滿,達到 100 %,因此計算如下:
而 VM 3 的最後一部分打折計算較為複雜,如下:
從這裡看來,可以知道,當你宣告使用不同數目的 VM 和 vCPU 時,並不是拿到實質的硬體,而是等價的算力,如此 Google 才能將這些算力做平行的相加,也鼓勵你把機器操好操滿。
此外,如果確定將來幾年使用的量都會非常的穩定,那也可以簽長約,Google 會給大小不等的CUD (Committed Use Discount) 折扣。例如承諾使用 1 年或者 3 年,則可以分別獲得 6 折和 43 折的折扣,詳情請見連結。
最後,因為 Google Cloud Engine 的計價稍微複雜,因此 Google 也有提供資費計算機讓大家計算資費,或者點選這個連結,看看各種 machine type 的價格是怎麼制定的。
實作一下吧
在 Google Cloud Engine 上,有 Linux 和 windows 兩種 OS 可以做選擇。在開始之前,請先確定 project 已經開好,且付費已經開啟,否則參考我之前寫的教學。接著我們要 create 一個 vm,請點連結,接著點選建立,或者 create 的按鈕。
接著請填寫 VM 名稱,和區域。區域指的是你的主機要開在哪裡,例如主要服務的客戶是在北美,那理所當然會開在北美,網路的 latency 也會相對較低。此外,不同地點,能提供的主機型態也會不同。那台灣的話,就選擇 asia-east1-abc 就可以了,機房位置位在台灣彰化。關於機房的配置,有興趣詳見連結。
選完主機位置後,也可以在開機磁碟的位置挑選作業系統,並設定防火牆。在防火牆的設定,必須把 HTTP 開起來,因為我們等一下要透過 HTTP access 這一台主機。點選完之後請按建立。
建立完成後,回來到這個頁面,請點選紅色框起來的部分。點下去之後,會開啟一個新的視窗,然後 ssh 到主機去。
連上後,請輸入
sudo apt-get install htop
安裝完成後,輸入 htop ,就可以看到以下畫面。圖中右上角即是這台主機的 memory 大小和 CPU 顆數。
結語
此篇文章不僅詳細介紹了 Google Compute Engine 的計價方式和規格 ,還帶您實作如何在 GCP 上架設 VM,是初次接觸雲端的朋友很好的入門磚。
透過建立一個 virtual machine,可以省去很多麻煩,包含安裝作業系統、購買硬體。此外,也可以自由調控想要的 CPU 顆數和記憶體大小,做為快速測試或長期使用,都是非常方便的選擇。
(本文來自合作部落客 沒一村:沒一村生活點滴,iKala Cloud 授權轉載。)