Google VM 平台 – Compute Engine 是什麼?

Google 的 Compute Engine,簡稱 GCE,就是 Google 的虛擬機器平台。

類似 AWS 的 EC2,或是微軟的 Azure Virtual Machine。

一、Google VM 平台 – Compute Engine 的功能

1. 提供各種作業系統映像檔 (Image)

你可以使用免費的 Linux Server,

如 Debian、Ubuntu、CentOS、Fedora ,

也可以使用付費授權的 Windows、Redhat、SUSE 等等。

目前 Console 上看到可用的作業系統如下:

Google 提供這些作業系統的映像檔 (Image),

你可以想像它是給你安裝作業系統的光碟片。

另外,你看到它上面有 Windows Server 和 SQL Server on Windows Server。

代表除了你可以建立 Windows Server 的 VM,

你也可以開好一台「已經裝好 SQL Server」的 VM。

如果你裝過 SQL Server 就會知道,

它的安裝非常耗時,可能要好幾個小時才能裝好,

但 Google 已經有準備好「內含 SQL Server」的 Windows 映像檔,

讓你省去好幾個小時的安裝時間,不是很方便嗎?

更多作業系統版本可以參考這份文件

2. 提供各種效能的硬碟類型

(1) 永久硬碟 (Persistent Disk)

早期 GCP 只提供一般的硬碟 (Standard Disk) 和固態硬碟 (SSD),

因為 SSD 價格較為昂貴,大家為了省錢都使用一般的硬碟。

後來就推出 Balanced SSD,它不像 SSD 那麼貴,

但效能又比一般的硬碟好很多。

所以 Balanced SSD 漸漸成為大家比較常用的選項。

後來 Google 又推出 Extreme Disk,提供給有高速 IOPS 存取硬碟需求的用戶。 

今年再推出最新的 Hyperdisk,

提供比 Extreme 更高的 IOPS (讀寫次數) 和 Throughput (吞吐量)。

還可以單獨調整 IOPS 和 Throughput,更多資訊可以參考這份文件

(2) 臨時儲存資料的本機 SSD (Local SSD)

如果你有臨時的、低價值的資料要暫存,

同時又要有很高的 IOPS,就可以使用 Local SSD。

與永久磁碟和 Hyperdisk 相比,

Local SSD 提供更高的每秒輸入/輸出操作(IOPS)和非常低的延遲。

這是因為 Local SSD 是「實體連接」到你的虛擬機器上喔,

就像你在操作的個人電腦一樣。

但要注意,只要你重開機,資料會全部消失喔!

它的 IOPS 很快是為了輔助你暫存資料,而不是永久儲存,

如果你要永久儲存,還是要選上面的永久硬碟喔!

更多資訊可以參考這份文件

3. 備份功能 – 快照 (Snapshot) 

你可以隨時使用快照功能來備份你的主機,也可以設定排程來自動備份。

它是使用增量備份的方式,也就是說第一次做快照,可能會有較大的資料量,

但是從第二次開始,都只會針對變動的部分做備份,如下圖:

而且它可以做排程自動備份,你可以選擇離峰的時間,

讓它自動幫你的主機做備份,萬一主機運作中出現問題,導致機器壞掉的話,

可以使用快照來還原主機喔!更多資訊可以參考這份文件

4. 自訂主機內容的映像檔 (Image) 和執行個體範本 (Instance Template)

除了上述 GCP 供各種作業系統映像檔 (Image),你也可以做自己的映像檔,

這樣有什麼好處呢?

你可以想像,通常你都會有習慣使用的作業系統,例如 Ubuntu 或 CentOS,

你也會安裝你常使用的軟體像是 Apache、Nginx 或 MySQL 等等。

你就可以把常用的軟體裝好之後,做成你的映像檔,就類似燒光碟的概念, 

以後你要開新的機器,你可以直接用自訂的 Image 開成新的機器,

這樣你就不用每次都要重新安裝和設定環境了,主要就是減少你的重覆工作。

那範本又是什麼呢?

它的全名叫「執行個體範本」,就是幫你記住所謂的中介資料 (Metadata),

更白話一點,就是主機除了 Image 之外,它在 GCP 的設定資訊,

像主機要開在哪一個 Region 和 Zone、規格大小、用多大的 Disk、

用哪一個 Service Account (主機的身份)、防火牆標籤、

用哪一個 VPC 網路 (GCP 內網)、要不要外部 IP、

開機要不要自動執行什麼指令 (Startup Script) 等等。

讓你的開新機器可以更方便,詳情可以參考這份文件

所以你可以:

(1) 用 Image 開新機器,自動包含已經安裝的軟體

(2) 用 Template 開新機器,自動包含已經安裝的軟體,再加上主機在 GCP 的設定。

另外,如果你想要做到雲端的重要功能 – 負載平衡和自動擴充 (Autoscale),

也是要用到 Image 和 Template 喔,詳情可以參考這份文件

5. 機器映像檔 (Machine Image)

機器映像檔和上面提到的 Image 加 Template 很像,

可以想像成是一個「完整的電腦備份包」。

這個備份包含了:

作業系統、所有已安裝的軟體和設定、磁碟設定和儲存的資料和網路設定等。

但還是有一些重要差異:

(1) 備份範圍不同

  • Machine Image:可以同時備份多個磁碟,包括開機磁碟和資料磁碟。
  • Instance Template + Image:只能備份單一開機磁碟。

(2) 增量備份能力

  • Machine Image:支援增量備份,如果資料只改一點點,下次備份只會儲存變更的部分。
  • Instance Template + Image:每次都是完整備份,不管改了多少。

(3) 磁碟配置彈性

  • Machine Image:可以保留完整的磁碟設定,包括多磁碟之間的關聯。
  • Instance Template:需要額外設定來處理多磁碟設定。

6. OS Patch Management 統一管理系統更新 

現在網路上駭客很多,隨時在到處入侵各個系統,

而作業系統如果不保持更新,就容易被發現漏入,

導致駭客入侵,因此保持作業系統更新非常重要。

但如果你手上有很多機器,要手動更新每台機器,是非常麻煩而且耗時的,

GCP 提供 VM Manager,就是要讓你可以一口氣更新多台主機,

你就不用一台一台連進去手動更新。更多詳細的介紹可以參考這份文件

OS Patch Management
圖片來源 Medium 部落格

二、Compute Engine 的特色

以下是幾個 Compute Engine 的關鍵特色:

(一) 想用就用 (On-demand) :

當你有臨時要使用主機的需求,你可以在幾分鐘內就開始使用一台虛擬機器,不需要實際購買硬體。

如果你是傳統地端環境,你是無法即時擴充的。

因為你要走採購流程包含詢價、議價、選商,以及後續的安裝建置。

和雲端相比之下,早就喪失了先機。

這是地端環境遠遠比不上雲端的一大因素。

(二) 任意調整規格

你可以選擇這台虛擬機器的規格,比如說要多少記憶體、多強的處理器等,

就像是在組裝一台符合你需求的電腦。

其他雲端廠商如 AWSAzure

它們的機器規格 (vCPU 和記心憶體) 都是配好的,不能自己拉。

但 GCP 給你一個拉 Bar,你想拉多少就拉多少。

你可以拉 1 vCPU 配 5GB 的記憶體,甚至極端一點,

你使用擴充記憶體,可以拉出 1 vCPU 配 624 GB 的記憶體,如下圖:

目前 GCP 提供的型號很多,包含以下幾種:

1.通用型 (General-purpose)

對於各種用途來說,這種類型的性價比最高。適合大多數人日常使用,效能和價格都很平衡。

像是一般的官方網站,直接使用這類型的機器就好。

2. 儲存優化型 (Storage-optimized) 

最適合那些不需要太多運算能力,但需要大量儲存空間的工作。

這類型的機器就像是一個大容量的倉庫,可以存放大量資料,但不需要太多的處理能力。

但要注意它是隨帶著 Local SSD,是做為資料處理暫存的用途,

萬一主機重開,Local SSD 資料會不見!

所以資料處理完要記得轉到一般的 Persistent Disk 喔!

3. 運算優化型 (Compute-optimized) 

在整個 Compute Engine 上,每個核心的效能是最強的,

為運算密集型工作而優化。

如果你要做大數據分析、影片編碼或轉碼、

大流量的電子商務網站、天氣模擬運算等等,

都很適合用這種機器。

4. 記憶體優化型 (Memory-optimized) 

這種主機非常適合需要大量記憶體的工作,

每個核心配備的記憶體比其他類型都多,最高可達 12 TB。

像是社群網站需要大量讀寫資料庫、新聞網站大量快取內容、

把大數據放在記憶體做分析等等,

記憶體夠大的話,可以確保系統穩定運作而不當機。

5. 加速器優化型  (Accelerator-optimized) 

最適合大規模並行的 CUDA 計算工作,

例如機器學習、自動駕駛汽車處理多個即時影像來判斷怎麼開車、

3D 動畫影片渲染、金融業使用蒙特卡洛模擬來評估風險、

DNA 基因序列分析、大量視訊串流 (Video Streaming) 等等。

如果你的工作需要用到 GPU,最適合用這種機器。

(三) 按需付費:你只需要為你使用的資源付費。

不用的時候,可以關機,就不用付錢了。

例如假設你使用最小規格的 GCP 主機 f1-micro ,它一個月的費用只要 5 美金。

如果你只用 2 個禮拜就不用了,那你只要 2.5 美金,

根本不到台幣 100 塊,太便宜了。

(四) 擴展性強

當你需要更多運算能力時,你可以輕鬆地增加更多虛擬機器,或者升級現有的機器。

如何升級呢?你只要把現在的機器關機,你就可以更改它的規格,

像我本來是 f1-micro 的機器,我可以改成 N1 其他規格的機器,

甚至其他型號的機器都可以!

此外,Compute Engine 有個「執行個體群組」的功能,就是一次可以開很多台機器,

還可以設定當現有機器忙碌的時候,例如 CPU 使用率 60%以上,

讓它自動長出新的機器,也就是所謂的自動擴充 (Autoscale)。

(五) 全球部署

你可以選擇在世界各地的資料中心運行你的虛擬機器,讓你的服務更接近用戶。

這是台灣的 IDC 機房做不到的,因為 Google 在全世界已經有 40 個資料中心

最近還在柏林 (德國)、杜哈 (卡達)、達曼 (沙烏地阿拉伯) 和約翰尼斯堡 (南非) 興建新的資料中心。

代表你可以把主機開在世界各地。

尤其是對方國家當地法規比較嚴格,要求資料只能存放在當地的時候,

你就不用親自到那邊租個辦公室、請員工、建置機房、買機器和安裝軟體。

大部分工作都可以遠端完成,非常方便。

(六) 安全可靠

Google 的資料中心已經通過各種國際或特定國家的認證,

確保資料中心的穩定跟安全,除了資料中心本身實體的防護之外,

也嚴格控管出入的人員,即使是 Google 的員工,也無法自由進出機房。

我們存在雲端的資料,就是屬於我們的,Google 人員也無法存取,

只有在我們申請技術支援的時候,授權給他們才能存取。

所以你只需要專注於你的應用程式,其他底層的維護運作,交給 Google 就好了。

而且 Compute Engine 有提供 SLA (Service Level Agreement;服務水平協議)

如果你只在一個 Zone 開一台機器,它可以確保 99.9% 的可用性,

如果在兩個 Zone 以上開機器,它可以確保 99.99% 的可用性,

萬一服務中斷超過 SLA 的範圍,它會賠償下個月的抵免額 (Credit)。

當然它不是賠現金啦!

是下個月使用 GCP 的費用,它讓你可以減免。

三、常見問題 – 為什麼一定要用 Compute Engine?

有人覺得用地端 VM 就好了、或是 VPS,或是 AWS,為什麼要用 Compute Engine,有什麼獨特的地方嗎?

讓我們來看看 Compute Engine 相比其他選擇的一些獨特優勢:

(1) 整合 Google 生態系統

如果你已經在使用其他 Google 服務,

如大數據分析平台 BigQuery、無限大儲存空間 Cloud Storage 等,

Compute Engine 可以無縫整合,讓你的工作流程更順暢。

例如,你可以輕鬆地讓 Compute Engine 使用機器學習服務,

如 Vision AI 或 Natural Language AI。

(2) 網絡效能

Google 擁有全球最大的私有網絡之一。

使用 Compute Engine,你的數據可以通過這個高速網絡傳輸資料到全球其他 Region,大大減少延遲。

對於需要跨區域或全球部署的應用來說,這是一個巨大的優勢。

你也可以參考這份圖表 – 全球各 GCP Region 之間的 Latency

(3) 定價模式

Compute Engine 提供每秒計費 (最少 1 分鐘),而不是按小時計費。

這對於短期運行的工作負載可以節省不少成本。

還有持續使用折扣 (Sustained Use Discount)

使用時間越長,折扣越多,不需要預先承諾或預付。

如果你想要預先承諾也可以,

它能提供一年或三年的承諾使用折扣,最低可以到 43 折。

關於價格的細節可以參考這份文件

(4) 自訂機器類型 (Custom Machine Type)

像上面提到的,你可以自訂 vCPU 和記憶體的組合,

而不是被限制在預先定義的機器類型中,避免資源浪費。

(5) 即時遷移 (Live Migration)

因為主機實際上還是在硬碟上運作,硬碟終究會有老舊的可能,

而 Google 可以在不停機的情況下,

將你的主機即時移動 (Live Migration) 到新的底層硬體上,

代表你的服務可以保持高可用性。

(6) 預先或自動擴展 (Autoscale)

你可以設置執行個體群組 Instance Group,

根據負載自動增加或減少機器數量,

這比傳統的地端 VM 或一些 VPS 供應商更靈活部署資源。

(7) 強大的安全功能

例如屏蔽虛擬機(Shielded VM)技術,像是一個加強版的防護罩,把你的虛擬機器保護得更安全。

它主要提供三個重要的安全功能:

a. 開機檢查 (Secure Boot):

每次開機時都會檢查,確保沒有惡意程式偷偷混進去。

b. 韌體防護 (vTPM, virtual Trusted Platform Module):

像是一個加密的保險箱,存放重要的金鑰和憑證,讓駭客很難偷到或是篡改。

c. 完整性監控 (Measured Boot)

像是裝了一個行車記錄器,會記錄並檢查開機過程中的每個步驟,

如果發現異常,會立即通知你。

如果是金融相關,或是要處理個人資料的系統,

可以使用 Shield VM 來保護你的主機。

(8) 創新技術

Google 經常推出新的硬體,如 TPU (張量處理單元),可以加速 AI 的運算。

這些都可以通過 Compute Engine 使用。

(9) 永續性

如果環保是你的考慮因素之一,Google 資料中心的能源效率,

以及可再生能源的使用率,都處於業界領先水平。

完整的永續發展資訊,可以參考這份文件

你甚至可以使用區域挑選工具,依照碳足跡、價格和延遲時間 (Latency) 來選擇適合的 Region。

四、Compute Engine 結論

總結來說,Compute Engine 結合了大型雲端供應商的優勢 (如全球基礎設施、先進技術),

和更靈活的費用及設定選項。

對於需要高效能、高可用性,同時又希望保持靈活和成本效益的企業來說,

Compute Engine 是一個適合你的選擇。

如果你想使用 GCP,可以先參考這個影片來申請免費試用

如果你己經有了 GCP 的環境,可以看這影片

來試著建立你第一台 Google VM,慢慢進入 GCP 的世界喔!

返回頂端