Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
330 views
in Technique[技术] by (71.8m points)

google cloud networking - Access Memorystore (Redis) using VPC Peering

Imagine I have a VPC called vpc-1 which has a Memorystore (Redis) instance associated with it. My understanding is that Redis lives in its own VPC and there is VPC peering used to connect vpc-1 to the VPC for Redis. Now let us imagine I create a second VPC called vpc-2 and peer that VPC with vpc-1. I now create a VM with a network interface to vpc-2. This VM can now access VPC resources attached to vpc-1 and vpc-2. However, because VPC peering is not transitive, the VM can't access the Redis instance.

My puzzle now becomes one of ... is it possible for a VM attached to vpc-2 that is VPC peered to vpc-1 which has a Memorystore (Redis) instances associated with it (vpc-1) to access that Redis instance?

I realize that I can switch my story to use Shared VPC ... however I'm wondering what options exist if I want to use VPC Peering exclusively.

question from:https://stackoverflow.com/questions/65839983/access-memorystore-redis-using-vpc-peering

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

After discussions with technical folks who know GCP VPC and GCP Memorystore very well, it seems that there is no way to have transitive peering using VPC Peering. A solution was suggested that, for my use case, worked well. With respect to the original story, we created a new Compute Engine in the vpc-1 VPC which has access to Redis. On that Compute Engine we installed the open source package called nutcracker which provides a Redis proxy. What this means is that a Redis client request sent to this Compute Engine is proxied to the real Redis server managed by Google through Memorystore. Since the Compute Engine is an ordinary compute resource in the vpc-1 VPC its internal IP address is reachable from other VPCs peered with vpc-1 (for example, in our story vpc-2). The end result was that a Compute Engine created in vpc-2 could then target the Compute Engine running nutcracker using the Redis protocols. That Compute Engine then relayed the request to the real Redis server and all worked as desired.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...