连接Google App Engine和Google Compute Engine

时间:2017-11-15 13:32:16

标签: google-app-engine google-cloud-platform google-compute-engine

我在Google App Engine标准环境中的Googl Compute Engine和app中创建了一个VM实例。我打算在App Engine中使用我的应用程序,在计算引擎中使用我的数据库服务器。但是,我无法通过内部IP连接两者。这可能吗? app和db位于同一区域(us-east1),但IP连接不起作用,只能使用外部IP。显然,防火墙规则是正确的。

3 个答案:

答案 0 :(得分:3)

要通过专用IP进行连接,您需要应用和数据库位于同一网络中。 您无法通过应用引擎标准实现这一点,您需要app engine flex(请参阅here如何设置应用引擎Flex实例的网络)

答案 1 :(得分:2)

  

April 9, 2019开始,您可以使用无服务器的VPC connector

这将使您的App Engine应用程序可以连接到Google Cloud Platform上VPC网络中的其他内部资源,例如Compute Engine VM实例,Cloud Memorystore实例以及具有内部IP地址的任何其他资源< / strong>。

要创建连接器:

$ gcloud services enable vpcaccess.googleapis.com
$ gcloud beta compute networks vpc-access connectors create CONNECTOR_NAME \
--network VPC_NETWORK --region REGION --range IP_RANGE
$ gcloud beta compute networks vpc-access connectors describe CONNECTOR_NAME --region REGION

注意:您可以在Google Cloud Platform Console中查看当前保留的IP范围。您可以选择要用于连接器的任何未使用的CIDR / 28 IP范围,例如10.8.0.0/28。

$ gcloud beta compute networks vpc-access connectors create my-vpc-connector \
--region=us-central1 --range=10.8.0.0/28
Create request issued for: [my-vpc-connector]
Waiting for operation [xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx] to complete...done.  
Created connector [my-vpc-connector]

要将连接器连接到服务,请将其添加到服务的 app.yaml 文件中:

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

部署服务:

$ gcloud beta app deploy

注意:要使用无服务器VPC访问,请确保使用gcloud beta部署服务。您可以通过运行 gcloud组件安装beta 来访问Beta命令。

部署服务后,它可以将请求发送到Internal IP addressesDNS Names,以便访问VPC Networks中的资源。万一遇到任何麻烦,请等待大约一小时或更长时间,以使连接器在GCP全球网络中完全传播。

答案 2 :(得分:1)

您必须使用Compute Engine实例上运行的服务的外部IP地址进行连接。 App Engine标准环境与计算引擎实例位于不同的网络上,并且当前没有彼此的私有IP访问权限。如果相关成本合理,则可以在灵活环境中切换到应用程序(或应用程序服务)。