Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 如何在第三个项目的两个独立项目上启用到两个云SQL实例的私有IP连接?_Google Cloud Platform_Google Cloud Sql_Vpc - Fatal编程技术网

Google cloud platform 如何在第三个项目的两个独立项目上启用到两个云SQL实例的私有IP连接?

Google cloud platform 如何在第三个项目的两个独立项目上启用到两个云SQL实例的私有IP连接?,google-cloud-platform,google-cloud-sql,vpc,Google Cloud Platform,Google Cloud Sql,Vpc,我的场景一开始需要从构建服务器(在同一项目中作为计算引擎实例运行)对云SQL进行私有IP访问。对于某些上下文,如果部署的工件需要新行/表,则我的构建服务器连接到云SQL以执行DDL SQL语句(基于init.SQL之间的差异的自动SQL迁移,该差异是我的存储库和目标数据库上的模式的一部分)。我在云SQL数据库使用的VPC GCP和为我的计算引擎实例显式创建的VPC之间使用VPC对等连接完成了这一点 我的场景最终演变为将构建服务器移动到一个单独的项目中。因为,我创建了一个共享VPC,其中我的云SQ

我的场景一开始需要从构建服务器(在同一项目中作为计算引擎实例运行)对云SQL进行私有IP访问。对于某些上下文,如果部署的工件需要新行/表,则我的构建服务器连接到云SQL以执行DDL SQL语句(基于
init.SQL
之间的差异的自动SQL迁移,该差异是我的存储库和目标数据库上的模式的一部分)。我在云SQL数据库使用的VPC GCP和为我的计算引擎实例显式创建的VPC之间使用VPC对等连接完成了这一点

我的场景最终演变为将构建服务器移动到一个单独的项目中。因为,我创建了一个共享VPC,其中我的云SQL项目被视为主机项目,而我的构建服务器项目被视为服务项目。这一切都很好

我已经将构建服务器移动到一个单独的项目中,最终目标是为我的登台环境创建第三个项目。然后我计划在我的构建服务器和另外两个项目之间启用私有IP连接。然而,现在我正在尝试添加我的登台环境,我发现这是不可能的,因为根据以下内容:

可以创建和使用多个主体项目;但是,每个服务项目只能附加到单个主项目

然而,我希望生产项目和临时项目都是构建服务器服务项目的宿主项目

是否有满足这两个要求的方法

  • 将我的构建服务器、生产环境和临时环境作为三个独立的项目
  • 在我的生成服务器与生产数据库和临时数据库之间具有专用IP连接

  • 我也愿意接受关于我在这里概述的设置的批评/反馈,因为在一天结束时,我仅从我所知道的和迄今为止设置的内容中得出上述要求。

    解决方案是为构建服务器和两个数据库(prod和staging)提供相同的VPC。问题在于可能导致问题的环境的非隔离性

    我有两个建议来改变/调整设计:

    • 保持环境相同:1个用于生产,1个用于暂存。2个不同的项目,隔离性强,易于复制,因为两种环境的设计相同。但是更贵
    • 在云SQL数据库上保留公共IP,并使用云SQL代理访问它们。您获得了一个加密的通道,您的网络不再与对等网络、私有网络和共享专有网络紧密相连。拥有公共IP并不意味着拥有授权网络。您不授权网络(类似于防火墙规则0.0.0.0/0拒绝所有),您只有一个公共IP

    嘿,纪尧姆,谢谢你的回复。关于#1,我认为这就是我现在拥有的。但是你说这是一个经过修改/改编的设计,那么你能澄清什么部分不同于原始设计,以及专有网络如何跨越3个项目吗?关于#2,这看起来是一个非常好的解决方案。代理是驻留在构建服务器项目中并连接到不同项目中数据库的公共IP,还是驻留在与数据库相同的项目中,然后构建服务器将对等到代理中?在#1中,您不能只有一个构建项目(正如我在您的描述中所理解的)。您还需要复制构建部分。对于#2,打开使用它的隧道;因此在构建服务器上。啊,我明白了,因为#1你说我必须有两个构建服务器项目,每个项目都有一个与各自环境共享的VPC。我希望只使用一个构建服务器,因此我将在接下来的几天内尝试使用#2。谢谢你的跟进。