Google Cloud Function函数访问AWS的Redis服务(一)
很久很久以前,几家的redis可以通过设置白名单ip,公开访问redis服务。现在所有的redis都进行了隔离,无法相互访问。
我在aws上有台redis服务。现在我希望Google Cloud Function能访问它。两边进行VPN搭建通道,之前搭建的动态通道没有搞定,这里是使用的VPN静态路由来处理的。
google 访问 AWS的服务,使用VPN静态路由链接两个服务。
一:在google Cloud搞一个公共ip:
我最开始在 VPC网络->IP地址新建了个IP,没用上。这里给定一个方案。
在google cloud中搜索 Network Connectivity->VPN:新建VPN -> 选择传统VPN (高可用性那个没有搞定他)-> 在: Google Compute Engine VPN 网关中 创建IP地址。记录下这个ip地址。
后面的操作先不用动,google cloud的操作就先停留在这里。


二:在AWS中创建VPN
1:aws里面创建redis自己处理,这里默认已经创建好了redis了。
2:创建VPN:
VPN面板-》虚拟专用网络-》客户网关:创建一个客户网关,IP 地址 填写上面记录的google Cloud VPN 的那个ip地址,其他默认。
-》 虚拟私有网关:新建网络,取个名字就行,其他默认。ASN码只有动态路由时才会有用,我这里vpn使用静态处理,所以默认就行。
注意:虚拟私有网关创建成功后,需要连接到VPC(你redis所在的VPC):

VPN面板-》站点到站点VPN链接-》创建 VPN 连接:图中的需要填,其他默认。创建完成后,选择VPN-》右上角有个下载配置。


三:在google Cloud创建VPN
1:回到第一步创建Google Cloud 创建IP的界面(Network Connectivity->VPN)
2:接着创建两个隧道-》远程对等IP(就是刚刚从aws下载的文件中:Virtual Private Gateway :),IKE版本V2,IKE秘钥也在刚刚下载的文件中:Pre-Shared Key。注意:文件中有两个Virtual Private Gateway和Pre-Shared Key,分别用来创建两个隧道,不要用错了,ip和秘钥是一一对应的。
3:路由选项-》基于路由-》这里需要填写:远程网络 IP 地址范围。(这个得去aws找:在Aws中-》VPC-》选中VPC-》IPv4 CIDR)。将他填入这里。
4:第二个渠道也是一样的,但是:远程对等IP和IKE秘钥得填第二个。


5:创建成功,可能需要等待一段时间,查看google 的VPN通道和AWS的VPN通道状态。如果两边都ok状态,那就是vpn已经接通了。


四:防火墙和安全组设置:
1:google cloud设置防火墙:入站-》来源ip范围填AWS VPC那个Ipv4 CIDR(上面在aws中找到的那个)。端口选-》tcp-》6379。
在新建一个出站-》IP 地址范围: 0.0.0.0/0 就行。
google cloud中的路由不需要新建,创建隧道时自动创建了路由。


2:AWS中创建安全组:这里的安全组指的是你的Redis的安全组设置-》我的安全组设置的是 TCP->6379->0.0.0.0/0(所有ip都可以访问),所以不需要在新建了。如果你的安全组不是0.0.0.0,则需要添加一条,至于是多少,得等cloud function创建后才知道。
参考文档:https://cloud.google.com/memorystore/docs/redis/networking?hl=zh-cn

浙公网安备 33010602011771号