連線總覽

本頁說明如何連線至 PostgreSQL 適用的 AlloyDB 服務資料庫。詳情請參閱「選擇連線至 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 用戶端連線至執行個體一文說明如何連線至 AlloyDB 執行個體,方法是在虛擬私有雲中的 Compute Engine VM 上執行 psql 指令列程式。

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

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

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

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

公開 IP

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

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

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

AlloyDB 也支援連出至執行個體的連線。您可以啟用輸出公開 IP,直接從外部來源將資料庫遷移至 AlloyDB,方法是使用資料庫移轉服務或自行管理的 pglogical 設定。AlloyDB 也支援使用外部資料包裝函式 (例如 postgres_fdworacle_fdw) 連線至外部資料來源。

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

授權

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

AlloyDB 語言連接器

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

您可以直接從各自的程式設計語言使用這些程式庫。這些工具提供的功能與 AlloyDB Proxy 相同,但不需要外部程序。這樣一來,您就能以更高的安全性連線至 AlloyDB,且設定需求也會減少。

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

使用 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 使用者身分登入叢集的主要執行個體,並使用建立叢集時指定的密碼。接著,您應為應用程式建立不具管理員權限的資料庫使用者。

彙整

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

用戶端連線集區

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

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

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

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

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

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

設定用戶端連線集區

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

connections = (vCPU count * 2) + 1

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

使用代管連線集區

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

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

後續步驟