GCP的Shared VPC是什麼?有什麼用?好用嗎?
GCP有VPC和Shared VPC,VPC是針對單一一個專案的,Shared VPC可以跨專案,像我們公司大概有20~30個專案,有很多要在同一個VPC裡面,就要用Shared VPC。VPC是Virtual Private Cloud(虛擬私有雲)的縮寫。
Shared VPC介紹
首先要介紹這個就要介紹VPC,簡單一點講就是在雲端做一個區域網路的概念了(當然有點差異但最快速的理解就是這樣)。
雲端區域網路有什麼好處,可以擋掉外部的攻擊針對有些要保護的服務,比如Cloud SQL。如果Port對外的話一天會有40~80萬次的嘗試密碼登入攻擊,但藏在VPC裡面我們現在還沒有被攻擊過任何一次。
但VPC如果只有在一個專案,那就很不實用,因為Cloud SQL可能跟Cloud Run是在不同專案。
所以就有Shared VPC,建立一個VPC的Host,然後其他的專案作為服務專案連結到這個VPC裡面共享一個網段。
Serverless VPC Connector
這個是比較麻煩的地方,因為Serverless沒有一個固定的私有IP,因此連接VPC的時候,要透過Serverless VPC Connector創建最少2~3個VM來做轉接。
這個當然就要額外的費用了。
但Serverless的好處是很多,所以多一點費用我覺得也值得,因為可能無伺服器架構省下的成本高過太多倍的Connector成本。
Cloud SQL私有IP
Cloud SQL在Shared VPC裡面就可以勾私有IP的選項,如果一開始沒有選擇,就要重建一個執行個體。
所以最好在一開始就規劃好是否要用VPC或Shared VPC。
然後Cloud SQL可以直接擋掉所有網際網路的流量。
只有當需要資料庫操作的時候,開自己的IP通過就好了,也不用用什麼VPN。
Cloud Run設定
Cloud Run設定要記得在連線的部分選擇要連接的Connector,不然是會連不到私有IP的。
Connector初期用E2的執行個體就夠了,費用說真的不是太高。
如果Cloud Run對外要有固定IP,就一定要用Shared VPC,然後用Cloud Router再設定Cloud NAT,這個太麻煩了我不是太想在這邊解釋。
改天有空再寫一篇。
Shared VPC設定的重點
記得有些服務帳戶要給Host它的權限,不然會在這邊卡關很久。
服務帳戶會隱藏,有一個Checkbox要勾顯示所有帳戶,不然也會卡關很久。
這些都是經驗談。
希望大家能了解一點Shared VPC是什麼東西。