Se connecter à une instance de cluster Memorystore pour Redis

Cette page explique comment se connecter à une instance de cluster Memorystore pour Redis.

Service client

Le cluster Memorystore pour Redis ne fournit pas ses propres bibliothèques clientes, mais est compatible avec les bibliothèques clientes tierces existantes qui acceptent le protocole Redis. Vous trouverez une liste de clients sur la page Clients Redis.

Bonnes pratiques pour les clients Redis-py

Pour vous connecter à votre instance de cluster Memorystore pour Redis avec le client Python redis-py, vous devez ajouter skip_full_coverage_check=True lors de la déclaration d'un cluster Redis:

from rediscluster import RedisCluster
endpoints = [{"host": "IPADDRESS", "port": "6379"}]

rdb = RedisCluster(
    startup_nodes=endpoints,
    skip_full_coverage_check=True, # Required for Memorystore
    decode_responses = True)

print(rdb.set('PYTHON', 'CLUSTER'))
print(rdb.get('PYTHON'))
print(rdb.unlink('PYTHON'))

Accès interrégional

Vous pouvez accéder à une instance de cluster Memorystore pour Redis depuis un client situé dans une région différente de celle où se trouve l'instance Memorystore.

Afficher le point de terminaison de découverte de votre cluster

Pour afficher le point de terminaison de découverte de votre cluster Memorystore, procédez comme suit:

Console

  1. Accédez à la page Memorystore pour Redis Cluster dans la console Google Cloud.

    Clusterstore Memorystore pour Redis

  2. Cliquez sur votre ID de cluster.

  3. Dans la section Se connecter à cette instance, notez l'adresse IP interne et le port de connexion. Ces deux valeurs utilisées ensemble sont le point de terminaison de découverte de votre cluster.

gcloud

Pour afficher le point de terminaison de découverte de votre cluster, exécutez la CLI describe gcloud comme expliqué dans la section Afficher les détails de l'instance.

La sortie devrait ressembler à ce qui suit :

createTime: '2023-05-30T19:47:37.850985390Z'
discoveryEndpoints:
- address: 10.142.0.10
  port: 6379
  pscConfig:
     network: projects/my-project-364018/global/networks/default
     projectId: my-project-364018
name: projects/my-project-364018/locations/us-east1/clusters/my-cluster-1
replicaCount: 0
shardCount: 3
sizeGb: 39
state: ACTIVE
transitEncryptionMode: TRANSIT_ENCRYPTION_MODE_DISABLED
uid: 87b47146-217d-472e-96e5-13962c0e8706

Notez l'adresse du point de terminaison et le numéro de port indiqués dans la section discovery_endpoints:. Ces deux valeurs utilisées ensemble sont le point de terminaison de découverte de votre cluster.

Se connecter à partir d'une VM Compute Engine avec redis-cli

Vous pouvez vous connecter à l'instance de cluster Memorystore pour Redis depuis n'importe quelle VM Compute Engine utilisant le réseau autorisé de l'instance Memorystore.

Pour vous connecter à l'instance:

  1. Si vous ne disposez pas encore d'une VM Compute Engine utilisant le réseau autorisé pour votre instance de cluster Memorystore pour Redis, créez-en une et connectez-vous en suivant les instructions de la page Démarrage rapide pour créer une VM Linux.

  2. Installez redis-cli sur la VM Compute Engine. Si vous avez créé une VM Linux basée sur Debian, vous pouvez exécuter la commande suivante à partir du terminal SSH de Compute Engine:

    sudo apt-get update
    sudo apt-get install redis
    
  3. Affichez le point de terminaison de découverte de votre cluster et notez-le.

  4. Exécutez la commande suivante dans le terminal du cluster Memorystore pour Redis en remplaçant les variables par les valeurs appropriées.

    redis-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c
    

    Où :

    • DISCOVERY_ENDPOINT_ADDRESS et PORT_NUMBER sont les valeurs que vous avez notées à l'étape précédente.
  5. Une fois la connexion établie, saisissez quelques commandes Redis:

    Saisissez les informations suivantes :

    PING
    

    Résultat :

    PONG
    

    Saisissez les informations suivantes :

    SET HELLO WORLD
    

    Résultat :

    OK
    

    Saisissez cette commande :

    GET HELLO
    

    Résultat

    "WORLD"
    
  6. Une fois les tests de connexion à l'instance Redis terminés, vous devez envisager de supprimer la VM Compute Engine que vous avez utilisée pour vous connecter à l'instance Redis. Cela vous permet d'éviter que des frais ne soient facturés sur votre compte de facturation Cloud.

Se connecter en toute sécurité à un cluster Memorystore à l'aide de Stunnel et de telnet

Cette section fournit un exemple de connexion à une instance de cluster Memorystore pour Redis pour laquelle le chiffrement en transit est activé à l'aide de Stunnel.

  1. Si vous ne disposez pas encore de cluster Memorystore pour lequel le chiffrement en transit est activé, créez-en un en suivant la procédure Créer une instance avec chiffrement en transit.

  2. Si vous ne disposez pas encore d'une VM Compute Engine utilisant le même réseau autorisé que l'instance Redis de l'étape précédente, créez-en une et connectez-vous en suivant les instructions de la page Démarrage rapide à l'aide d'une VM Linux.

    1. Installez les outils nécessaires pour ce guide:

      sudo apt-get install stunnel4
      
      sudo apt-get install telnet
      
  3. Configurez votre VM Compute Engine l'utiliser avec Stunnel :

    1. Créez un fichier dans lequel placer votre autorité de certification, en exécutant la commande suivante :

      sudo vim /tmp/server_ca.pem
      
    2. Affichez les autorités de certification de votre instance Redis en exécutant la commande suivante dans le terminal standard que vous utilisez pour gérer les ressources Google Cloud (et non dans le terminal Compute Engine):

      gcloud alpha redis clusters get-cluster-certificate-authority  --cluster-id=CLUSTER_ID
      
    3. Copiez toutes les autorités de certification visibles, y compris la ligne -----BEGIN CERTIFICATE----- et les lignes -----END CERTIFICATE-----, puis collez ces informations et enregistrez-les dans le fichier server_ca.pem que vous avez créé précédemment.

    4. Créez un fichier dans lequel placer les informations de configuration Stunnel:

      sudo vim /etc/stunnel/redis-client.conf
      
    5. Collez le texte suivant dans le fichier, en remplaçant DISCOVERY_ENDPOINT_ADDRESS par l'adresse IP du point de terminaison du service de connexion privé de votre cluster:

      output=/tmp/stunnel.log
      CAfile=/tmp/server_ca.pem
      client=yes
      pid=/var/run/stunnel.pid
      verifyChain=yes
      sslVersion=TLSv1.2
      [redis]
      accept=127.0.0.1:6379
      connect=DISCOVERY_ENDPOINT_ADDRESS:PORT_NUMBER
      

      Démarrez Stunnel:

      sudo stunnel /etc/stunnel/redis-client.conf
      

      Vérifiez que stunnel est en cours d'exécution:

      ps aux | grep stunnel
      
    6. Redémarrez Stunnel:

      sudo systemctl restart stunnel4
      
  4. Pour vous connecter à votre instance Redis à l'aide de Redis-CLI, exécutez la commande suivante:

    redis-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c
    
  5. Une fois la connexion établie, saisissez quelques commandes Redis:

    Saisissez les informations suivantes :

    PING
    

    Résultat

    PONG