微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在来自第三个项目的两个不同项目上启用到两个 Cloud SQL 实例的私有 IP 连接?

如何解决如何在来自第三个项目的两个不同项目上启用到两个 Cloud SQL 实例的私有 IP 连接?

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

我的方案最终演变为将构建服务器移到一个单独的项目中。由于 lack of transitive peering,我创建了一个共享 VPC,其中我的 Cloud sql 项目被视为宿主项目,而我的构建服务器项目被视为服务项目。这一切都很好。

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

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

而我希望生产和暂存项目都成为我的构建服务器服务项目的宿主项目。

有没有办法满足这两个要求?

  1. 将我的构建服务器、生产环境和暂存环境作为三个独立的项目。
  2. 在我的构建服务器与生产和临时数据库之间建立专用 IP 连接。

我也愿意接受对我在此处概述的设置的批评/反馈,因为在一天结束时,我仅根据我目前所知道和设置的内容得出上述要求。

解决方法

解决方案是为构建服务器和 2 个数据库(生产和暂存)使用相同的 VPC。问题在于可能导致问题的环境不隔离。

我有 2 个提议来改变/调整设计:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。