資工問題雜筆

[資工雜筆] Google Compute Engine 介紹

前言

雲端運算是這個時代非常重要的技術,也是推動科技進步和產品開發的一大幫手。為什麼這麼說呢?以時下最火紅的深度學習來說,訓練一個 model 可能會需要一張好的 GPU card、好的CPU,或者大量的記憶體。但如果不需要時常使用到這麼好的配備,一次購買大規格的硬體又會造成浪費,那麼就可以使用雲端運算資源來快速的做一些簡單的測試。

一般來說,雲端運算共分3 個層次,分別是 Infrastructure as a service (IaaS)、Platform as a service (PaaS) 和 Software as a service (SaaS),詳見 連結。今天要介紹的 GCE (Google Compute Engine),在上述三者之中,屬於 IaaS 的範疇,也是三者之中,彈性最大的雲端服務。基本上我們可以把 IaaS 想像成是一個資料運算中心,提供客戶所有電腦該有的配備,例如硬碟、GPU、CPU、記憶體⋯⋯。

GCE 規格

GCE 提供了許多種主機的規格,如下:

GCE-n1.png

乍看之下可能會有一點眼花瞭亂,不過其實還好。不同的規格對應不同的 CPU 顆數、記憶體大小和硬碟大小。至於單顆 CPU 的效能,Google 也有做出解釋。

CPU-performance.png

以上介紹的是 standard type,除此之外,GCE 也有提供其它種 type 的機器。例如跑 reinforcement learning 演算法時,可能需要較多的 CPU 的話,那也可以選擇 high CPU type 的機器。下圖為 high CPU 的規格:high CPU.png

如果程式會佔用大量的記憶體,也可以選擇 high memory type 的機器:

high mem.png

當然也有可能上述的機器組合都不太適合你的需求,那麼也可以選擇 客製化自己的機器。但是客製化機器除了資費稍微昂貴之外,還必須注意以下小小的限制:

  • 最大的 vCPU 數會和選擇的區域有關。
  • vCPU 的個數必須是 1 或偶數
  • 每個 vCPU 對應到的記憶體大小也必須介於 0.9 GB 到 6.5GB 之間
  • 記憶體的總量必須是 256MB 的倍數。

最後,關於磁碟或 SSD 硬碟的部分,因為用量需求可能會隨著服務擴充而增加。如果有這個需求的話,也可以再多付費並直接增加到現存的 project 裡頭!

Price  & Discount

因為雲端運算是非常耗能和運算資源的,對於購買者而言,每一分鐘、每一小時的價格,一定都是錙珠必較的。當然,為了推廣 GCE ,Google 也有給出優惠的計價方式和折扣。在 Google Cloud Engine 的部分,計價的方式是以秒計費。

至於折扣的部分,如果成功把機器操好操滿,那麼 Google 也會做功德,給予使用者 SUD (Sustained Use Discount)優惠。示意圖如下,假設你共開了 6 個 VM 來跑程式,使用的天數分別如下:sustain_discount1.png

那麼佛心公司 Google 會自動把你的運算視為使用 4 台機器,如下:

sustain_discount2.png

接著,因為你使用的量分別到達一定的比例,所以 Google 給予大小不等的折扣。

sustain_discount3.png

到這裡你可能會疑惑為什麼 VM 1 和 2 是打 7折,而 VM3 是打 76 折?看完下方的價格表後,讓我來為各位算一次。

螢幕快照 2017-12-15 下午12.01.35.png

上方這個表格的意思是,每個月使用的 0% – 25% 不會有折扣,25% – 50% 的資費會打 8 折,以此類推。而 VM 1 和 2 分別都做好做滿,達到 100 %,因此計算如下:螢幕快照 2017-12-15 下午12.52.16.png

而 VM 3 的最後一部分打折計算較為複雜,如下:

螢幕快照 2017-12-15 下午12.52.20.png

從這裡看來,可以知道,當你宣告使用不同數目的 VM 和 vCPU 時,並不是拿到實質的硬體,而是等價的算力,如此 Google 才能將這些算力做平行的相加,也鼓勵你把機器操好操滿,真的是佛心公司!

此外,如果確定將來幾年使用的量都會非常的穩定,那也可以簽長約,Google 會給大小不等的CUD (Committed Use Discount) 折扣。例如承諾使用 1 年或者 3 年,則可以分別獲得 6 折和 43 折的折扣,詳情請見 連結

螢幕快照 2017-12-13 下午6.38.16.png

最後,因為 Google Cloud Engine 的計價稍微複雜,因此 Google 也有提供資費計算機讓大家計算資費,或者點選這個連結,看看各種 machine type 的價格是怎麼制定的。

螢幕快照 2017-12-13 下午6.40.02.png

實作一下吧

在 Google Cloud Engine 上,有 Linux 和 windows 兩種 OS 可以做選擇。在開始之前,請先確定 project 已經開好,且付費已經開啟,否則參考我之前寫的教學。接著我們要 create 一個 vm,請點連結,接著點選建立,或者 create 的按鈕。

接著請填寫 VM 名稱,和區域。區域指的是你的主機要開在哪裡,例如主要服務的客戶是在北美,那理所當然會開在北美,網路的 latency 也會相對較低。此外,不同地點,能提供的主機型態也會不同。那台灣的話,就選擇 asia-east1-abc 就可以了,機房位置位在台灣彰化。關於機房的配置,有興趣詳見連結GCE-VM1.png

選完主機位置後,也可以在開機磁碟的位置挑選作業系統,並設定防火牆。在防火牆的設定,必須把 HTTP 開起來,因為我們等一下要透過 HTTP access 這一台主機。點選完之後請按建立。

GCE-VM2.png

建立完成後,回來到這個頁面,請點選紅色框起來的部分。點下去之後,會開啟一個新的視窗,然後 ssh 到主機去。

ssh.png

連上後,請輸入

sudo apt-get install htop

安裝完成後,輸入 htop ,就可以看到以下畫面。圖中右上角即是這台主機的 memory 大小和 CPU 顆數。

htop.png

結語

以上就是這次的 Google Cloud Engine 教學囉!透過建立一個 virtual machine,可以省去很多麻煩,包含安裝作業系統、購買硬體。此外,也可以自由調控想要的 CPU 顆數和記憶體大小,做為快速測試或長期使用,都是非常方便的選擇!

更多GCP加值服務歡迎隨時聯繫GCP專門家,也可以至GCP技術部落格查看更多GCP 最新消息與技術內容!

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s