iT邦幫忙

1

GCP的cloudSQL該如何外連?

需求如下

  1. GCP使用cloudSQL建置SQL Server
  2. 使用訂閱對地端主機進行單向同步

嘗試解決的部分

  1. 目前已經可以用SSMS等軟體從GCP以外環境進行瀏覽
  2. 在地端的防火牆規則開好,已經加入cloudSQL的IP,但在cloudSQL進行訂閱,地端卻看不到request進來

請問各位先進,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)...

2 個回答

2
raytracy
iT邦大神 1 級 ‧ 2021-12-08 09:46:56
最佳解答

地端的網路環境是甚麼架構?

  1. 地端出口是否經過 NAT 轉換?
  2. Pub/Sub 需要的 Port 是否全開?

通常會做雲地混合, 最好是兩邊建立 IPSec 做 Site-to-Site VPN, 因為微軟的產品會用到許多意料之外的 Port, 除非你很清楚會用到那些? 否則常常都是對外出口的 Firewall 沒開到:
Configure the Windows Firewall to Allow SQL Server Access

用 SSMS 管理軟體去連可以過, 是因為他只走 TCP 1433, 不會用到其他 Port...

qpowjohn iT邦新手 4 級 ‧ 2021-12-08 11:40:12 檢舉

感謝雷神解答,第一點有經過驗證,但您提的NAT轉換讓我突發奇想,測試後可成功訂閱,解決方法撰寫於首篇

1
Gary
iT邦好手 1 級 ‧ 2021-12-08 11:17:20

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

我要發表回答

立即登入回答