需求如下
嘗試解決的部分
請問各位先進,cloudSQL應該如何進行對外連線?
問題解決,解決思路如下
一般來說,DB所在環境不允許進行對外連線,故我在GCP切了兩個VPC,一個prod(使用cloudNAT進行對外連線),一個internal(預設無法進行對外連線)
首先cloudSQL建置完畢後,並未設定內部IP,所以我當下使用SSMS連線cloudSQL的公開IP是可以進行連線的,但無論如何都無法從cloudSQL對外連線,無論怎麼設定route都無法解決,此時發文尋求協助。
之後於cloudSQL開啟內部IP功能,此時接到internal這個VPC,仍舊無法連線(此時思路是因為cloud有提供公開IP,想說應該是利用公開IP連線到地端,但仍就無法建立連線)。
再來將cloudSQL的內部IP,指到prod這個VPC,使用定義在這個VPC的cloudNAT連線成功。
算是誤打誤撞吧,終究是成功了,提供給有需求的後來者參考。
但這種架構下,prod和internal需要各一套cloudSQL又是另一段故事了(花費*2)...
地端的網路環境是甚麼架構?
通常會做雲地混合, 最好是兩邊建立 IPSec 做 Site-to-Site VPN, 因為微軟的產品會用到許多意料之外的 Port, 除非你很清楚會用到那些? 否則常常都是對外出口的 Firewall 沒開到:
Configure the Windows Firewall to Allow SQL Server Access
用 SSMS 管理軟體去連可以過, 是因為他只走 TCP 1433, 不會用到其他 Port...
GCP CloudSQL是MySQL,連接埠預設是TCP3306,作法可以參考小弟之前寫的這篇,自於如果要走私有連線可讓CloudSQL綁定VPC透過Cloud VPN與您的企業內防火牆走IKEv1/IKEv2界接,作為您們企業內網就可用內部IP連線管理
Note the TCP port number of 1433, which is the default for SQL Server connections. Here are the default port numbers for the three types of database engines currently available in Cloud SQL: SQL Server — port 1433 MySQL — port 3306 PostgreSQL — port 5432
https://ithelp.ithome.com.tw/articles/10201363