¿Cómo pruebo mi conexión a un clúster de ElastiCache para Redis OSS o Memcached?

9 minutos de lectura
0

Quiero probar mi conexión a un clúster de Amazon ElastiCache para Redis OSS o para Memcached desde un cliente basado en Linux.

Solución

Nota: En la siguiente resolución se prueba una conexión solo para un uso no planificado. Para obtener una lista de los clientes de Redis compatibles, consulta Connect with Redis clients (Conectarse con los clientes de Redis) en el sitio web de Redis.

Amazon ElastiCache admite los motores de clave-valor en memoria de Redis OSS y Memcached. Cuando inicies un clúster de caché de ElastiCache, selecciona tu motor preferido.

Para Memcached con Java, .NET o PHP, se recomienda utilizar clientes de ElastiCache con detección automática. Los clientes de ElastiCache con detección automática identifican automáticamente los nuevos nodos de ElastiCache cuando se agregan al clúster de caché.

Creación del clúster de ElastiCache

Para crear un clúster de ElastiCache para Redis OSS, consulta Creating a cluster for Valkey or Redis OSS (Creación de un clúster para Valkey o Redis OSS).

Para crear un clúster de Memcached, consulta Creating a cluster for Memcached (Creación de un clúster para Memcached).

Conexión al clúster de ElastiCache para Redis OSS

ElastiCache admite clústeres de Redis deshabilitados (CMD) y habilitados (CME) para el modo de clúster. Para probar una conexión a estos clústeres, utiliza la utilidad redis-cli o redis6-cli. La versión más reciente de redis-cli y redis6-cli admite SSL/TLS para conectarse a clústeres con el cifrado o la autenticación activados.

Descarga y compila la utilidad redis-cli en la instancia de Amazon Elastic Compute Cloud (Amazon EC2) desde la que te quieres conectar. Para obtener más información, consulta Introducción a Amazon EC2.

Nota: En el siguiente ejemplo, se usan instancias de Amazon EC2 que ejecutan Amazon Linux, Amazon Linux 2 y Amazon Linux 2023. Para instalar y compilar redis-cli y redis6-cli con otras distribuciones de Linux, consulta la documentación de tu sistema operativo.

Para conectarte al clúster de ElastiCache para Redis OSS, ejecuta uno de los siguientes comandos para tu sistema operativo.

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

Cuando Redis-cli se conecta a Redis, utiliza una conexión TCP sin cifrar. La opción BUILD_TLS=yes activa SSL/TLS durante la compilación de redis-cli. Si el clúster al que te conectas no tiene cifrado en tránsito, no necesitas la opción Build_TLS=yes.

Nota: Al instalar el paquete redis6, se instala automáticamente redis6-cli con compatibilidad predeterminada con SSL/TLS.

Para obtener información sobre cómo buscar puntos de enlace de Redis, consulta Finding connection endpoints in ElastiCache (Búsqueda de puntos de enlace de conexión en ElastiCache).

En los pasos siguientes, los clústeres cifrados o no cifrados se refieren al cifrado en tránsito.

Conexión a un clúster sin cifrar con CMD

Nota: En los siguientes comandos, reemplaza change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com por el punto de enlace del clúster y 6379 por el número de puerto.

Ejecuta uno de los siguientes comandos para tu sistema operativo.

Amazon Linux 2023:

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

Amazon Linux y Amazon Linux 2:

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

El comando anterior devuelve una línea de comandos de Redis similar a la del siguiente ejemplo:

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

Tras conectarte al clúster, puedes ejecutar los comandos de Redis.

Ejemplo de comando:

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

Para obtener más información, consulta Commands (Comandos) en el sitio web de Redis.

Conexión a un clúster sin cifrar con CME

Nota: En los siguientes comandos, reemplaza cluster-disable-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com por el punto de enlace de configuración del clúster y 6379 por tu número de puerto.

Ejecuta uno de los siguientes comandos para tu sistema operativo.

Amazon Linux 2023:

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

Amazon Linux y Amazon Linux 2:

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

Nota: En los comandos anteriores, la opción -c activa el modo de clúster después de las redirecciones -ASK y -MOVED. Si no activas la redirección, el comando devuelve el error MOVED. Para obtener más información, consulta Client and Server roles in the Redis cluster protocol (Roles de cliente y servidor en el protocolo de clúster de Redis) y Redis cluster specification (Especificación del clúster de Redis) en el sitio web de Redis.

El comando anterior devuelve una línea de comandos de Redis similar a la del siguiente ejemplo:

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

Ejemplos de comandos de Redis:

set x Hi-> Redirected to slot [16287] located at 172.31.28.122:6379OK
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"

Conexión a un clúster con el cifrado o la autenticación activados

Sin embargo, para activar AUTH, tienes que activar el cifrado en tránsito. Para obtener más información, consulta ElastiCache in-transit encryption (TLS) (Cifrado en tránsito [TLS] de ElastiCache).

Para conectarte tanto a clústeres cifrados con CME como a clústeres cifrados con CMD, utiliza la opción --tls de redis-cli. Si un clúster tiene un token AUTH establecido, usa la opción -a para proporcionar una contraseña de AUTH.

Nota: A partir de la versión 7 de Redis, el cifrado en tránsito está activado para los clústeres de ElastiCache existentes. No es necesario recompilar o volver a aprovisionar el clúster para cambiar la configuración de TLS del clúster de Redis OSS. Y la disponibilidad de las aplicaciones no se ve afectada.

Al activar el cifrado en tránsito, actualiza la configuración del cliente para usar los nuevos puntos de enlace específicos de TLS.

Conexión a clústeres cifrados con CMD

Nota: En los siguientes comandos, sustituye master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com por el punto de enlace de configuración del clúster y 6379 por el número de puerto.

Para conectarte a un clúster con CMD con el cifrado y la autenticación activados, ejecuta uno de los siguientes comandos para tu sistema operativo.

Amazon Linux 2023:

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

Amazon Linux y Amazon Linux 2:

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

Para conectarte a un clúster con CMD que solo tenga activado el cifrado, ejecuta uno de los siguientes comandos para tu sistema operativo:

Amazon Linux 2023:

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

Amazon Linux y Amazon Linux 2:

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

Conexión a clústeres cifrados con CME

Para conectarte a un clúster con CME con el cifrado y la autenticación activados, ejecuta uno de los siguientes comandos para tu sistema operativo:

Amazon Linux 2023:

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

Amazon Linux y Amazon Linux 2:

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

Para conectarse a un clúster de CME que solo tiene activado el cifrado, ejecute uno de los siguientes comandos en su sistema operativo:

Amazon Linux 2023:

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

Amazon Linux y Amazon Linux 2:

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

Alternativa a redis-cli

Para ejecutar una prueba breve sin la compilación de redis-cli, utiliza telnet u openssl para conectarte a un clúster con CMD.

Tras conectarte, puedes ejecutar los comandos de Redis.

El siguiente comando de ejemplo se conecta a un clúster con CMD cifrado o autenticado:

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

Si estableces una contraseña para el clúster, conéctate primero al clúster. Después de conectarte, ejecuta el siguiente comando para autenticar el clúster y, a continuación, presiona Entrar:

Auth Password

Nota: En el comando de ejemplo anterior, sustituye Password por la contraseña del clúster.

El siguiente comando de ejemplo se conecta a un clúster con CMD que no tiene activado el cifrado ni la autenticación:

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

Conexión a un clúster de Memcached de ElastiCache

Para conectarte a un clúster de Memcached, usa la utilidad telnet.

Conexión a un clúster de Memcached sin cifrado en tránsito

Sigue estos pasos:

  1. Instala la utilidad telnet en la instancia desde la que deseas probar una conexión.

    Para los sistemas basados en CentOS, ejecuta el siguiente comando:

    sudo yum install telnet

    Para los sistemas basados en Debian (Ubuntu), ejecuta el siguiente comando:

    sudo apt-get install telnet

    Para conectarte a una instancia, consulta Conexión con instancias EC2.

  2. Para conectarte al punto de enlace, ejecuta el siguiente comando:

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

    Nota: Sustituye mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com por el punto de enlace y 11211 por el puerto del nodo.

    Resultado del ejemplo:

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

    Ahora estás conectado a un nodo y puedes ejecutar los comandos de Memcached.

    Ejemplos de comandos de Memcached:

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

Conexión a un clúster de Memcached con cifrado en tránsito

El cifrado en tránsito se admite en los clústeres que ejecutan las versiones 1.6.12 y posteriores de Memcached. Telnet no utiliza cifrado. Para conectarte a un clúster de Memcached habilitado para el cifrado, utiliza openssl.

Nota: Puedes activar el cifrado en tránsito en un clúster solo al crear el clúster. No puedes modificar el clúster para activar o desactivar el cifrado en tránsito. Para obtener más información, consulta ElastiCache in-transit encryption (TLS) (Cifrado en tránsito [TLS] de ElastiCache).

Para conectarte al punto de enlace, ejecuta el siguiente comando:

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

Nota: Sustituye testwithtls.qtyxq7.cfg.apse2.cache.amazonaws.com por el punto de enlace y 11211 por el puerto del nodo.

Resultado del ejemplo:

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

Ahora estás conectado a un nodo y puedes ejecutar los comandos de Memcached.

Ejemplos de comandos de Memcached:

set a 0 0 5helloSTORED
get a
VALUE a 0 5
hello
END
OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 3 meses