Se connecter à une instance Redis

Cette page explique comment se connecter à une instance Redis à l'aide de Compute Engine et Google Kubernetes Engine. Il fournit également des instructions pour tester les commandes Redis de base avec Telnet.

Pour obtenir la liste des environnements Google Cloud compatibles avec Memorystore pour Redis, consultez la section Environnements compatibles. Certains environnements sans serveur compatibles avec Memorystore nécessitent un connecteur d'accès au VPC sans serveur. Pour en savoir plus, consultez la section Exigences relatives au connecteur d'accès au VPC sans serveur.

Se connecter à une instance Redis depuis une VM Compute Engine à l'aide de Telnet

Vous pouvez vous connecter à l'instance Redis depuis n'importe quelle VM Compute Engine utilisant le réseau autorisé de l'instance Redis avec une adresse IP RFC 1918 compatible.

  1. Si vous ne disposez pas encore de VM Compute Engine qui utilise le même réseau autorisé que votre instance Redis, créez-en une et connectez-vous en suivant les instructions du guide de démarrage rapide sur l'utilisation d'une VM Linux.

  2. Installez telnet à l'aide de apt-get :

    sudo apt-get install telnet
    
  3. Depuis le terminal, connectez telnet à l'adresse IP de l'instance Redis, en remplaçant les variables par les valeurs appropriées.

    telnet instance-ip-address 6379
    

    Si l'opération réussit, la commande renvoie ce résultat :

    Trying instance-ip-address…
    Connected to instance-ip-address
    
  4. Dans la session telnet, renseignez quelques commandes Redis. Exemple :

    Saisissez les informations suivantes :

    PING
    

    Résultat :

    PONG
    

    Saisissez les informations suivantes :

    SET HELLO WORLD
    

    Résultat :

    +OK
    

    Saisissez les informations suivantes :

    GET HELLO
    

    Résultat :

    $5
    WORLD
    

Se connecter à une instance Redis depuis une VM Compute Engine à l'aide de redis-cli

Vous pouvez vous connecter à l'instance Redis depuis n'importe quelle VM Compute Engine utilisant le réseau autorisé de l'instance Redis avec une adresse IP RFC 1918 compatible.

  1. Si vous ne disposez pas encore de VM Compute Engine utilisant le réseau autorisé pour votre instance Redis, créez-en une et connectez-vous en suivant les instructions du guide de démarrage rapide sur l'utilisation d'une VM Linux.

  2. Installez redis-cli sur la VM Compute Engine en exécutant la commande suivante à partir du terminal SSH de Compute Engine :

    sudo apt-get install redis-server
    
  3. Exécutez la commande suivante dans le terminal Compute Engine, en remplaçant les variables par les valeurs appropriées.

    redis-cli -h redis-instance-ip-address
    

    Vous êtes maintenant connecté à votre instance Redis à l'aide de redis-cli.

  4. Une fois que vous avez terminé de tester la connexion à l'instance Redis, pensez à supprimer la VM Compute Engine que vous avez utilisée pour vous connecter à l'instance Redis. Vous éviterez ainsi que des frais soient facturés sur votre compte Cloud Billing.

Se connecter à une instance Redis utilisant AUTH

Cette section explique comment se connecter à une instance Redis pour laquelle la fonctionnalité AUTH est activée.

  1. Si vous ne disposez pas encore de VM Compute Engine qui utilise le même réseau autorisé que votre instance Redis, créez-en une et connectez-vous en suivant les instructions du guide de démarrage rapide sur l'utilisation d'une VM Linux.

  2. Installez redis-cli sur la VM Compute Engine en exécutant la commande suivante à partir du terminal SSH de Compute Engine :

    sudo apt-get install redis-server
    
  3. Obtenez la chaîne AUTH de votre instance.

  4. Exécutez la commande suivante pour vous authentifier et vous connecter à votre instance à l'aide de redis-cli, en remplaçant les variables par les valeurs appropriées :

    redis-cli -h instance-ip-address -a auth-string
    

    ou

    redis-cli -h instance-ip-address
    AUTH auth-string
    
  5. Exécutez les commandes Redis SET et GET pour vérifier que vous avez établi une connexion authentifiée à votre instance.

  6. Une fois que vous avez terminé de tester la connexion à l'instance Redis, pensez à supprimer la VM Compute Engine que vous avez utilisée pour vous connecter à l'instance Redis. Vous éviterez ainsi que des frais soient facturés sur votre compte Cloud Billing.

Se connecter en toute sécurité à une instance Redis à l'aide de Stunnel et de Telnet

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

  1. Si le chiffrement en transit n'est pas déjà activé sur une instance Redis, créez-en une en suivant la procédure décrite dans la section Créer une instance Redis avec chiffrement en transit.

  2. Si vous ne disposez pas encore de 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 du guide de démarrage rapide sur l'utilisation d'une VM Linux.

    1. Installez les outils nécessaires pour ce guide en exécutant les commandes suivantes :

      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 la ou 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 le terminal Compute Engine) :

      gcloud redis instances describe instance-id --region=region
      

      Il peut y avoir jusqu'à trois CA.

    3. Copiez toutes les autorités de certification visibles, y compris les lignes -----BEGIN CERTIFICATE----- et -----END CERTIFICATE-----, puis collez et enregistrez 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 en exécutant la commande suivante :

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

      Collez le texte suivant dans le fichier en remplaçant redis-instance-ip par l'adresse IP de l'instance Redis :

      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:6378
      connect=redis-instance-ip:6378
      
    5. Redémarrez Stunnel en exécutant les commandes suivantes :

      sudo stunnel /etc/stunnel/redis-client.conf
      
      sudo systemctl restart stunnel4
      
  4. Pour vous connecter à votre instance Redis à l'aide de Telnet, exécutez la commande suivante :

    telnet localhost 6378
    
  5. Dans la session Telnet, pinguez l'instance Redis :

    Saisissez les informations suivantes :

    PING
    

    Result:

    PONG
    

Se connecter depuis une machine locale avec le transfert de port

Il peut être utile de vous connecter à votre instance Redis depuis votre ordinateur local pendant le développement. Pour ce faire, vous devez créer une instance Compute Engine à utiliser pour le transfert de port vers l'instance Redis.

  1. Créez une instance Compute Engine en exécutant la commande suivante:

    gcloud compute instances create NAME --machine-type=f1-micro --zone=ZONE
    

    Où :

    • NAME est le nom que vous avez attribué à la VM Compute Engine.
    • ZONE est la zone dans laquelle vous souhaitez provisionner la VM.

    Cette commande crée une VM Compute Engine avec le type de machine f1-micro pour assurer la rentabilité. Vous pouvez choisir d'autres types de machines si vous le souhaitez.

  2. Ouvrez un nouveau terminal sur votre machine locale.

  3. Pour créer un tunnel SSH qui transfère le trafic via la VM Compute Engine, exécutez la commande suivante:

    gcloud compute ssh COMPUTE_VM_NAME --zone=ZONE -- -N -L 6379:REDIS_INSTANCE_IP_ADDRESS:6379
    

    Où :

    • COMPUTE_VM_NAME est le nom de la VM Compute Engine ;
    • ZONE est la même zone que celle où se trouve la VM Compute Engine.
    • REDIS_INSTANCE_IP_ADDRESS est l'adresse IP de votre instance Redis.
  4. Pour tester la connexion, ouvrez une nouvelle fenêtre de terminal et exécutez la commande suivante:

    redis-cli ping
    

    Si tout fonctionne correctement, le résultat suivant doit s'afficher:

    PONG
    

    Vous êtes maintenant connecté à l'instance Redis et vous pouvez envoyer des commandes à l'instance Redis à l'aide de ce tunnel SSH ouvert. Si ce n'est pas déjà fait, installez redis-cli afin de pouvoir exécuter cette commande.

  5. Le tunnel SSH reste ouvert tant que la fenêtre du terminal reste ouverte et que la connexion au tunnel SSH est opérationnelle.

Se connecter à une instance Redis à partir d'un cluster Google Kubernetes Engine

Vous pouvez vous connecter à votre instance Redis à partir de clusters Google Kubernetes Engine qui utilisent le même réseau autorisé que votre instance Redis.

Se connecter à partir d'un pod exécutant une interface système bash

  1. Accédez à la page GKE dans Cloud Console.
    GKE
  2. Cliquez sur le cluster GKE à partir duquel vous souhaitez effectuer la connexion. Si vous ne disposez pas encore de cluster, créez-en un en activant les alias d'adresses IP. Pour obtenir des instructions sur la création d'un cluster avec des alias d'adresses IP activés, consultez la section Créer un cluster de VPC natif.
  3. Cliquez sur le bouton Connecter à droite du nom du cluster, puis sur le bouton Exécuter dans Cloud Shell dans la fenêtre qui apparaît.
  4. Configurez l'accès à la ligne de commande kubectlkubectl en exécutant la commande suivante :
    gcloud container clusters get-credentials CLUSTER_NAME --zone=CLUSTER_ZONE --project=PROJECT_ID
    • CLUSTER_NAME est le nom du cluster.
    • CLUSTER_ZONE est la zone dans laquelle se trouve le cluster. Elle doit également correspondre à la zone de votre instance Redis.
    • PROJECT_ID est le projet dans lequel le cluster et les instances Redis se trouvent.
    Un message confirmant le succès de l'opération doit s'afficher : kubeconfig generated for CLUSTER_NAME
  5. Si le cluster est de version 1.8 ou supérieure et que les alias d'adresses IP sont activés, ignorez cette étape. Si votre cluster est de version 1.7 ou inférieure, ou si les alias d'adresses IP ne sont pas activés sur votre cluster de version 1.8 ou supérieure, procédez comme suit avant d'essayer de vous connecter à l'instance : Pour en savoir plus sur les alias d'adresses IP et sur la création d'un cluster avec ce paramètre activé, consultez la section Créer un cluster de VPC natif.
  6. Utilisez la commande suivante pour vous connecter à une interface système bash :
    kubectl run -i --tty busybox --image=busybox -- sh
  7. Connectez telnet sur votre instance Redis à l'aide de l'adresse de l'hôte et du numéro de port :
    telnet HOST-IP PORT
  8. Renseignez une commande Redis de base pour vérifier la connexion. Exemple :
    PING
    +PONG
  9. Pour quitter la connexion telnet, appuyez sur Ctrl + C (ou sur Commande + C sur Mac). Pour quitter l'interface système bash de votre pod, renseignez la commande "return". Si vous avez terminé et n'avez plus besoin de vous connecter à Redis, exécutez la commande suivante à partir du répertoire /k8s-custom-iptables/ :
    ./uninstall.sh

Se connecter à une instance Redis à partir d'un pod Google Kubernetes Engine

Avant de commencer, vous avez besoin d'un cluster GKE. Si vous ne disposez pas encore de cluster, créez-en un en activant les alias d'adresses IP. Pour obtenir des instructions sur la création d'un cluster avec des alias d'adresses IP activés, consultez la page Créer un cluster de VPC natif.

  1. Dans l'angle supérieur droit de la console, cliquez sur le bouton Activer Cloud Shell Activer Cloud Shell.
  2. Configurez l'accès à la ligne de commande kubectlkubectl en exécutant la commande suivante :
    gcloud container clusters get-credentials CLUSTER_NAME --zone CLUSTER_ZONE --project PROJECT_ID
    • CLUSTER_NAME est le nom du cluster.
    • CLUSTER_ZONE est la zone dans laquelle se trouve le cluster. Elle doit également correspondre à la zone de votre instance Redis.
    • PROJECT_ID est le projet dans lequel le cluster et les instances Redis se trouvent.
    Un message confirmant le succès de l'opération doit s'afficher : kubeconfig generated for CLUSTER_NAME
  3. Si le cluster est de version 1.8 ou supérieure et que les alias d'adresses IP sont activés, ignorez cette étape. Si votre cluster est de version 1.7 ou inférieure, ou si les alias d'adresses IP ne sont pas activés sur votre cluster de version 1.8 ou supérieure, procédez comme suit avant d'essayer de vous connecter à l'instance : Pour en savoir plus sur les alias d'adresses IP et sur la création d'un cluster avec ce paramètre activé, consultez la section Créer un cluster de VPC natif.
  4. Exécutez la commande suivante pour démarrer un pod Redis exécutant la commande redis-cli :
    kubectl run -i --tty redisbox --image=gcr.io/google_containers/redis:v1 -- sh
  5. Exécutez une commande redis-cli en remplaçant HOST-IP par l'adresse IP de l'hôte de votre instance Redis :
    redis-cli -h HOST-IP info
  6. Vous pouvez éventuellement exécuter une commande Benchmark Redis en remplaçant à nouveau HOST-IP par l'adresse IP de l'hôte de votre instance Redis :
    redis-benchmark -c 100 -n 100000 -d 1024 -r 100000 -t PING,SET,GET,INCR,LPUSH,RPUSH,LPOP,RPOP,SADD,SPOP,MSET -h HOST-IP -q
  7. Pour quitter le pod Redis, saisissez return. Si vous avez terminé et n'avez plus besoin de vous connecter à Redis, exécutez la commande suivante à partir du répertoire /k8s-custom-iptables/ :
    ./uninstall.sh

Étape suivante

Connectez-vous à l'instance Redis à l'aide d'un exemple d'application s'exécutant sur les environnements suivants :