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

Lecture de 10 minute(s)
0

Je souhaite tester ma connexion à un cluster Amazon ElastiCache for Redis ou Amazon ElastiCache for Memcached à partir d’un client basé sur Linux.

Brève description

Amazon ElastiCache prend en charge deux moteurs clé-valeur en mémoire, notamment Redis et Memcached. Lorsque vous lancez un cluster de cache ElastiCache, choisissez votre moteur préféré.

Remarque : cette résolution vise à tester une connexion uniquement en cas d'utilisation non planifiée. Pour obtenir la liste des clients Redis pris en charge, reportez-vous à documentation sur le site Web Redis.

Pour Memcached avec Java, .NET ou PHP, il est recommandé d’utiliser les clients ElastiCache avec Auto Discovery. Les clients ElastiCache disposant d’Auto Discovery identifient automatiquement les nouveaux nœuds ElastiCache lorsqu’ils sont ajoutés au cluster de cache.

Résolution

Créer un cluster ElastiCache

Remarque : si vous vous connectez à un cluster existant, passez à l’étape suivante.

Pour obtenir des informations concernant la création d’un cluster ElastiCache Redis, reportez-vous à Créer un cluster (Guide d’utilisation d’Amazon ElastiCache for Redis).

Pour obtenir des informations concernant la création d’un cluster Memcached, reportez-vous à Créer un cluster (Guide d’utilisation d’Amazon ElastiCache for Memcached).

Se connecter au cluster ElastiCache Redis

ElastiCache prend en charge les clusters Redis pour lesquels le mode cluster est activé ou désactivé. Pour tester une connexion à ces clusters, utilisez l’utilitaire redis-cli ou redis6-cli. La dernière version de redis-cli et redis6-cli prend en charge le protocole SSL/TLS pour se connecter aux clusters pour lesquels l’authentification et le chiffrement 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 vous connectez. Pour obtenir des instructions concernant la connexion à une instance Amazon EC2, reportez-vous à Tutoriel : premiers pas avec les instances Linux Amazon EC2.

Remarque : l’exemple suivant utilise des instances EC2 qui exécutent Amazon Linux, Amazon Linux 2 et Amazon Linux 2023. Pour obtenir du contenu sur l’installation et la compilation de redis-cli et de redis6-cli avec d’autres distributions Linux, reportez-vous à la documentation de votre système d’exploitation spécifique.

Amazon Linux 2023

sudo yum install redis6 -y

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

Par défaut, redis-cli utilise une connexion TCP non chiffrée lorsqu’il se connecte à Redis. Lors de la compilation de redis-cli, l’option BUILD_TLS=yes active le protocole SSL/TLS. Si le cluster auquel vous vous connectez n'a pas de chiffrement en transit, vous n'avez pas besoin de l'option Build_TLS=yes. Dans les étapes suivantes, les clusters chiffrés ou non chiffrés font référence au chiffrement en transit.

Remarque : lorsque vous installez le package redis6, vous installez automatiquement redis6-cli avec le support SSL/TLS par défaut.

Pour obtenir des informations concernant la recherche de points de terminaison Redis, reportez-vous à Recherche de points de terminaison de connexion.

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

  1. Pour vous connecter au cluster, exécutez la commande suivante. 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 :

    Amazon Linux 2023

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

    Amazon Linux et Amazon Linux 2

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

    Cette commande renvoie une invite de commande Redis qui ressemble à l’exemple suivant :

    change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com:6379>
  2. Une fois connecté au cluster, vous pouvez exécuter des commandes Redis comme les exemples suivants :

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

    Pour plus d'informations, reportez-vous à Commandes sur le site Web redis.io.

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

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

Amazon Linux 2023

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

Amazon Linux et Amazon Linux 2

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

Remarque : dans ces commandes, l’option**-c** active le mode cluster après les redirections -ASK et -MOVED. Pour plus d'informations, reportez-vous à Rôles client et serveur dans le protocole de cluster Redis sur le site Web redis.io.

Le résultat dans une invite de commande Redis ressemble à l’exemple suivant :

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

Vous pouvez désormais exécuter des commandes Redis. La redirection se produit à cause de l'option -c. Si vous n’activez pas la redirection, la commande renvoie l’erreur MOVED. Pour en savoir plus sur l’erreur MOVED, reportez-vous à Spécification du cluster Redis sur le site Web Redis.

Voici quelques exemples de commandes Redis :

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"

Se connecter à un cluster pour lequel l’authentification et le chiffrement sont activés

Vous avez la possibilité d'activer AUTH. Cependant, pour activer l’option AUTH, vous devez activer le chiffrement en transit. Pour en savoir plus sur le chiffrement et l’authentification ElastiCache, reportez-vous à Chiffrement en transit ElastiCache (TLS).

Pour vous connecter aux clusters chiffrés pour lesquels le mode cluster est activé et désactivé, utilisez l’option**--tls** avec le redis-cli. Si un jeton AUTH est défini sur un cluster, vous pouvez utiliser l’option -a pour fournir un mot de passe AUTH.

Remarque : dans Redis version 7 et versions ultérieures, le chiffrement en transit est activé pour les clusters ElastiCache existants. Vous pouvez modifier la configuration TLS de vos clusters Redis sans avoir à les recréer ou à les reprovisionner, et sans que cela n’affecte la disponibilité des applications. Lorsque vous activez le chiffrement en transit, mettez à jour la configuration de votre client pour utiliser les nouveaux points de terminaison spécifiques au TLS. Pour plus d'informations, reportez-vous à Meilleures pratiques pour établir des connexions avant, pendant et après l'activation du chiffrement en transit.

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

Se connecter aux clusters chiffrés pour lesquels le mode cluster est désactivé

L’exemple de commande suivant permet la connexion à un cluster pour lequel le chiffrement et l’authentification sont activés :

Amazon Linux 2023

redis6-cli -h master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com --tls -a PASSWORD -p 6379

Amazon Linux et Amazon Linux 2

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

L’exemple de commande suivant permet la connexion à un cluster pour lequel seul le chiffrement est activé :

Amazon Linux 2023

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

Amazon Linux et Amazon Linux 2

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

Se connecter aux clusters chiffrés pour lesquels le mode cluster est activé

L’exemple de commande suivant permet la connexion à un cluster pour lequel le chiffrement et l’authentification sont activés :

Amazon Linux 2023

redis6-cli -h clustercfg.tlswithauth.54awdt.use1.cache.amazonaws.com --tls -c -a PASSWORD -p 6379

Amazon Linux et Amazon Linux 2

src/redis-cli -h clustercfg.tlswithauth.54awdt.use1.cache.amazonaws.com --tls -c -a PASSWORD -p 6379

L’exemple de commande suivant permet la connexion à un cluster pour lequel seul le chiffrement est activé :

Amazon Linux 2023

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

Amazon Linux et Amazon Linux 2

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

Une fois connecté au cluster, vous pouvez exécuter des commandes Redis comme indiqué dans les exemples précédents pour les clusters non chiffrés.

Alternative à Redis-cli

Afin d’effectuer un court test sans passer par la compilation redis-cli, vous pouvez vous connecter à un cluster pour lequel le mode cluster n’est pas activé. Pour ce faire, utilisez telnet ou openssl. Dans les exemples de commandes suivants, remplacez le point de terminaison et le port de votre cluster.

Remarque : pour installer l’utilitaire telnet, reportez-vous à la section Se connecter à un cluster Memcached sans chiffrement en transit suivante.

Une fois connecté, vous pouvez exécuter des commandes Redis comme indiqué dans les exemples précédents.

L’exemple de commande suivant permet la connexion à un cluster pour lequel le mode cluster de chiffrement ou d’authentification est désactivé :

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

Si un mot de passe est défini pour le cluster, connectez-vous d’abord au cluster. Une fois connecté, utilisez la commande suivante pour authentifier le cluster, puis appuyez sur la touche Entrée. Dans l’exemple de commande suivant, remplacez Mot de passe par le mot de passe de votre cluster :

Auth Password

L’exemple de commande suivant permet la connexion à un cluster pour lequel le mode cluster est désactivé et l’authentification ou le chiffrement n’est pas activé :

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

Connexion à un cluster ElastiCache Memcached

Pour vous connecter à un cluster Memcached, utilisez l’utilitaire telnet.

Se connecter à un cluster Memcached sans chiffrement en transit

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

    Pour les systèmes basés sur CentOS, exécutez la commande suivante :

    $sudo yum install telnet

    Pour les systèmes basés sur Debian (Ubuntu), exécutez la commande suivante :

    $sudo apt-get install telnet

    Pour obtenir des instructions concernant la connexion à une instance Amazon EC2, reportez-vous à Tutoriel : premiers pas avec les instances Linux Amazon EC2.

  2. Pour vous connecter au point de terminaison, exécutez l’exemple de commande suivant. Remplacez mycachecluster.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 à l’exemple suivant :

    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 les commandes Memcached comme indiqué dans l’exemple de sortie suivant :

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

Connexion à un cluster MemCached avec chiffrement en transit

Le chiffrement en transit est pris en charge sur les clusters qui exécutent les versions 1.6.12 et ultérieures de Memcached. Telnet n’utilise pas le chiffrement. Pour vous connecter à un cluster MemCached pour lequel le chiffrement est activé, utilisez le client openssl.

Remarque : vous pouvez activer le chiffrement en transit sur un cluster uniquement lors de la création du cluster. Vous ne pouvez pas modifier le cluster pour activer ou désactiver le chiffrement en transit. Pour en savoir plus, reportez-vous à Chiffrement en transit ElastiCache (TLS).

Pour vous connecter au point de terminaison, exécutez l’exemple de commande suivant. Remplacez testwithtls.qtyxq7.cfg.apse2.cache.amazonaws.com par votre point de terminaison et 11211 par le port de votre nœud :

openssl s_client -quiet -crlf -connect testwithtls.qtyxq7.cfg.apse2.cache.amazonaws.com:11211

Voici un exemple de sortie :

depth=2 C = US, O = Amazon, CN = Amazon Root CA 1  verify return:1  
depth=1 C = US, O = Amazon, CN = Amazon RSA 2048 M02  
verify return:1  
depth=0 CN = *.testwithtls.qtyxq7.apse2.cache.amazonaws.com  
verify return:1

Vous êtes maintenant connecté à un nœud. Vous pouvez exécuter les commandes Memcached comme indiqué dans l’exemple de sortie suivant :

set a 0 0 5hello
STORED
get a
VALUE a 0 5
hello
END
AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 7 mois