在GCP云运行/功能上使用固定的公共IP(将其列入白名单)

时间:2020-04-11 10:12:57

标签: google-app-engine google-cloud-platform google-cloud-functions google-cloud-run

我正在寻找将应用程序部署到GCP的最佳方法。此应用程序需要使用微服务(在Cloud Run或Cloud Function上运行)在远程数据库上执行SQL代码。

基本上,微服务接收到一段SQL代码,需要在远程数据库上执行它。出于安全原因,远程数据库必须将应用程序用来连接到该数据库的IP地址列入白名单。

在GCP上,拥有一个固定的公共IP地址的最佳方法是什么,远程DB可以将其列入白名单?考虑到我要使用Cloud Run或Cloud Function。

NB:我知道使用GKE的解决方案。或在AWS上,使用Lambda + NAT实例。

谢谢!

1 个答案:

答案 0 :(得分:3)

您有几种解决方案可以实现这一目标

  • 在GKE上使用Cloud Run。在这种情况下,您将VM放在VPC上,就知道它们的IP。但是,您有多个公用IP,并且如果VM重新启动,则IP会更改。好的模式是将公共IP删除到VM,并部署Cloud Nat以将所有出口流量映射到单个外部(和公共)IP。
  • 使用云功能。在这种情况下,您必须添加一个附加组件:Serverless VPC Access。该组件允许路由源自无服务器组件的流量(全部或仅私有目标IP)。因此,您的请求将遍历此元素并进入您的VPC。然后,像以前一样,configure a Cloud Nat for mapping the external IP into a static and public IP

无服务器VPC访问可与AppEngine和Cloud Function一起使用。 Cloud Run应该在2020年符合要求。

最后一个选择:在两种情况下,我们都使用Cloud Nat通过静态IP在公共互联网上运行。您可以想象在VPC和On Prem网络(托管数据库的地方)之间建立VPN,这样,您就无需白名单,所有通信都在同一个虚拟专用网络内