連線至 Cloud SQL:公開 IP 和已授權網路

1. 簡介

上次更新時間:2020 年 5 月 4 日

思考連結

市面上有許多應用程式和架構,在本程式碼研究室中,我們將介紹如何從任何位置連線至 Cloud SQL。如要啟用連線功能,請明確授權允許連線的 IP。這可能是連線至 Cloud SQL 資料庫最不安全的方式,但也是最容易設定及開始使用的方式。

有時在正式環境中必須這麼做,但如果可以避免,建議選擇更安全的替代方案 (例如使用 Cloud SQL Proxy)。這種設定最適合用於開發和測試。

建構項目

這個程式碼研究室非常簡潔,這個概念是引導您瞭解連線的基礎知識,不必過度思考應用程式本身。在理想情況下,連線至 Cloud SQL 就像連線至任何其他 SQL 資料庫執行個體一樣,因此您應該可以將本程式碼研究室建立的內容套用至任何正式版應用程式。

操作說明會逐步介紹如何在 GCP 主控台中執行操作,並提供對應的 gcloud 指令,方便您在 CLI 或自動化程序中使用。

具體步驟如下:

  • 建立 Cloud SQL 執行個體 (本教學課程使用 Postgres,但 MySQL 或 SQL Server 的做法類似),並授權允許連線的特定 IP

軟硬體需求

  • 您有權啟用 API 和建立服務的 GCP 帳戶
  • 已安裝 Postgres 用戶端,可驗證連線 (如要使用 MySQL 而非 Postgres,則為 MySQL 用戶端)

2. 建立 Cloud SQL 執行個體

Cloud SQL 是我們提供的代管關聯式資料庫。這項服務支援 MySQL、PostgreSQL 和 SQL Server。在本程式碼研究室中,我們將建立 Postgres 資料庫,但三種資料庫的操作說明類似。

在控制台中

前往 Cloud SQL 頁面,然後按一下 241836b315e11bf5.png 按鈕。

如前所述,本程式碼研究室的大部分內容都適用於任何 SQL 類型,但請選擇 PostgreSQL。

  1. 為執行個體設定 ID
  2. 選擇離您最近的區域
  3. 輸入預設使用者的密碼 (使用者名稱會是所選資料庫的預設名稱,例如 MySQL 的 root 或 PostgreSQL 的 postgres)
  4. 向下捲動並點選 show configuration options
  5. 展開「Connectivity」部分
  6. 確認已勾選 Public IP,但未勾選 Private IP
  7. 按一下 883b32ec2734de01.png 按鈕
  8. 取得連線來源的 IP 位址。最簡單的方法是使用 Google 搜尋「我的 IP 位址為何」,搜尋結果會顯示您的公開 IP 位址。
  1. 在網路欄位中輸入 IP 規格,視需要命名,然後按一下 New Network 方塊中的「完成」。
  2. 向下捲動並點選「建立」

執行個體通常會在幾分鐘內啟動。

執行個體建立完成後,請在清單中點選該執行個體,然後在總覽頁面的「Connect to this instance」標題下方,複製列出的「public IP address」。即使您可以在執行個體完全建立前點選詳細資料,但該資料不會顯示,直到執行個體完全建立為止。

使用 gcloud

首先,您需要取得要授權連線至 Cloud SQL 執行個體的 IP 位址。最簡單的方法是開啟瀏覽器,然後搜尋「我的 IP 位址」,搜尋結果會顯示公開 IP 位址。不過,如果無法從目前位置開啟瀏覽器,可以使用 dig 等公用程式。

dig @resolver1.opendns.com ANY myip.opendns.com +short -4

您需要為 Cloud SQL 執行個體指定最接近您所在位置的區域。如要查看地區清單,請執行:

gcloud sql tiers list

各個方案僅適用於特定地區。在本教學課程的 gcloud 部分,我們只會建立微型執行個體,因此您可以執行以下指令,找出這個層級適用的區域 (前提是您已安裝 grep):

gcloud sql tiers list | grep db-f1-micro

建立執行個體的指令如下 (請務必將 <AUTHORIZED_IP> 替換為從瀏覽器或 dig 取得的 IP,並將 <REGION> 替換為您附近的區域,以及根使用者「postgres」的密碼):

gcloud sql instances create sql-codelab-00 --database-version=POSTGRES_11 --tier=db-f1-micro --region=<REGION> --authorized-networks=<AUTHORIZED_IP> --root-password=<PASSWORD>

此程序需要幾分鐘才能完成。

完成後,CLI 的輸出內容會列出執行個體的 PRIMARY_ADDRESS。複製該 ID,以供下一個步驟使用。

3. 測試連線並完成設定

如要確認執行個體是否設定正確,請在您輸入 IP 位址的機器上,從指令列執行下列指令:

psql "host=<從上一個步驟複製的 IP> port=5432 sslmode=disable user=postgres"

然後指定您在建立 Cloud SQL 執行個體時設定的預設使用者密碼。

恭喜!如果一切順利,您應該會看到 Postgres 提示,並可對資料庫執行指令。

後續步驟

查看一些程式碼研究室…

參考文件