星期日, 10月 03, 2021

使用 GCP Instance Schedule 進行 GCE 定時開關機小記

 使用 GCP Instance Schedule 進行 GCE 定時開關機小記


在工作上, 因為節費的目的, 對於下列目的的機器會進行開關機控制

  • 排程的機器

  • 上班日才需要使用的機器

  • 短期使用


早期還沒有 Instance Schedule 功能的時候, 可能是透過 


現在 GCP 有內建的作法, 那就方便多了 :)

可以很輕鬆的設定機器的開關機時間, 例如下面的資訊


在使用 Instance Schedule 之前, 使用的 Service Account 需要compute.instances.start compute.instances.stop權限


否則會出現下列訊息



然後會是使用專案的 service-xxxxxxx@compute-system.iam.gserviceaccount.com 來建立排程, 所以會建立 Custom Role 來加到該 Service account

  • 好處是不會給過多的權限, 只給必要的 compute.instances.start compute.instances.stop權限



先建立一個 Custom Role

點擊 IAM 點擊 Roles




點擊 CREATE ROLE 建立一個客製化的Role



點選 ADD PERMISSIONS


可以 filter 選擇 Compute Instance Admin(v1)

或是直接 filter compute.instances.start compute.instances.stop 的 Permission 並勾選



Title:Instance_schedule

Description:Create on: 2021-10-03

ID:CustomRolexxx

Role launch stage:General Availability

點擊 Create 建置



可以觀察到有 Custom Role, Title 為 Instance_schedule



接下來要將剛剛建立的 custom role 附加到 service-xxxxxxx@compute-system.iam.gserviceaccount.com



在到 IAM 頁面 

勾選 Incloud Google-provieded role grants

編輯 service-xxxxxxxxxxx@compute-system.iam.gserviceaccount.com 權限


  • service-xxxxxxxxxxx@compute-system.iam.gserviceaccount.com 的 xxxxxxxxx 會對應到自己的 ID


點擊 ADD ANOTHER ROLE

選擇剛剛建置的 role ( Instance_schedule )

點擊 SAVE 儲存



完成 權限設定


在 Virtual machines -- > VM instances 頁面

點選  CREATE SCHEDULE 建立排程



如果今天想要讓某些機器

  • 在上班日開關機

  • 0900 開機, 1800 關機



依範例建置如下


Name:weekday-0900-1800

Description:weekday-0900-1800

Region: asia-east1 (Taiwan)

Start time:上午 08:45 (因為GCP官方文件有說會延遲最高15分鐘所以提早15分開機)

Stop time:下午 06:00

Time zone:Taipei Standard Time(CST)

Initiate date:

End date:

Frequency:Repeat weekly

Days of the week:按照自己公司的工作日勾選


  • 這邊可以利用 Initiate date / End date 來設計排程結束的期間, 但是最好跟開關機本身留 15 分鐘以上的緩衝時間


接下來將 VM 加入排程

點擊剛剛建立的排程



點選 ADD INSTANCES TO SCHEDULE


勾選要加入的 VM

點選 ADD



確認 VM 有被加入


到這邊應該算是大功告成

但是為了以後管理方便, 一般我們還會加上 LABEL, 這樣就可以快速觀察 



這樣又向 GCP 更進一步

~ enjoy it



Reference: