我的理解是Google Cloud SQL(MySQL / Postgres)实例在后台使用了Compute Engine。同一台VPC中的两个计算引擎可以通过内部IP地址进行通信。在类似的行上,如果在Zone1中配置了计算引擎,并且在同一Zone1中配置了Cloud SQL实例,则这并不意味着Compute Engine和Cloud SQL在同一个VPC中(因为在使用Cloud SQL时不会创建新的VPC)设置),为什么外部计算引擎无法通过内部IP访问云SQL?我从文档中看到的是,总是通过外部IP地址访问Cloud SQL。使用静态IP地址会产生出口成本吗?
谢谢 马赫什
答案 0 :(得分:0)
您在项目中创建的Cloud SQL实例和GCE实例不在同一VPC网络中,因为Cloud SQL是托管服务,因此Cloud SQL实例位于不同的项目中。
此[beta功能](https://cloud.google.com/sql/docs/postgres/private-ip)允许您通过私有IP连接到Cloud SQL实例,但是您必须使用私有服务访问权限。私有服务访问是通过VPC网络与Cloud SQL实例所驻留的Google服务VPC网络之间的VPC对等连接实现的。使用私有服务访问的IP流量永远不会暴露给公共Internet。 此[文档](https://cloud.google.com/sql/docs/postgres/private-ip)提供有关使用专用IP连接到Cloud SQL实例的详细信息。
在将Cloud SQL实例配置为使用私有IP之前,您需要采取一些步骤。document提供了有关将实例配置为使用私有IP的逐步说明。
根据出口费用,如here中所述,当出口到同一区域或同一区域内的不同Google Cloud Platform服务(在本例中为Cloud SQL)时,不收取任何费用。
答案 1 :(得分:0)
实际上,Compute Engine和Cloud SQL都位于不同的子网中。 Cloud SQL将从“专用服务连接”分配的IP范围中获取IP,GCE将从VPC子网获取私有IP。要进行连接,您需要在两个子网之间建立连接。
要从Compute Engine连接Cloud SQL-您需要在VPC设置中创建“私人服务连接”。 即,为SQL分配IP范围RFC 1918(由Google管理的IP或您自己)+在GCE子网和分配的IP范围之间创建“连接”。