將無伺服器流量傳送至虛擬私有雲網路
建議您啟用 Cloud Run 服務或作業,使用直接虛擬私有雲輸出將流量傳送至虛擬私有雲網路,不需無伺服器虛擬私有雲存取連接器。
不過,如果無法使用直接虛擬私有雲輸出功能,您可以透過無伺服器虛擬私有雲存取,從 Cloud Run 和 App Engine 等無伺服器環境直接連線至虛擬私有雲網路。設定無伺服器虛擬私有雲存取後,無伺服器環境就能使用內部 DNS 和內部 IP 位址 (如 RFC 1918 和 RFC 6598 所定義),將要求傳送至虛擬私有雲網路。這些要求的相關回應也會使用內部網路。
使用無伺服器 VPC 存取有兩大優點:
- 傳送至虛擬私有雲網路的要求絕不會暴露在網際網路上。
- 相較於網際網路,透過無伺服器虛擬私有雲存取進行通訊的延遲時間可能較短。
只有在無伺服器環境透過無伺服器虛擬私有雲存取連接器傳送要求,且虛擬私有雲網路的內部流量是該要求的回應時,無伺服器虛擬私有雲存取才會將該流量傳送至無伺服器環境。如要瞭解如何傳送其他內部流量,請參閱私人 Google 存取權。
如要存取多個虛擬私有雲網路和Google Cloud 專案中的資源,您也必須設定共用虛擬私有雲或虛擬私有雲網路對等互連。
運作方式
無伺服器虛擬私人雲端存取以名為「連接器」的資源為基礎。連接器會處理無伺服器環境與 VPC 網路之間的流量。在Google Cloud 專案中建立連接器時,您要將其附加至特定虛擬私有雲網路與地區。然後,您可以將無伺服器服務設定為針對輸出網路流量使用連接器。
IP 位址範圍
設定連接器 IP 位址範圍的方式有兩種:
- 子網路:如果沒有任何資源已使用子網路,您可以指定現有的
/28
子網路。 - CIDR 範圍:您可以指定未使用的
/28
CIDR 範圍。指定這個範圍時,請確保不會與任何使用中的 CIDR 範圍重疊。
透過連接器傳送至虛擬私有雲網路的流量,會來自您指定的子網路或 CIDR 範圍。
防火牆規則
防火牆規則是連接器運作及與其他資源 (包括網路中的資源) 通訊的必要條件。
獨立虛擬私有雲網路或共用虛擬私有雲主專案中連接器的防火牆規則
如果您在獨立的虛擬私有雲網路中,或在共用虛擬私有雲網路的主專案中建立連接器, Google Cloud 會建立所有必要的防火牆規則。只要相關聯的連接器存在,這些防火牆規則就會存在。這些規則會顯示在 Google Cloud 控制台中,但您無法編輯或刪除。
防火牆規則用途 | 姓名格式 | 類型 | 動作 | 優先順序 | 通訊協定和通訊埠 |
---|---|---|---|---|---|
允許特定通訊埠上,來自健康狀態檢查探測器範圍 (35.191.0.0/16 、130.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 位址) 的所有流量,傳輸至連接器虛擬私有雲網路中的所有資源 | aet-CONNECTOR_REGION-CONNECTOR_NAME-sbntfw |
Ingress | 允許 | 1000 | TCP、UDP、ICMP |
允許連接器 VM 執行個體 (根據網路標記) 的所有流量,傳送至連接器虛擬私有雲網路中的所有資源 | aet-CONNECTOR_REGION-CONNECTOR_NAME-tagfw |
Ingress | 允許 | 1000 | TCP、UDP、ICMP |
您可以使用虛擬私有雲防火牆規則或防火牆政策中的規則,進一步限制連接器對目標虛擬私有雲網路中資源的存取權。新增防火牆規則時,請務必使用高於 100 的優先順序,以免與 Google Cloud設定的隱藏防火牆規則發生衝突。詳情請參閱「限制連接器 VM 存取虛擬私有雲網路資源」。
共用虛擬私有雲服務專案中連接器的防火牆規則
如果您在服務專案中建立連接器,且連接器以主專案中的共用虛擬私有雲網路為目標,則必須新增防火牆規則,允許連接器運作所需的流量。
您也可以使用虛擬私有雲防火牆規則或防火牆政策中的規則,限制連接器存取目標虛擬私有雲網路中的資源。詳情請參閱「存取虛擬私有雲資源」。
總處理量和擴充
無伺服器虛擬私有雲存取連接器由連接器執行個體組成。連接器執行個體可使用多種機型。較大的機器類型可提供更多處理量。您可以在 Google Cloud 控制台和下表中,查看各機型的預估輸送量和費用。
機型 | 預估總處理量範圍 (Mbps)* | 價格 (連接器執行個體加上網路輸出資料移轉費用) |
---|---|---|
f1-micro |
100-500 | f1-micro 定價 |
e2-micro |
200-1000 | e2-micro 價格 |
e2-standard-4 |
3200-16000 | e2 標準價格 |
* 最大處理量範圍是根據一般作業預估而來。實際輸送量取決於多項因素,請參閱「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 位址的要求仍會透過網際網路傳送,不會使用無伺服器虛擬私有雲存取連接器。
下圖說明的就是這項設定。
定價
如要瞭解無伺服器虛擬私有雲存取定價,請前往虛擬私有雲定價頁面,參閱「無伺服器虛擬私有雲存取」一節。
支援的服務
下表列出可透過無伺服器虛擬私有雲存取連線的網路類型:
連線服務 | 無伺服器虛擬私有雲存取支援 |
---|---|
虛擬私人雲端 | |
共用虛擬私有雲 | |
舊版網路 | |
連線至 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 functions 或 App Engine 標準環境的區域。
如要查看可用地區,請按照下列步驟操作:
gcloud compute networks vpc-access locations list
後續步驟
- 如要設定無伺服器虛擬私有雲存取,請參閱「設定無伺服器虛擬私有雲存取」。