[GCP]設定 VM 定時開啟和關閉

剛開始使用 GCP 的環境 , 跟 Azure 有那麼一點相似 , 又有些許的不同

最近剛好遇到有朋友需要在國內的機房上架設環境讓客戶使用,因此就沒有辦法使用 Azure 的相關資源,雖然申請了 Google 測試帳號,但由於是免費的額度,不能使用 Windows 的資源,正在煩惱該怎麼來進行測試,好在有在 Google 服務的朋友,介紹了一間 Google 經銷商 iKala ,透過經銷商提供的資源,總算可以在 GCP 上面建立 VM 來做相關測試。

基本上建立 VM 難度不高,就選擇想要的類型就可以快速建立,但因為要搭配 Windows Server,並且測試使用 IIS 來架設 API 的環境,因此原本雖然選擇 e2-medium 的規格 ( 2 vCPU + 4GB RAM ),但跑起來還是卡卡的,於是就重新選擇 e2-standard-2 ( 2 vCPU + 8GB RAM ) 的規格,跑起來就較為順暢了。

雖然可以順利建立起來,但畢竟費用也不便宜,因此想類似 Azure 一樣的方式,利用 Azure Automation 在上班時間才開啟 VM,在下班則關閉 VM 的運作。而這些的處理在 GCP 上面看起來會更為直覺一點,在 VM 的畫面中就有了「執行個體排程」,可以直接針對 VM 設定開啟和關閉的時間,因此我就建立一個 workday 的排程,希望能夠透過定時關機來節省費用。

只是當我建立好排程,要將 VM 指定排程的時候,就會出現以下的錯誤,從錯誤訊息看起來,似乎沒有足夠的權限可以去開關機。

好在透過 iKala 的顧問說明相關設定之後,找到了設定方式,要選擇左上角的選單,進入到 「IAM 與管理」的設定功能中

選擇將剛剛出現問題的服務帳號,加入「Compute 執行個體管理員 (v1)」的角色,這樣服務帳號才能有權限去啟動和關閉 VM

這樣再回到剛剛 VM 設定排程的地方,就可以很順利的將 VM 給加入到排程的管理了。只是在這裡 GCP 的排程就沒有辦法像 Azure Automation 設定的那麼彈性,因為一個 VM 只能加入到一組的排程設定裡面,如果要比較有彈性的排程設定就比較麻煩了。

透過上述的設定,總算完成 GCP 的初體驗了,接下來就來試試看,是否能透過 Azure DevOps 將程式佈署到 GCP 的 VM 裡面去了。