我正在寻找将应用部署到 GCP 的最佳方法。该应用程序需要使用微服务(在Cloud Run或Cloud Function上运行)在远程数据库上执行SQL代码。
基本上,微服务接收一段 SQL 代码,并需要在远程数据库上执行它。出于安全原因,远程数据库必须将应用程序用于连接它的 IP 地址列入白名单。
在 GCP 上,拥有固定的公共 IP 地址(远程数据库可以将其列入白名单)的最佳方式是什么?考虑到我想使用Cloud Run或Cloud Function。
注意:我知道使用 GKE 的解决方案。或者在 AWS 上,使用 Lambda + NAT 实例。
Thanks !
您有多种解决方案可以实现这一目标
- 在 GKE 上使用 Cloud Run。在这种情况下,您的虚拟机位于 VPC 上,您知道它们的 IP。但是,您有多个公共 IP,并且如果虚拟机重新启动,IP 就会发生变化。好的模式是删除虚拟机的公共 IP,并部署一个云网络用于将所有出口流量映射到单个外部(和公共)IP。
- 使用云函数。在这种情况下,您必须添加一个附加组件:无服务器 VPC 访问。该组件允许路由源自无服务器组件的流量(全部或仅私有目标 IP)。因此,您的请求将通过此元素并进入您的 VPC。然后,和之前一样,配置 Cloud Nat 以将外部 IP 映射为静态公共 IP.
无服务器 VPC 访问可与 AppEngine 和 Cloud Function 配合使用。 Cloud Run 应该会在 2020 年兼容它。
最后一种选择:在这两种情况下,我们都使用 Cloud Nat 通过静态 IP 访问公共互联网。您可以想象在您的 VPC 和本地网络(托管您的数据库的位置)之间设置一个 VPN,这样您就无需将任何内容列入白名单,所有通信都在同一个虚拟专用网络内
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)