使用 Google VM 的5大常見錯誤 – 有一種叫忘記關機!!
使用 Google VM 的5大常見錯誤

使用 Google VM 的5大常見錯誤 – 有一種叫忘記關機!!

你使用 GCP 有犯過錯嗎?
你使用 GCP 有犯過錯嗎?

各位如果使用 Google Compute Engien (簡稱 VM ) 一段時間,會常常發生一些小狀況,雖然是小狀況,但可能會造成巨大的損失。以下分享一下自己使用 VM 的一些注意事項:

一、忘記關機

有時各位會開機器來做一些測試,然後測了之後就放著,若開比較大規格的機器又忘記刪除或關機,你就會在下個月初收到「驚喜」。

給各位欣賞一下,這是我當年用自己信用卡申請試用之後,機器開著忘記關(我竟然開 4 core 的 Windwos + SQL Server),隔月收到的驚喜:

GCP 帳單本人
GCP 帳單本人

就這樣讓我個人噴了 1500 台幣左右的信用卡費用。順便提醒各位,300 美金試用到期,機器是會繼續運作的,不會自動刪除。你能做的,就是多下幾道帳單警示 Billing Alert,可參考這篇文章:

GCP帳單功能簡介,和設定預算

但它也算事後才發現,要提早發現,可以把你的 GCP Console 設定為 Chrome 初始頁面,就是 Chrome 瀏覽器一打開,就自動開啟的頁面:

把 GCP 帳單頁面設為 Chrome 初始頁面
把 GCP 帳單頁面設為 Chrome 初始頁面

這樣你每天上班一開機,就會馬上顯示 現在帳單多少錢,然後趕快去檢查有沒有多開什麼東西,趕快去關機。

如果你說,沒有啊我的 Mac 電腦都只是盒上,沒有在關機或關瀏覽器的,那……我真的沒辦法了。

還有一招啦,很蠢但很好用的招,就是設 Stackdrive Alert ,只要機器流量超過 200 Bytes,就直接發 Alert :

設定只要流量超過 200 Bytes 就發 Alert
設定只要流量超過 200 Bytes 就發 Alert

基本上只要有人開機器,馬上就收到 Alert mail,但對於專案裡本來就很多機器在跑的人來說,就沒有意義了。不過對於測試環境,平常不會放著機器在那邊跑的,這就是個好招,因為你一看到Alert就馬上知道有機器沒關。天啊我太佛心了,為了讓大家不忘記關機,已經貢獻畢生絕學了。

二、取消 SSH Key 登入而且密碼設太簡單

GCP 的 VM 通常都是直接點擊 console 上的 SSH 按鈕,就能直接登入。但很多情況下必須要用地端的主機登入,預設的做法是先在地端建立 SSH key,然後把public key 放在 VM 的 Metadata 裡。

但是很多人懶都得做,或是不熟 SSH key 的設定,所以都喜歡上網尋找,取消SSH Key 登入的方式,改成 ssh user@ 主機IP 來登入。這樣就算了,偏偏有人還把密碼設得太簡單,造成你的 主機一天到晚有駭客在 try 你的帳號密碼,像這樣的密碼可能幾天就被破解,然後立刻變成殭屍電腦。

也有人用的是 Windows Server ,本來就不強制用 SSH Key ,結果真的一堆人密碼設超簡單,也沒有設定防火牆,直接讓你的主機在 internet 上裸奔。

主機被駭客控制通常有幾種狀況,一種是單純用你的機器來做跳板,算是最輕微的,如果是拿來攻擊其他電腦,送出大批流量,如果沒被 Google 發現,基本上就是幾十萬的帳單,如果是被 Google 發現駭客,則是整個專案都被停掉,完全不給你登進去處理,兩種情況都不好啊!

建議不要直接取消掉 SSH Key 登入,並且用防火牆只允許從公司的 IP 登入主機,再來就是不要設太簡單的密碼,至少做到簡單的安全性。 其實設定 SSH Key不會太難,而且設完就再也不用帳密登入,非常方便,千萬不要懶啊!!

三、買錯承諾使用折扣 Committed Usage Discount

這是長期使用一年或三年 CPU 和 Memory 的折扣,最高可以到 43 折,詳情可以看這裡:

Committed Usage Discount 承諾使用折扣

這個真的的是非常容易發生,大部分人下單時只看 vCPU 數量和 Memory 大小,但是沒注意到 Region 要選對,很多人都下在預設的 us-central1,還有機器類型也會選錯,不然就是手滑按錯。

使用  Committed Usage Discount  千萬不要下錯單喔!
使用 Committed Usage Discount 千萬不要下錯單喔!

因為這種訂單一旦送出,就是一年或三年的費用,不管你有沒有使用它,每個月都會有帳單金額要支付,萬一真的不小心下錯,就必須在當下「立刻」去找經銷商來協助處理,而且每次處理都需要等 2~3 個禮拜才能取消你下錯的訂單。如果事情已經發生好幾天了,那就完全無法反悔了。

購買錯承諾使用折扣 Committed Usage Discount,最容易下錯Region和機器類型
購買錯承諾使用折扣 Committed Usage Discount,最容易下錯Region和機器類型

四、忘記釋放固定 IP 或刪掉 Disk

大多數的系統,都會因為要和外部介接的需求,要使用同一個 IP,所以都會去GCP Console 保留固定 IP,而在機器不用之後,就會直接把主機刪掉。但常常忘記 IP 還在那邊,因為 IP 算是稀有資源,如果一直保留著它不用,佔著茅坑不拉屎,還是會持續的計費喔!

Disk 也是,通常刪除主機時,系統會提示 Disk 要不要順便刪除,有時為了保險就先留著,結果一留就忘記刪了,因為 Disk 的頁面平常很少會去看,忘記也是難免。如果是小容量的 HDD 那也還好,如果是大顆 SSD 就會充滿驚喜!

一樣如果有把帳單頁面設為初始頁面,就有機會常常去檢查有沒有什麼東西忘了刪。

五、在 Linux VM 設定 iptables 然後把自己擋在外面

GCP 本身就有提供防火牆功能,而且是 Infra 層級的,也就是說不會耗用你 VM 的 CPU 和 Memory,但是如果你覺得還是要自己設,請一定要記住,要允許自己登入的來源 IP,不要隨便 DENY ALL,因為它是在雲端上的 VM ,萬一不能登入,是沒有辦法殺到 Google 資料中心的機器前說我要救援伺服器了。

你可以設定至少允許同一個 subnet 的機器登入,這樣就可以在同一個 subnet 開一台機器,然後 SSH 進去把 iptables 調回來,但如果直接 DENY ALL,那就等同跟這台主機說再見了。只能把 Disk 掛載到另一台機器,再進去調整設定了。

以上五種錯誤,你犯過哪一種呢?給各位 GCP 愛用者參考喔!這可是本人歷盡滄桑的佛心建議啊!!

Aaron Lee

超過6年的Google Cloud經驗,服務過上百家G Suite與GCP客戶,擔任多次研討會主講人與教育訓練講師,提供架構諮詢與技術支援,幫助各大企業上雲。

Leave a Reply