web-dev-qa-db-fra.com

Accès au GCP Memorystore à partir de machines locales

Quelle est la meilleure façon d'accéder à Memorystore à partir de machines locales pendant le développement? Y a-t-il quelque chose comme Cloud SQL Proxy que je peux utiliser pour configurer un tunnel?

13
Dhaval

Vous pouvez faire tourner une instance Compute Engine et utiliser la redirection de port pour vous connecter à votre machine Redis.

Par exemple, si votre machine Redis a l'adresse IP interne 10.0.0.3, vous feriez:

gcloud compute instances create redis-forwarder --machine-type=f1-micro
gcloud compute ssh redis-forwarder -- -N -L 6379:10.0.0.3:6379

Tant que vous gardez le tunnel ssh ouvert, vous pouvez vous connecter à localhost: 6379

13
Christiaan

J'ai créé un VM sur Google Cloud

gcloud compute instances create redis-forwarder --machine-type=f1-micro

puis ssh dedans et installé haproxy

Sudo su
apt-get install haproxy

puis mis à jour le fichier de configuration

/etc/haproxy/haproxy.cfg

....existing file contents
frontend redis_frontend
  bind *:6379
  mode tcp
  option tcplog
  timeout client  1m
  default_backend redis_backend

 backend redis_backend
   mode tcp
   option tcplog
   option log-health-checks
   option redispatch
   log global
   balance roundrobin
   timeout connect 10s
   timeout server 1m
   server redis_server [MEMORYSTORE IP]:6379 check

redémarrer haproxy

/etc/init.d/haproxy restart

J'ai ensuite pu me connecter au magasin de mémoire depuis ma machine locale pour le développement

6
Nath

Vous pouvez faire tourner une instance Compute Engine et configurer un haproxy en utilisant l'image docker suivante image docker haproxy puis haproxy transmettra vos demandes tcp à memorystore.

Par exemple, je veux accéder à l'instance de memorystore avec l'ip 10.0.0.12, j'ai donc ajouté les configurations de haproxy suivantes:

frontend redis_frontend
   bind *:6379
   mode tcp
   option tcplog
   timeout client  1m
   default_backend redis_backend

backend redis_backend
   mode tcp
   option tcplog
   option log-health-checks
   option redispatch
   log global
   balance roundrobin
   timeout connect 10s
   timeout server 1m
   server redis_server 10.0.0.12:6379 check

Alors maintenant, vous pouvez accéder au memorystore depuis votre machine locale en utilisant la commande suivante:

redis-cli -h <your-haproxy-public-ipaddress> -p 6379

Remarque: remplacez par votre adresse IP haproxy réelle.

J'espère que cela peut vous aider à résoudre votre problème.

2
amohamed