在Google Compute Engine 上建立一個免費的VM - GitHub Pages
文章推薦指數: 80 %
啟用GCP 的時候,Google 會給你一個免費的額度。
建議你可以在使用一段時間後進入“帳單” 的頁面看看這個額度有沒有被扣款。
藉此確保你一直 ...
在GoogleComputeEngine上建立一個免費的VM
CreateafreemicroVPSonGoogleComputeEngine
前言
為了測試手邊的LTECAT-M1模組,我需要一台有publicIP的測試主機與之溝通。
大多時候你可以使用ngrok這樣的服務來進行這種測試,但ngrok目前似乎不支援我需要的UDP協定穿透。
所以得真的去好好研究一下這種VM服務了。
AmazomAWS和GoogleCloudPlatform(GCP)都有提供這樣的服務,最後選擇GCP的原因是在一些條件下能符合免費方案的條件。
如果只是為了短期的測試而使用是很方便的。
關於GoogleComputeEngine
你只要有gmail帳號,你就可以用這個帳號進入GCP的主控台操作
你可以把GCP想像成一個提供各種服務的平台商,你可以在GCP上購買各種不同的服務,我們今天要用的VM是隸屬於“ComputeEngine(GCE)”的服務。
廢話我就不多說,直接操作吧。
建立VM
建立專案
GCP上面有很多服務/資源可以使用,GCP的使用邏輯是–你要先建一個專案,然後將你要使用的服務掛在這個專案下面。
假如你是第一次進入這個畫面,注意上方藍色列的“選取專案”下拉選單,選單裡面可能是空的。
當你點選左邊選單的“VM執行個體”(翻譯很爛==)時,右邊內容頁會提示你得先建立一個專案。
下面的示範中,我建立了一個名為“test-VM”的專案。
然後你需要等個幾分鐘,讓系統啟用ComputeEngine…
有了專案後,你就可以在這個專案中建立一個VM。
按下“建立”
選擇Region
GCP在很多國家都有建立機房,理論上我們應該選擇離台灣最近的比較好,但是因為想使用免費方案,而免費的方案中限制只能使用這三個區域的主機:
us-central1
us-east1
us-west1
以下是GCE免費方案的條件:
你當然可以去ping這三個region的主機位址,然後根據TTL的時間決定使用哪一個,但如果你不知道主機位置的話,根據地理概念,美西應該會離台灣近一點,所以我這邊將會選擇使用us-west1。
us-west1還分為a,b,c三區,差別是支援不同的VM,例如a,b區可建立支援GPU的VM,c區就沒有了。
但是如果想使用免費方案的話,本來就沒有GPU可以用XD所以其實沒差。
VM基本設定
這邊是主要設定的部分,如果想使用免費方案,你需要注意:
區域使用us-west1
機器使用N1系列中的f1-micro類型
開機磁碟使用30GB以下
因為我只是要測試,就沒有動磁碟的部份了,維持它是預設的10GB。
但是作業系統可以改,點選“變更”。
有ubuntu18.04LTS可以使用。
VM其他設定
其他就看你想啟用什麼就打勾。
最底下有五個設定tabs,以下截圖給大家看。
根據需求自訂即可。
管理:
安全性:
磁碟:
網路:
單獨租用:
基本上我幾乎都使用預設的設定。
如果沒什麼問題就按“建立”,然後等待VM建立並啟用。
VM啟用後,你可以看到GCE會給你的VM配一個publicIP,VM預設的防火牆規則沒有阻擋ICMP,所以你可以在host主機上使用ping測試看看:
一旦VM被建立了,通常我們會希望能透過shell操作主機,如果你想要使用ssh連線,你首先需要做的事情就是設定金鑰。
設定金鑰
你需要在左邊的選單中選擇“中繼資料”,然後在右邊內容頁中的“安全殼層金鑰”(什麼翻譯==)中“新增SSH金鑰”。
在你需要連線的主機上以ssh-keygen產生key-pair,然後將~/.ssh/id_rsa.pub的公鑰內容貼在設定欄位中。
如下圖所示。
這邊注意一點,你的pub-key後面會帶host主機的使用者名稱(ex:andrew),最終當你連線GCE的VM時,需要使用這個名稱,而不是gmail的username。
後面的示範會說明。
新增完後的樣子,注意使用者名稱的欄位是host主機的username,而非gmail的帳號名稱。
SSH連線
真正可以用的ssh指令是:ssh-i
以下是連線成功的畫面:
一旦連線成功,你就在publicIP網段上有一台測試主機可以使用啦!!
防火牆開port
為了系統安全考量,GCE所提供的VM預設會阻擋很多port。
當你的測試需求必須使用特定的port時,需要自行設定防火牆規則。
雲服務商通常都會提供簡易的網頁設定介面讓使用者設定。
以下示範“開啟VM上的UDP1701port”的步驟。
在GCP首頁的左邊選單點選“VPC網路”然後進入“防火牆”設定頁面中點選“建立防火牆規則”
然後就依照下圖的設定,設定輸入方向來自所有IP–0.0.0.0時
允許UDP1701port通行。
然後點選“建立”
這樣就完成了!
Netcat測試
你可以使用nc的指令做測試,在VM主機上(左視窗)以nc指令開啟一個監聽UDP1701port的程序。
當host端(右視窗)對VM的publicip送出UDP訊息的時候,VM端就會收到訊息,代表這整段是通的。
當然,如果你在上一個步驟中沒有設定防火牆規則,這邊就會失敗。
CLI工具
理論上GCEVM給你的publicIP應該不會是永遠固定的,如果你嫌每次都得要進入GCP頁面中才能查到IP很麻煩,你可以考慮使用GCP提供的CLI工具–gcloud。
設定及安裝方法請參考官方文件:Quickstart:GettingstartedwithCloudSDK。
原則上只需要安裝一些套件,然後執行gcloudinit選擇專案名稱後就可以使用了。
以下是使用gcloudcomputeinstanceslist列出所有VM的資訊,該指令的輸出就可以帶出publicIP資訊了。
使用CloudShell
GCE的頁面還提供了一個稱為CloudShell的CLI環境。
它是一個將shell畫面嵌入網頁的CLI介面。
點選選單上的圖示啟用即可
你會馬上進入一個以你gmail帳號為username的家目錄下。
你可以使用sudo操作指令,甚至是以apt安裝套件。
我原本以為CloudShell會連線到你所建立的VM但似乎不是,它像是一個獨立運作的VM。
老實說我不是很清楚為何需要CloudShell,我能想像的使用時機是當你不想安裝gcloud在你的主機上,又想透過gcloud操作GCP時,就可以使用這個環境。
關於收費問題
啟用GCP的時候,Google會給你一個免費的額度。
建議你可以在使用一段時間後進入“帳單”的頁面看看這個額度有沒有被扣款。
藉此確保你一直都在符合免費的限制下使用GCE。
~END~
延伸文章資訊
- 1google compute engine啟動一台vm的平均時間 - 數位感
如何開始使用GCP | Google Cloud建立Linux VM. 建立、連結及刪除VM 執行個體. 產品:Google Compute Engine. 平均所需時間:30 分鐘. 查看說明...
- 2Google Compute Engine 啟動一台VM 的平均時間 - 軟體兄弟
Google Compute Engine 啟動一台VM 的平均時間,3 January 2019 Google Cloud Platform committed use discounts, ...
- 3GCP 是什麼?Google Cloud Platform 完整介紹、常見問題 ...
針對7X24 黃金級技術支援,我們承諾初次回覆在一小時內回應您的疑問;5X8 的客戶,我們則於上班時間回應技術問題與實際支援。 CloudMile 除了是菁英合作 ...
- 4【GCP教學】第一次開Google VM要注意什麼?Compute ...
希望透過將 Windows 作業系統搬上雲端讓費用更省,使用情境更彈性嗎?要將虛擬機器從地端上雲我們可以運用 Google Cloud VMware Engine、Migrate for ...
- 5如何開始使用GCP | Google Cloud
這些簡短的教學課程可協助您開始使用Cloud Platform 的產品、服務和API。 建立Linux VM. 建立、連結及刪除VM 執行個體. 產品:Google Compute Engine...