You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开发阶段从本地机器访问GCP Memorystore的最佳方式?有无类似Cloud SQL Proxy的工具?

本地访问GCP Memorystore的最佳方式及替代Proxy方案

嘿,这个问题问到点子上了!我在实际项目里经常遇到开发阶段要连Memorystore的需求,给你分享几个最实用的方案,以及关于类似Cloud SQL Proxy工具的情况:

一、最常用的方式:通过GCP VM建立SSH隧道

Memorystore默认只能在同一个VPC网络内访问,所以本地要连的话,最直接的办法是借助一台和Memorystore同VPC的GCE虚拟机做“中转”,用SSH隧道把本地端口转发到Memorystore的地址。步骤很简单:

  1. 先确保你有一台和Memorystore在同一VPC的GCE虚拟机(如果没有,快速创建一个小规格的就行,开发用足够了)
  2. 执行下面的gcloud命令建立隧道,把本地的6379端口(Redis默认端口)转发到Memorystore的实例地址:
    gcloud compute ssh YOUR_VM_INSTANCE_NAME --zone YOUR_VM_ZONE --ssh-flag="-L 6379:MEMORYSTORE_REDIS_HOST:6379"
    
    如果你用的是Memcached,把端口换成11211就行。
  3. 命令执行后保持终端窗口打开,现在你本地就可以通过localhost:6379访问Memorystore实例了!

注意事项:

  • 确保VM的防火墙规则允许SSH(22端口)的入站流量
  • 把VM的内网IP添加到Memorystore的访问白名单里(在Memorystore实例的配置页面可以设置)

二、更安全的方案:用IAP隧道代替公网SSH

如果你不想给VM开公网IP,或者对安全性要求更高,可以用Cloud Identity-Aware Proxy(IAP)来建立隧道,不需要暴露VM的公网地址:

  1. 先给你的GCP账号授予roles/iap.tunnelResourceAccessor权限,确保能通过IAP访问VM
  2. 执行下面的命令启动IAP隧道并做端口转发:
    gcloud compute start-iap-tunnel YOUR_VM_INSTANCE_NAME 22 --zone YOUR_VM_ZONE --local-host-port=localhost:2222
    
  3. 新开一个终端,通过本地的2222端口SSH到VM并建立Memorystore的转发:
    ssh -L 6379:MEMORYSTORE_REDIS_HOST:6379 YOUR_USERNAME@localhost -p 2222
    
    这样就完成了,同样本地用localhost:6379访问即可。

三、有没有类似Cloud SQL Proxy的专用工具?

很遗憾,GCP官方目前没有推出专门针对Memorystore的Proxy工具(不像Cloud SQL有官方Proxy)。不过上面的两种隧道方案已经能很好满足开发需求,而且都是基于GCP原生工具,稳定性和安全性都有保障。

如果你想尝试第三方工具,也可以用socat或者redis-cli自带的隧道功能,但个人还是更推荐前面的GCP原生方案,毕竟配置简单,不需要额外安装太多工具。

开发阶段小建议

  • 如果你只是做本地测试,其实可以先用本地的Redis/Memcached代替,等部署到GCP环境再连正式的Memorystore,这样更高效
  • 记得在开发完成后关闭不必要的隧道和VM,避免产生额外费用

内容的提问来源于stack exchange,提问作者Dhaval

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:07:01