連線到虛擬私人雲端網路

Serverless VPC Access 可讓您從 App Engine 應用程式直接連線至 Compute Engine VM 執行個體、Cloud Memorystore 執行個體、Cloud SQL 執行個體,以及任何其他具有內部 IP 位址的資源。 這對以下情況相當實用:

  • 您在 Compute Engine 中的代管執行個體群組執行後端服務,且需要在不暴露至公共網際網路的情況下,讓應用程式與此項服務通訊。
  • 您的應用程式使用在 Compute Engine VM 執行的第三方軟體。
  • 您使用 Cloud Memorystore 儲存 App Engine 應用程式資料。
  • 您的應用程式需要透過 Cloud VPN 從內部部署資料庫存取資料。

使用 Serverless VPC Access 時,從應用程式傳送至內部 IP 位址的要求 (如 RFC 1918 所定義) 會透過 Serverless VPC Access 連接器轉送至虛擬私人雲端網路,而傳送至公開 IP 位址的要求則會透過網際網路來轉送。內部 IP 位址僅能由 Google Cloud Platform 服務存取,因此使用內部 IP 位址可避免讓內部資源暴露至公共網際網路,此外也能縮短服務之間的通訊延遲。

針對透過 Cloud VPN虛擬私人雲端網路對等互連進行連線的虛擬私人雲端網路,無伺服器虛擬私人雲端存取可支援與其通訊,不過無伺服器虛擬私人雲端存取不支援舊版網路共用的虛擬私人雲端網路。Serverless VPC Access 連接器採用按月付費的計費方式。詳情請參閱 Serverless VPC Access 定價一節。

連線至您的虛擬私人雲端網路

將 App Engine 應用程式連線至虛擬私人雲端網路包含兩個步驟:

  1. 建立 Serverless VPC Access 連接器
  2. 設定 App Engine 服務使用連接器

Serverless VPC Access 連接器所在的專案及地區,必須與使用該連接器的應用程式相同,但連接器可將流量傳送至位於不同地區的資源。多個 App Engine 服務可使用相同連接器。如要進一步瞭解連接器,請參閱設定 Serverless VPC Access 一文。

建立連接器

您可利用 GCP Console 或 gcloud 指令列工具建立連接器。

主控台

  1. 前往「Serverless VPC Access」(無伺服器虛擬私人雲端存取) 總覽頁面。

    前往「Serverless VPC Access」(無伺服器虛擬私人雲端存取)

  2. 按一下 [Create connector] (建立連接器)

  3. 在「Name」(名稱) 欄位中,輸入連接器的名稱。

  4. 在「Region」(地區) 欄位中,選取應用程式所在的地區。

  5. 在「Network」(網路) 欄位中,選取要連線的虛擬私人雲端網路。

  6. 在「IP range」(IP 範圍) 欄位中,輸入未使用的 CIDR /28 IP 範圍。這個範圍中的位址會用來當做透過連接器傳送的流量的來源位址。這個 IP 範圍不得與虛擬私人雲端網路中的任何現有 IP 位址保留項目重疊。

  7. (選用) 您可在「Minimum throughput」(最小總處理量) 與「Maximum throughput」(總輸出量上限) 欄位設定值,以控制連接器的總處理量。

  8. 按一下 [Create] (建立)。

若連接器準備好可供使用,其名稱旁邊會顯示一個綠色勾號。

gcloud

  1. 使用下列指令為專案啟用 Serverless VPC Access API:

    gcloud services enable vpcaccess.googleapis.com
    
  2. 建立連接器:

    gcloud beta compute networks vpc-access connectors create CONNECTOR_NAME \
    --network VPC_NETWORK \
    --region REGION \
    --range IP_RANGE
    

    其中:

    • CONNECTOR_NAME 為連接器名稱。
    • VPC_NETWORK 為要連線的虛擬私人雲端網路。
    • REGION 為應用程式的所在地區。
    • IP_RANGE 為未使用的 CIDR /28 IP 範圍。這個範圍中的位址會用來當做透過連接器傳送的流量的來源位址。這個 IP 範圍不得與虛擬私人雲端網路中的任何現有 IP 位址保留項目重疊。
  3. 先驗證您的連接器是否處於 READY 狀態,然後再使用:

    gcloud beta compute networks vpc-access connectors describe CONNECTOR_NAME --region REGION
    

    輸出應包含 state: READY 指令列。

如果您在建立連接器時發生錯誤,請嘗試下列方式,然後重新建立連接器:

  • 指定 IP 範圍時,請確保該範圍並未與虛擬私人雲端網路中已保留的 IP 位址重疊。
  • 授予專案權限,以便從 ID 為 serverless-vpc-access-images 的專案中使用 Compute Engine VM 映像檔。如要瞭解如何據此更新組織政策,請參閱設定映像檔存取限制一文。

將應用程式設定為使用連接器

建立 Serverless VPC Access 連接器後,您就可以讓 App Engine 應用程式中的服務使用這個連接器。多個服務可使用同一個連接器。

如要將連接器連線至應用程式中的服務:

  1. vpc_access_connector 區段新增至服務的 app.yaml 檔案:

    vpc_access_connector:
      name: "projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME"
    

    其中 PROJECT_ID 是 GCP 專案的 ID,而 REGIONCONNECTOR_NAME 則是您在建立連接器時選擇的地區和名稱。請注意,連接器與應用程式必須位於相同地區。

  2. 部署服務:

    gcloud beta app deploy
    

您重新部署服務後,即可傳送要求至內部 IP 位址,以存取虛擬私人雲端網路中的資源。

中斷應用程式與連接器的連線

如果應用程式不再需要連線到虛擬私人雲端網路,您就可以中斷與 Serverless VPC Access 連接器的連線。

如要中斷服務與連接器的連線:

  1. 從服務的 app.yaml 檔案中移除 vpc_access_connector 區段。

  2. 重新部署服務:

    gcloud app deploy
    

後續步驟