Comment tester ma connexion à un cluster Amazon ElastiCache Redis ou Memcached ?

Dernière mise à jour : 10/02/2021

Comment tester ma connexion à un cluster Amazon ElastiCache for Redis ou Amazon ElastiCache for Memcached à l'aide d'un client tel que redis-cli ou telnet à partir d'un client Linux ?

Brève description

Amazon ElastiCache prend actuellement en charge deux moteurs clé-valeur en mémoire différents : Redis et Memcached. Vous pouvez choisir le moteur que vous préférez lors du lancement d'un cluster de cache ElastiCache.

Remarque : cette solution couvre le test d'une connexion uniquement pour une utilisation non planifiée. Pour obtenir la liste des clients Redis pris en charge, consultez la documentation Redis.

Pour Memcached avec Java, .NET ou PHP, il est recommandé d'utiliser les clients ElastiCache avec Auto Discovery. Les clients ElastiCache avec Auto Discovery prennent en charge la découverte automatique des nouveaux nœuds ElastiCache ajoutés au cluster de cache.

Solution

Connexion au cluster Redis

ElastiCache prend en charge les clusters Redis avec le mode cluster activé ou désactivé. Pour tester une connexion à ces clusters, vous pouvez utiliser l'utilitaire redis-cli. La dernière version de redis-cli prend également en charge SSL/TLS pour la connexion des clusters pour lesquels le chiffrement/l'authentification sont activés.

Téléchargez et compilez l'utilitaire redis-cli sur l'instance Amazon Elastic Compute Cloud (Amazon EC2) à partir de laquelle vous établissez une connexion. Pour savoir comment se connecter à une instance Amazon EC2, consultez le didacticiel Démarrer avec les instances Linux Amazon EC2.

Remarque : l'exemple suivant utilise des instances EC2 exécutant Amazon Linux et Amazon Linux 2. Pour plus d'informations sur l'installation et la compilation de redis-cli avec d'autres distributions de Linux, consultez la documentation de votre système d'exploitation.

Amazon Linux 2

$sudo amazon-linux-extras install epel -y
$sudo yum install gcc jemalloc-devel openssl-devel tcl tcl-devel -y
$sudo wget http://download.redis.io/redis-stable.tar.gz
$sudo tar xvzf redis-stable.tar.gz
$cd redis-stable
$sudo make BUILD_TLS=yes

Amazon Linux

$sudo yum install gcc jemalloc-devel openssl-devel tcl tcl-devel clang wget
$sudo wget http://download.redis.io/redis-stable.tar.gz
$sudo tar xvzf redis-stable.tar.gz
$cd redis-stable
$sudo CC=clang make BUILD_TLS=yes

Remarque : si le cluster auquel vous vous connectez n'est pas chiffré, vous n'avez pas besoin de l'option Build_TLS=Yes.

Pour plus d'informations sur la recherche des points de terminaison Redis, consultez Recherche des points de terminaison de connexion.

Connexion à un cluster non chiffré pour lequel le mode cluster est désactivé

1.    Exécutez la commande suivante pour vous connecter au cluster. Dans l'exemple de commande suivant, remplacez change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com et 6379 par le point de terminaison de votre cluster et votre numéro de port.

src/redis-cli -h change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com -p 6379

Voici un exemple de l'invite de commande Redis renvoyée par la commande précédente :

change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com:6379>

2.    Exécutez les commandes Redis.

Après vous être connecté au cluster, vous pouvez exécuter des commandes Redis. Voici des exemples de commandes Redis :

set a "hello"
OK
get a
"hello"
quit

Connexion à un cluster non chiffré pour lequel le mode cluster est activé

1.    Exécutez la commande suivante pour vous connecter au cluster. Dans l'exemple de commande suivant, remplacez cluster-disable-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com et 6379 par le point de terminaison de votre cluster et votre numéro de port.

src/redis-cli -h cluster-disabled-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com -c -p 6379

Remarque : dans la commande précédente, l'option -c active le mode cluster en suivant les redirections -ASK et -MOVED.

Le résultat d'une invite de commande Redis est similaire à ce qui suit :

cluster-disabled-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com:6379>

2.    Vous pouvez maintenant exécuter des commandes Redis. Notez que la redirection se produit, car vous l'avez activée à l'aide de l'option -c. Si la redirection n'est pas activée, la commande renvoie l'erreur DÉPLACÉ. Pour plus d'informations sur l'erreur MOVED, reportez-vous à Spécification d'un cluster Redis sur le site Web redis.io.

set x Hi
-> Redirected to slot [16287] located at 172.31.28.122:6379
OK
set y Hello
OK
get y
"Hello"
set z Bye
-> Redirected to slot [8157] located at 172.31.9.201:6379
OK
get z
"Bye"
get x
-> Redirected to slot [16287] located at 172.31.28.122:6379
"Hi"

Connexion à un cluster pour lequel le chiffrement/l'authentification sont activés

Par défaut, redis-cli utilise une connexion TCP non chiffrée lors de la connexion à Redis. L'option BUILD_TLS=yes active SSL/TLS au moment de la compilation redis-cli, comme indiqué dans la section précédente Connexion à un cluster Redis. L'activation de AUTH est facultative. Toutefois, vous devez activer le chiffrement en transit pour pouvoir activer AUTH. Pour plus d'informations sur le chiffrement et l'authentification ElastiCache, consultez Chiffrement en transit (TLS) ElastiCache for Redis.

Remarque : vous pouvez utiliser l'option --tls avec redis-cli pour vous connecter à des clusters chiffrés pour lesquels le mode cluster est activé ou désactivé. Si un cluster a un jeton AUTH défini, vous pouvez utiliser l'option -a pour fournir un mot de passe AUTH.

Dans les exemples suivants, remplacez le point de terminaison et le port de votre cluster.

Connexion à des chiffrés pour lesquels le mode cluster est désactivé

L'exemple suivant permet de se connecter à un cluster pour lequel le chiffrement et l'authentification sont activés :

src/redis-cli -h master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com --tls -a <Password> -p 6379

L'exemple suivant permet de se connecter à un cluster pour lequel seul le chiffrement est activé :

src/redis-cli -h master.cluster-disabled-noauth.54awdt.use1.cache.amazonaws.com --tls -p 6379

Connexion à des clusters chiffrés pour lesquels le mode cluster est activé

L'exemple suivant permet de se connecter à un cluster chiffré pour lequel le chiffrement et l'authentification sont activés :

src/redis-cli -h master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com --tls -c -a <Password> -p 6379

L'exemple suivant permet de se connecter à un cluster pour lequel seul le chiffrement est activé :

redis-cli -h clustercfg.tlswithoutauth.54awdt.use1.cache.amazonaws.com --tls -c -p 6379

Après vous être connecté au cluster, vous pouvez exécuter les commandes Redis comme illustré dans les exemples précédents pour les clusters non chiffrés.

Alternative redis-cli

Si le cluster n'est pas en mode cluster et que vous devez établir une connexion au cluster pour un court test, mais sans passer par la compilation redis-cli, vous pouvez utiliser telnet ou openssl. Dans les exemples de commandes suivants, remplacez le point de terminaison et le port de votre cluster si nécessaire.

Après vous être connecté, vous pouvez exécuter des commandes Redis comme illustré dans les exemples précédents.

L'exemple suivant permet de se connecter à un cluster dont le mode cluster est désactivé et permettant le chiffrement et/ou l'authentification :

openssl s_client -connect master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com:6379

Si le cluster a un mot de passe défini, connectez-vous d'abord au cluster. Après la connexion, authentifiez le cluster à l'aide de la commande suivante, puis appuyez sur la touche Enter (Entrée). Dans l'exemple suivant, remplacez Password (Mot de passe) par le mot de passe de votre cluster.

Auth Password

L'exemple suivant permet de se connecter à un cluster pour lequel le mode cluster et le chiffrement ou l'authentification sont désactivés :

telnet change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com 6379

Connexion à un cluster MemCached

Pour vous connecter à un cluster MemCached, utilisez l'utilitaire telnet. Pour plus d'informations sur les commandes Memcached et les commandes Memcached, consultez le site Web Memcached. Pour plus d'informations sur la recherche de points de terminaison Memcached, consultez Recherche de points de terminaison de connexion.

1.    Installez l'utilitaire telnet sur l'instance EC2 à partir de laquelle vous testez une connexion.

Systèmes CentOS :

$sudo yum install telnet

Systèmes Debian (Ubuntu) :

$sudo apt-get install telnet

Pour savoir comment se connecter à une instance Amazon EC2, consultez le didacticiel Démarrer avec les instances Linux Amazon EC2.

2.    Utilisez la commande suivante pour vous connecter au point de terminaison. Remplacez eaogs8.0001.usw2.cache.amazonaws.com par votre point de terminaison et 11211 par le port de votre nœud.

telnet mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com 11211

Le résultat doit être similaire à ce qui suit :

Trying 128.0.0.1...
Connected to mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com.
Escape character is '^]'.
>

Vous êtes maintenant connecté à un nœud. Vous pouvez exécuter des commandes Memcached comme illustré dans les exemples suivants :

set a 0 0 5
hello
STORED
get a
VALUE a 0 5
hello
END

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?