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

1. 簡介

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

思考關聯性

市面上的應用程式與架構有很多種。在本程式碼研究室中,我們將說明從任何位置連線至 Cloud SQL。您必須授權可明確連線的 IP,才能啟用這項功能。可說是最安全的選項,可用於連線至 Cloud SQL 資料庫,但同時也是設定與開始使用最容易的方法。

有時候,您需要在實際工作環境中執行這項作業,但如果可以避免,請選用更安全的替代方案 (例如使用 Cloud SQL Proxy)。這種設定最適合用於開發和測試。

建構項目

這個程式碼研究室的內容非常精簡。這個概念的用意是帶您瞭解相互連結的部分,而無需過度考慮應用程式本身。在最完美的情況下,連線至 Cloud SQL 就像是連結至 SQL 資料庫的任何其他執行個體一樣,因此您應該能取得在這個程式碼研究室中建立的內容,並套用至任何正式版應用程式。

這些操作說明包含使用 GCP 控制台的逐步操作說明,以及與 CLI 或自動化功能對應的 gcloud 指令。

個別步驟如下:

  • 建立 Cloud SQL 執行個體 (本教學課程使用的是 Postgres,但運作方式類似 MySQL 或 SQL Server) 並授權特定 IP 可連線至該執行個體

軟硬體需求

  • 您的 GCP 帳戶有權啟用 API 及建立服務
  • 安裝 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

首先,請擷取您要授權的 IP 位址,以便連線至 Cloud SQL 執行個體。最簡單的方式就是開啟瀏覽器,然後搜尋「我的 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> 替換成離您附近的 IP,以及根使用者「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 提示,並可針對資料庫執行指令。

後續步驟

查看一些程式碼研究室…

參考文件