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

Dernière mise à jour : 12/07/2022

Je veux tester ma connexion à un cluster Amazon ElastiCache for Redis ou Amazon ElastiCache for Memcached. Comment le faire en utilisant un outil tel que redis-cli ou telnet à partir d'un client basé sur Linux ?

Brève description

Amazon ElastiCache prend en charge deux moteurs clé-valeur en mémoire, 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 Détection automatique. Les clients ElastiCache disposant de la détection automatique identifient automatiquement les nouveaux nœuds ElastiCache à mesure qu'ils sont 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 aux clusters avec le chiffrement et/ou l'authentification 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.    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 parce que 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 DÉPLACÉ, consultez 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 deAUTH est facultative. Toutefois, vous devez activer le chiffrement en transit pour activer AUTH. Pour plus de détails sur le chiffrement et l'authentification ElastiCache, consultez Chiffrement en transit ElastiCache (TLS).

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é

Cet exemple de commande permet de se connecter au cluster avec le chiffrement et l'authentification activés :

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

Cet exemple de commande 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é

Cet exemple de commande permet de se connecter à un cluster avec le chiffrement et l'authentification activés :

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

Cet exemple de commande 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

Pour se connecter au cluster pour un court test sans passer par la compilation de redis-cli sur un cluster qui n'est pas activé en mode cluster, vous pouvez utiliser telnet ou openssl. Dans les exemples de commandes suivants, veillez à remplacez le point de terminaison et le port de votre cluster.

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

Cet exemple de commande permet de se connecter à un cluster dont le mode cluster est désactivé :

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 Entrée. Dans cet exemple de commande, remplacez Mot de passe par le mot de passe de votre cluster.

Auth Password

Cet exemple 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 cet exemple de commande 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

La sortie ressemble à 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 cet exemple de sortie :

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

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


Avez-vous besoin d'aide pour une question technique ou de facturation ?