將無伺服器流量傳送至虛擬私有雲網路

建議您啟用 Cloud Run 服務或工作,以便使用直接虛擬私有雲輸出功能將流量傳送至虛擬私有雲網路,且無需使用無伺服器虛擬私有雲存取連接器。

不過,如果您無法使用直接虛擬私有雲輸出功能,可以使用無伺服器虛擬私有雲存取,從無伺服器環境 (例如 Cloud Run 和 App Engine) 直接連線至虛擬私有雲網路。設定無伺服器虛擬私有雲存取功能後,無伺服器環境就能使用內部 DNS 和內部 IP 位址 (如 RFC 1918RFC 6598 所定義),將要求傳送至 VPC 網路。這些要求的回應也會使用您的內部網路。

使用無伺服器虛擬私有雲存取有兩大優點:

  • 傳送至虛擬私有雲網路的要求,絕不會公開到網際網路。
  • 透過無伺服器虛擬私有雲存取進行通訊,相較於網際網路,延遲時間可能會更短。

只有在流量是透過無伺服器虛擬私有雲存取連接器,從無伺服器環境傳送的要求的回應時,無伺服器虛擬私有雲存取才會將 VPC 網路的內部流量傳送至無伺服器環境。如要瞭解如何傳送其他內部流量,請參閱「私人 Google 存取權」。

如要跨多個虛擬私有雲網路和Google Cloud 專案存取資源,您也必須設定共用虛擬私有雲虛擬私有雲網路對接

運作方式

無伺服器虛擬私人雲端存取以名為「連接器」的資源為基礎。連接器會處理無伺服器環境與虛擬私有雲網路之間的流量。在Google Cloud 專案中建立連接器時,您要將其附加至特定虛擬私有雲網路與地區。接著,您可以設定無伺服器服務,以便針對外部網路流量使用連接器。

IP 位址範圍

設定連接器的 IP 位址範圍有兩種方式:

  • 子網路:如果沒有任何資源已使用子網路,您可以指定現有的 /28 子網路
  • CIDR 範圍:您可以指定未使用的 /28 CIDR 範圍。指定這個範圍時,請確認不會與任何已使用的 CIDR 範圍重疊。

透過連接器傳送至 VPC 網路的流量,會來自您指定的子網路或 CIDR 範圍。

防火牆規則

防火牆規則是連接器運作及與其他資源 (包括網路中的資源) 通訊的必要條件。

獨立虛擬私有雲網路或共用虛擬私有雲主專案中的連接器防火牆規則

如果您在獨立虛擬私有雲網路中或共用虛擬私有雲網路的主機專案中建立連接器, Google Cloud 會建立所有必要的防火牆規則。只有在相關聯的連接器存在時,這些防火牆規則才會存在。您可以在 Google Cloud 控制台中查看這些項目,但無法編輯或刪除。

防火牆規則的用途 姓名格式 類型 動作 優先順序 通訊協定和通訊埠
允許從特定通訊埠的健康狀態檢查探針範圍 (35.191.0.0/16130.211.0.0/22) 傳送至連接器 VM 執行個體的流量 aet-CONNECTOR_REGION-CONNECTOR_NAME-hcfw Ingress 允許 100 TCP:667
允許從 Google 的基礎無伺服器基礎架構 (35.199.224.0/19) 透過特定通訊埠傳送流量至連接器的 VM 執行個體 aet-CONNECTOR_REGION-CONNECTOR_NAME-rsgfw Ingress 允許 100 TCP:667、UDP:665-666、ICMP
允許連接器的 VM 執行個體透過特定通訊埠,將流量傳送至 Google 的基礎無伺服器基礎架構 (35.199.224.0/19) aet-CONNECTOR_REGION-CONNECTOR_NAME-earfw 輸出 允許 100 TCP:667、UDP:665-666、ICMP
封鎖連接器 VM 執行個體傳送至 Google 基礎無伺服器架構 (35.199.224.0/19) 的所有其他通訊埠的流量 aet-CONNECTOR_REGION-CONNECTOR_NAME-egrfw 輸出 拒絕 100 TCP:1-666、668-65535、UDP:1-664、667-65535
允許連接器的 VM 執行個體 (根據其 IP 位址) 將所有流量傳送至連接器 VPC 網路中的所有資源 aet-CONNECTOR_REGION-CONNECTOR_NAME-sbntfw Ingress 允許 1000 TCP、UDP、ICMP
允許連接器的 VM 執行個體 (根據網路標記) 將所有流量傳送至連接器 VPC 網路中的所有資源 aet-CONNECTOR_REGION-CONNECTOR_NAME-tagfw Ingress 允許 1000 TCP、UDP、ICMP

您可以使用虛擬私有雲防火牆規則或防火牆政策中的規則,進一步限制連接器對目標虛擬私有雲網路資源的存取權。新增防火牆規則時,請務必使用優先順序高於 100 的規則,以免與 Google Cloud設定的隱藏防火牆規則發生衝突。詳情請參閱「限制連接器 VM 存取 VPC 網路資源」。

共用虛擬私有雲服務專案中連接器的防火牆規則

如果您在服務專案中建立連接器,且連接器指定主機專案中的共用虛擬私有雲網路,就必須新增防火牆規則,允許連接器運作所需的流量。

您也可以使用 VPC 防火牆規則或防火牆政策中的規則,限制連接器對目標虛擬私有雲網路中的資源存取權。詳情請參閱「存取虛擬私有雲資源」。

總處理量和資源調度

無伺服器虛擬私有雲存取連接器由連接器執行個體組成。連接器執行個體可使用多種機器類型中的其中一種。較大的機器類型可提供較高的處理量。您可以在 Google Cloud 控制台和下表中,查看各機器類型的預估傳輸量和費用。

機型 預估總處理量範圍 (以 Mbps 為單位)* 價格
(連接器執行個體加上網路傳出資料移轉費用)
f1-micro 100-500 f1-micro 定價
e2-micro 200-1000 e2-micro 價格
e2-standard-4 3200-16000 e2 standard 定價

*最大處理量範圍是根據一般運作情況估算而得。實際傳輸量取決於多項因素。請參閱「VM 網路頻寬」。

您可以設定連接器允許的連接器執行個體數量下限和上限。最小值不得小於 2。上限為 10,且必須大於下限。如果您未指定連接器的執行個體數量下限和上限,系統會採用預設值,即下限為 2,上限為 10。當 Google 執行每兩週一次的維護作業 (例如安全性更新) 時,連接器可能會暫時超過設定的執行個體數量上限。在維護期間,我們可能會新增其他執行個體,確保服務不中斷。維護作業完成後,連接器會恢復為維護期間前的執行個體數量。維護作業通常只會進行幾分鐘。為減少維護期間的影響,請使用連線集區,並不要依賴連線持續超過一分鐘。執行個體會在關閉前停止接受要求。

隨著流量增加,無伺服器虛擬私有雲存取會自動擴充連接器中的執行個體數量。新增的例項會採用您為連接器指定的類型。連接器不得混用機器類型。連接器不會縮減資源,為避免連接器擴充的執行個體數量超出預期,請將執行個體數量上限設為較低的數字。如果連接器已擴充,而您希望執行個體數量較少,請重新建立連接器,並設定必要的執行個體數量。

範例

如果您為機器類型選擇 f1-micro,並使用預設的執行個體數量下限和上限值 (分別為 2 和 10),則連接器的預估傳輸量為 100 Mbps (在預設的執行個體數量下限) 和 500 Mbps (在預設的執行個體數量上限)。

處理量圖表

您可以在Google Cloud 控制台的「連接器詳細資料」頁面中,監控目前的傳輸量。這個頁面上的「處理量圖表」會顯示連接器的處理量指標詳細資料。

網路標記

無伺服器虛擬私人雲端存取網路標記可讓您在防火牆規則路徑中參照虛擬私有雲連接器。

每個無伺服器虛擬私有雲端存取連接器都會自動接收下列兩個網路標記 (有時稱為「例項標記」):

  • 通用網路標記 (vpc-connector):適用於所有現有的連接器,以及日後建立的任何連接器。

  • 專屬網路標記 (vpc-connector-REGION-CONNECTOR_NAME):適用於區域 REGION 中的連接器 CONNECTOR_NAME

這些網路標記無法刪除。無法新增新的網路標記。使用網路標記來限制連接器 VM 對虛擬私有雲資源的存取權

用途

您可以使用無伺服器虛擬私人雲端存取功能存取 Compute Engine VM 執行個體、Memorystore 執行個體,以及任何其他具有內部 DNS 或內部 IP 位址的資源。以下列舉幾個例子:

  • 您使用 Memorystore 儲存無伺服器服務的資料。
  • 您的無伺服器工作負載使用在 Compute Engine VM 執行的第三方軟體。
  • 您在 Compute Engine 的代管執行個體群組中執行後端服務,且需要讓無伺服器環境在不暴露至網際網路的情況下,與此項後端通訊。
  • 您的無伺服器環境需要透過 Cloud VPN 存取內部部署資料庫中的資料。

範例

在這個範例中, Google Cloud 專案會在下列無伺服器環境中執行多項服務:App Engine、Cloud Run 函式和 Cloud Run。

已建立無伺服器虛擬私有雲存取連接器,並指派 IP 範圍 10.8.0.0/28。因此,從連接器傳送的任何要求來源 IP 位址都會位於這個範圍內。

虛擬私有雲網路中有兩個資源。其中一個資源具有內部 IP 位址 10.0.0.4。另一個資源具有內部 IP 位址 10.1.0.2,且位於與無伺服器虛擬私有雲存取連接器不同的區域。

連接器會直接透過這些內部 IP 位址處理傳送和接收要求與回應。當連接器向內部 IP 位址 10.1.0.2 的資源傳送要求時,由於該資源位於其他區域,因此會產生資料傳出費用

無伺服器環境與虛擬私有雲網路資源之間的所有要求和回應都會在內部傳送。

傳送至外部 IP 位址的要求仍會透過網際網路傳送,且不會使用無伺服器虛擬私人雲端存取連接器。

下圖說明的就是這項設定。

無伺服器虛擬私有雲存取範例。
無伺服器虛擬私有雲存取範例 (按一下可放大)。

定價

如要瞭解無伺服器虛擬私人雲端存取的定價,請參閱 VPC 定價頁面中的「 無伺服器虛擬私人雲端存取」。

支援的服務

下表列出您可以透過無伺服器虛擬私有雲端存取連接到哪些類型的網路:

連線服務 支援無伺服器虛擬私有雲存取
虛擬私人雲端
共用虛擬私有雲
舊版網路
連線至 Cloud Interconnect 的網路
連線至 Cloud VPN 的網路
已連線至 VPC 網路對等互連的網路

下表列出支援無伺服器虛擬私人雲端存取的無伺服器環境:

無伺服器環境 支援無伺服器虛擬私有雲存取
Cloud Run
Knative serving*
Cloud Run functions
App Engine 標準環境 除了 PHP 5 以外的所有執行階段
App Engine 彈性環境*

*如果您想在從 Knative 服務或 App Engine 彈性環境連線時使用內部 IP 位址,不需要設定無伺服器虛擬私人雲端存取。只要確保服務部署在可連線至所需資源的虛擬私有雲端網路即可。

支援的網路通訊協定

下表說明無伺服器虛擬私有雲端存取連接器支援的網路通訊協定。

通訊協定 僅將要求透過連接器轉送至私人 IP 透過連接器轉送所有流量
TCP
UDP
ICMP 僅支援外部 IP 位址

支援的地區

支援無伺服器虛擬私有雲存取連接器的地區,必須支援 Cloud Run、Cloud Run 函式或 App Engine 標準環境。

如要查看可用地區,請按照下列步驟操作:

gcloud compute networks vpc-access locations list

後續步驟