上一篇 Day 3,我們談到 IAM 與雲端安全,理解「誰可以對什麼資源做什麼」。到了今天,開始真正建立一個雲端運算資源。
如果說 Cloud Storage 是把資料放到雲端,那麼 Compute Engine 就可以想成是租用雲端的運算能力。
第一次接觸 VM 時,很多人可能會把它理解成:
「我只是按一下建立 VM,然後就得到一台遠端電腦。」
但真正開始操作後會發現,建立一台 VM 並不是只建立「一台電腦」。背後還會牽涉到 CPU、記憶體、開機磁碟、網路、IP 位址,以及可能使用的 Service Account 等資源。這也是很重要的一個觀念:建立一個資源時,要知道背後到底一起建立了什麼。
VM,也就是 Virtual Machine,簡單來說就是在實體伺服器上透過虛擬化技術提供的一台「虛擬電腦」。
Google Cloud 的 Compute Engine 可以建立並執行這些 VM。Google 官方目前的文件也把 Compute Engine instance、compute instance 與 VM instance 視為相同概念;建立 VM 時,可以從 Google Cloud Console、Google Cloud CLI 或 REST API 等方式操作。
最大的差異在於,雲端把原本需要大量硬體準備的工作,變成幾個設定與 API 操作。
這也是雲端最大的便利之一。
但便利的另一面就是:
建立速度越快,越需要注意自己到底建立了什麼。
例如第一項「Project 是否選對」,就是一個非常容易發生、卻很難第一時間發現的錯誤。
這個習慣其實可以延伸成一個很實用的雲端操作原則:
動手之前,先確認 Context。
很多人第一次接觸 VM 時會想:
「我把 VM 關掉,是不是所有費用都停止?」
答案不是這麼簡單。
Google Cloud 官方文件指出,停止 VM 後,VM 本身的 CPU 使用費會停止,但附加的資源,例如 Persistent Disk、靜態 IP 等,如果仍然存在,就可能繼續產生費用。
建立 VM 時,還需要選擇 Region 與 Zone,這不只是「下拉選單選一個就好」。
資源的位置可能影響:
表面上是在學建立一台 VM,但真正值得帶走的其實是另一套思考方式:
而最重要的一個觀念就是:
雲端資源不是一個按鈕,而是一組有成本、有依賴關係、有生命週期的資源。