本頁面說明如何設定,讓 App Engine 彈性環境服務只在其內部 IP 位址上公開。
根據預設,彈性環境服務在首次部署時會同時收到內部 IP 位址和臨時外部 IP 位址。使用暫時性外部 IP 位址可讓服務將要求傳送至具有自訂網域的 App Engine 服務,以及網際網路上的資源。臨時外部 IP 位址會產生費用。
如果您的服務不需要外部 IP 位址,您可以限制服務僅使用內部 IP 位址,藉此防止服務傳送要求至網際網路上的資源,並降低成本。這不會阻止服務接收來自網際網路或具有自訂網域的 App Engine 服務的要求,因為服務的完整網域名稱仍會對外公開。
限制
停用臨時外部 IP 位址時,會受到以下限制:
- 含有自訂網域的服務:如要將要求傳送至含有自訂網域的 App Engine 服務,您必須設定 Cloud NAT。
- 外部資源:如要傳送要求至外部資源,您必須設定 Cloud NAT。
- 私人 Google 存取權依附元件:如果執行個體的 IP 模式設為 internal,則需要在目標子網路上設定私人 Google 存取權。
- 舊版網路: 舊版網路無法使用私人 Google 存取權,因此無法停用暫時性外部 IP 位址。
事前準備
如要部署沒有外部 IP 位址的彈性環境應用程式,您必須在目標子網路上啟用私人 Google 存取權。
- 如要瞭解私人 Google 存取權,請參閱總覽。
- 如需逐步設定操作說明,請參閱啟用私人 Google 存取權。
準備共用虛擬私有雲網路
如果您使用共用虛擬私有雲,請按照下列步驟準備共用虛擬私有雲網路,以便進一步設定。
- 確認您有與私人 Google 存取權相容的路線。通常,網路的預設路徑與私人 Google 存取權相容。針對其他路線,請確認路線的設定如下: - Network: SHARED_VPC_NETWORK_NAME Destination IP address range: 0.0.0.0/0 Instance tags: INSTANCE_TAGS Next hop: DEFAULT_INTERNET_GATEWAY - 更改下列內容: - SHARED_VPC_NETWORK_NAME:共用虛擬私有雲網路的名稱。
- INSTANCE_TAGS:如果您不使用任何執行個體標記,請不要在這個欄位中指定任何項目。如果您使用執行個體標記,請在執行個體標記清單中加入- aef-instances。
- DEFAULT_INTERNET_GATEWAY:預設的網際網路閘道。
 - 如要進一步瞭解私人 Google 存取權支援的路徑,請參閱私人 Google 存取權說明文件中的路徑選項。 
- 確認您有與私人 Google 存取權相容的防火牆規則。防火牆規則必須設為以下方式。 - Network: SHARED_VPC_NETWORK_NAME Destination IP address range: 0.0.0.0/0 Destination filter: IP ranges Direction of traffic: Egress Attach on match: Allow Instance tags: INSTANCE_TAGS - 更改下列內容: - SHARED_VPC_NETWORK_NAME:共用虛擬私有雲網路的名稱。
- INSTANCE_TAGS:如果您不使用任何執行個體標記,請勿在這個欄位中指定任何項目。如果您使用執行個體標記,請在執行個體標記清單中加入- aef-instances。
 - 如要進一步瞭解私人 Google 存取權的相容防火牆規則,請參閱私人 Google 存取權的防火牆設定說明文件。 
設定服務只使用內部 IP 位址
- 更新 Google Cloud CLI。這樣就能確保您使用的是支援彈性環境應用程式私人 IP 位址的 gcloud CLI 版本。 - gcloud components update 
- 在 - app.yaml檔案中,將- instance_ip_mode欄位新增至- network區段,並將其設為- internal。- 如果 - app.yaml檔案已包含- network區段,請在- network區段中新增以下行:- instance_ip_mode: internal
- 如果 - app.yaml檔案沒有- network區段,請建立該區段,並新增下列行來指定執行個體 IP 模式:- network: instance_ip_mode: internal 
 - 儲存變更。 
- 部署服務。 - gcloud beta app deploy 
- 如要驗證設定,請查看 Google Cloud 控制台的「Instances」頁面。 - 向下捲動至「Instances」表格 (位於「Summary」圖表下方)。在「外部 IP」欄中,確認沒有列出任何 IP 位址。如果這個欄沒有 IP 位址,表示執行個體沒有外部 IP 位址。即使這個欄位為空白,執行個體仍會有內部 IP 位址。 
傳送不含外部 IP 位址的外部要求
如果您的服務會傳送要求至網際網路,但您希望限制服務只能使用內部 IP 位址,可以使用 Cloud NAT 建立閘道。您的服務可以透過 Cloud NAT 閘道傳送外部要求,而不需要使用預設的暫時性外部 IP 位址。
- 請按照「設定服務僅使用內部 IP 位址」一節中的步驟操作。 
- 請按照這篇文章的步驟設定 Cloud NAT。 
如要進一步瞭解這種做法,請參閱 Cloud Architecture Center 說明文件,瞭解如何部署 Cloud NAT 以便擷取資料。