資工問題雜筆

[資工雜筆] 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 最新消息與技術內容!

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

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

Twitter picture

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

Facebook照片

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

Google+ photo

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

連結到 %s