Month8 月 2017

GCP – 費用計算機

在AWS上有很方便的計算成本工具

相對的在GCP也有這樣子的工具

https://cloud.google.com/products/calculator/

使用方式有點與AWS不同

但還是大同小異,有需要的可以使用一下計算成本

再評估是否要使用GCP喔

GCP – 使用Image開機自動替換Hostname

這個問題在AWS上遇過,但是AWS即使使用AMI啟動

也是會替換成IP開頭的hostname

而在GCP上則是會沿用上一次壓成的Image

例如我原本使用 web-01的hostname 壓成Image

在使用這個Image啟動後的server還會是web-01

造成做一個就要連線修改一次

 

這時拿出AWS的經驗,先找出如何呼叫instance的metadata

 

再使用腳本替換掉,寫了一隻shell
#!/bin/bash

name=`curl “http://metadata.google.internal/computeMetadata/v1/instance/name” -H “Metadata-Flavor: Google”`

hostnamectl set-hostname $name

systemctl restart rsyslog.service

再啟動instance時,在開機啟動碼中填入即可

如果有其他的指令需要開機啟動,可以寫成一隻boot.sh

在壓成image時放入,然後再啟動instance時

一樣使用開機啟動碼去執行

例如,開機替換hostname並拉取web 的設定檔等指令

 

我寫完shell之後搭配變數使用,可以下 web 就拉取web設定檔

設定 ap 就拉取 ap設定檔等

減少手動部署時間

 

GCP – Server 加入HTTP 負載平衡

前陣子在修改架構時,要將目前的架構加入HA的概念

所以負載平衡是少不了的,但看了一下教學

都是從頭開始做的,現有的Server要加入有點麻煩

所以自己嘗試了一下,順手就寫一下文章

 

首先在需要加入的Server中,點選新建個體群組

修改名稱,其餘設定不變,在port的命名跟port號填上需要設定的

注意,如果server有分兩個az,則兩台的個體群組需要分開設定

如asia-a有web-01 但 asia-b 有web-02 ,則要設定兩組

預設的個體就會直接被套用進去,之後按建立即可

兩個個體群組都建立完成後

選擇網路服務->負載平衡

選擇HTTP(S)負載平衡,這裡有地方需要注意,如果對外服務port不是80、8080的話,只能使用TCP負載平衡,如8443這種port

名稱設定打上自己需要設定的,之後設定後端server群組,建立後端服務

如果是靜態服務的項目,如圖片檔,可以直接指向Bucket(Cloud Storage)

port不用設定,如果在設定個體群組有設定的時候,選擇個體群組就會跳出顯示

可以直接套用進去

設定可以使用CPU負載或是連線的要求數量去決定,這裡先用預設

之後新增健康檢查

這裡需要注意FW規則需要加入google檢查的IP網段

130.211.0.0/22,35.191.0.0/16 否則會永遠偵測不到存活,因為連不到

預設先用http 80 去get /

這裡有一個問題,如果你的地區有3個az,連續檢查兩次存活的話

那每次監測就是3*2=6次get,如果有一些防禦機制的話要留意

接著主機與路徑規劃不需特別設定,除非有不同的PATH要導向不同的個體群組

如 /web 給後端web群組  /member 給後端會員群組 這樣

 

接著設定前端,IP通常是設定一組,不是設定臨時

PORT只有80、8080可以選

完成後點選建立

就創建好了 

 

GCP – FW規則CLI指令

最近新工作都是使用GCP在環境的建置上

由於摸熟了AWS的規則,切換過來發現GCP的不同

為了快速的新增這些設定,CLI的指令就比較好用

然後一行一行塞又覺得很慢,所以寫偷懶的shell

在專案內啟用google cloud shell

會出現一個shell的視窗

這時就可以執行CLI指令了,但一行一行下太麻煩

所以我用shell的方式執行

vi fw.sh

塞了兩行,如果需要大量產生FW規則的話

就以此類推,例如

#!/bin/bash

a=123.123.123.123
b=111.111.0.0/16
c=111.222.111.111
d=222.222.222.222

 

#設定aIP可以連接
#gcloud compute firewall-rules create allow-proxy-to-b –allow tcp:8080,tcp:8443 –source-ranges=$a –target-tags=allow-a

#開放snmp給c監控
gcloud compute firewall-rules create allow-snmp –allow udp:161 –source-ranges=$c

#開放健康檢查使用
gcloud compute firewall-rules create allow-ha-check –allow all –source-ranges=$b

#開放公司內部IP
gcloud compute firewall-rules create allow-office –allow all –source-ranges=$d –target-tags=office

之後離開

chmod +x fw.sh

sh fw.sh

就可以快速塞FW規則進GCP專案了

© 2024 Kila's IT Home

Theme by Anders NorénUp ↑