連線總覽

本頁說明如何連線至 AlloyDB for PostgreSQL 服務資料庫。詳情請參閱「選擇連線至 AlloyDB 的方式」。

  • 網路:AlloyDB 執行個體會使用虛擬私有雲 (VPC) 上的公開或私人 IP。各種技術可讓您從 VPC 外部執行的應用程式建立安全連線。

  • 授權:AlloyDB Auth Proxy 可讓您使用 Identity and Access Management (IAM) 控管資料存取權。您可以使用虛擬私有雲的防火牆,進一步調整 AlloyDB 資源的存取權。

  • 驗證:使用標準 PostgreSQL 使用者驗證技術登入執行個體。AlloyDB 也支援使用標準 PostgreSQL 使用者角色的 IAM 驗證。

  • 集區:為提升可靠性、效能和可擴充性,請使用標準 PostgreSQL 用戶端連線集區,以及伺服器端代管連線集區。

網路

即使 AlloyDB 執行個體包含許多節點,應用程式也會透過單一靜態 IP 位址連線至執行個體。這個位址可以是您在首次設定執行個體叢集時指定的虛擬私有雲私人位址,也可以是允許從虛擬私有雲外部直接連線的公開 IP。

私人 IP

使用私人 IP 設定 AlloyDB 時,執行個體會取得虛擬私有雲內的私人 IP 位址。

私人 IP 位址會透過兩種方式影響應用程式的連線:

  • 專案虛擬私有雲中其他位置執行的應用程式,可以連線至執行個體 (或代表執行個體的 Proxy),不需要額外步驟或資源。

    舉例來說,「將 psql 用戶端連線至執行個體」一文說明如何透過在虛擬私有雲的 Compute Engine VM 上執行 psql 指令列程式,連線至 AlloyDB 執行個體。

  • 在 VPC 外部執行的應用程式需要中介服務,才能連線至 AlloyDB 執行個體。解決方案包括在執行個體的虛擬私有雲中,於 VM 上執行 Proxy 服務,或是使用其他Google Cloud 產品,在應用程式和虛擬私有雲之間建立永久連線。

    詳情請參閱「從虛擬私有雲外部連線至叢集」。

透過私人 IP 建立連線通常延遲較低,且不需要經過網際網路,因此攻擊媒介有限。

如要進一步瞭解 AlloyDB 中的私人 IP,請參閱私人 IP 簡介

公開 IP

使用公開 IP 設定 AlloyDB 時,執行個體會取得可透過公開網際網路存取的公開 IP 位址,用於連入連線。您也可以使用授權外部網路,以 CIDR 格式指定可存取執行個體的 IP 位址範圍。

建議搭配使用公開 IP 位址和 AlloyDB 語言連接器,確保用戶端與執行個體之間的連線安全無虞。

如要進一步瞭解如何將公開 IP 和已授權的外部網路新增至執行個體,請參閱「使用公開 IP 連線」一文。

AlloyDB 也支援從執行個體到公開網際網路的出站連線。啟用輸出公開 IP 後,AlloyDB 會為離開 AlloyDB 執行個體並前往公開網際網路的流量,提供一致且可預測的來源 IP 位址。啟用這項功能後,AlloyDB 會佈建一組靜態公開 IP 位址,專供執行個體用於輸出連線。

對外連線在下列情境中特別實用:

  • 資料庫遷移:使用 資料庫遷移服務 (DMS) 將資料從外部資料庫遷移至 AlloyDB 時,您可以設定外部資料庫的防火牆,允許來自 AlloyDB 執行個體特定輸出 IP 位址的連線,確保資料移轉路徑安全無虞。

  • 外部資料包裝函式:如需使用 postgres_fdworacle_fdw 等外部資料包裝函式,在 AlloyDB 中查詢外部資料庫的資料,請將執行個體的輸出 IP 位址新增至外部資料庫的允許清單。AlloyDB 就能安全地連線及查詢外部資料來源。

啟用輸出公開 IP 後,您可以在 Google Cloud 控制台中查看指派的 IP 位址,也可以使用 gcloud 指令列工具。接著,您可以在外部系統上使用這些 IP 位址設定防火牆規則或存取控制清單 (ACL),授予 AlloyDB 執行個體存取外部系統的權限。

如要進一步瞭解如何啟用傳出公開 IP,請參閱「為執行個體新增傳出連線」。

授權

您可以使用 AlloyDB 語言連接器、AlloyDB Auth Proxy 或虛擬私有雲防火牆規則,控管 AlloyDB 叢集的存取權。

AlloyDB 語言連接器

AlloyDB 語言連接器是用戶端程式庫,可透過 TLS 1.3 和 IAM 授權,在連線至 AlloyDB 叢集時提供自動 mTLS。

您可以直接從各自的程式設計語言使用這些程式庫。這些函式提供的功能與 AlloyDB Proxy 相同,但不需要外部程序。這項功能可提升安全性,並減少連線至 AlloyDB 的設定需求。

詳情請參閱「AlloyDB 語言連接器總覽」。

使用 gcloud 連線

如要進行互動式資料庫工作階段,可以使用 gcloud beta alloydb connect 指令。這項指令會自動管理 AlloyDB Auth Proxy 的本機執行個體,並為您啟動 psql 用戶端工作階段,簡化連線程序。

詳情請參閱「使用 gcloud 連線」。

使用 IAM 和 AlloyDB Auth Proxy 控管存取權

雖然您可以透過執行個體的 IP 位址直接連線,但我們建議在正式環境中使用 AlloyDB Auth Proxy。這項服務提供以 IAM 為基礎的存取控管,以及 Proxy 與叢集之間的端對端加密。

詳情請參閱「AlloyDB Auth Proxy 簡介」。

使用防火牆規則限制虛擬私有雲存取權

與任何雲端專案一樣,您應調整 VPC 的防火牆規則,只允許應用程式連線的 IP 範圍或子網路存取網路。使用外部應用程式時,這點尤其重要,詳情請參閱「從虛擬私有雲外部連線至叢集」。

如要進一步瞭解如何設定虛擬私有雲防火牆,請參閱「虛擬私有雲防火牆規則」。

驗證

AlloyDB 支援兩種資料庫使用者,各自有自己的資料庫驗證方式:

  • 標準 PostgreSQL 使用者角色會使用使用者名稱和密碼進行驗證。您可以使用一般的 PostgreSQL 使用者管理技術管理這些帳戶。詳情請參閱「管理 AlloyDB 使用者角色」。

  • IAM 使用者和服務帳戶會使用 OAuth 2.0 權杖,以資料庫使用者的身分進行驗證。您可以使用Google Cloud IAM 系統管理這些帳戶。詳情請參閱「管理 IAM 驗證」。

向 AlloyDB 執行個體完成驗證後,應用程式就能將該執行個體視為一般的 PostgreSQL 伺服器。建立執行個體的網路和授權路徑後,您可以使用標準 PostgreSQL 技術登入執行個體並存取資料。無論是使用 psql 等工具手動登入,還是使用 PostgreSQL 程式碼程式庫以程式輔助方式連線至資料庫,都適用這項規定。

通常,首次使用新的 AlloyDB 叢集進行驗證時,您需要以叢集建立時指定的密碼,登入叢集的主要執行個體做為 postgres 使用者。接著,您應為應用程式建立不具管理員權限的資料庫使用者。

如果在建立叢集時未設定 postgres 的密碼,就無法登入叢集。如要登入,請為 postgres 設定密碼或建立其他使用者。詳情請參閱「使用內建驗證機制管理 PostgreSQL 使用者」。

彙整

連線集區是一種技術,可協助您確保工作負載與資料庫的連線穩定且效能良好。這在用戶端和伺服器端都很有用。

用戶端連線集區

連線至 AlloyDB 時,請使用用戶端連線集區。用戶端連線集區會建立與資料庫的多個連線,並確保這些連線在工作負載的生命週期內保持有效且運作正常。這種做法可確保工作負載與資料庫的連線穩定可靠。

  • 透過指令列手動執行查詢時。
  • 使用不支援用戶端連線集區的語言。
  • 工作負載是暫時性的,不會維持長期連線。

您可以使用任何支援 PostgreSQL 的標準用戶端連線集區。請注意以下幾點:

  • 用戶端連線集區程式庫有時會與 PostgreSQL 驅動程式分開。
  • PostgreSQL 驅動程式有時會在同一個程式庫中加入用戶端連線集區功能。

以下是常用的連線集區程式庫:

如果程式庫支援 PostgreSQL,您就可以搭配 AlloyDB 使用。

設定用戶端連線集區

如要讓用戶端連線集區發揮最佳效能,您可能需要設定集區大小。請使用下列公式做為起點:

connections = (vCPU count * 2) + 1

詳情請參閱「關於集區大小」。視實際負載而定,您可能需要進行額外調整。

使用代管連線集區

除了用戶端連線集區外,AlloyDB 也支援代管連線集區,可提供伺服器端連線集區。

雖然您可以將代管連線集區用於任何交易工作負載,但代管連線集區最適合用於含有較多短期連線的應用程式,或可能發生連線暴增的應用程式。詳情請參閱「設定代管連線集區」。

後續步驟