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

10 minutos de lectura
0

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

Breve descripción

Amazon ElastiCache admite dos motores de clave-valor en memoria: Redis y Memcached. Cuando inicie un clúster de caché de ElastiCache, elija su motor preferido.

Nota: Esta solución trata la prueba de una conexión solo para un uso no planificado. Para obtener una lista de los clientes de Redis compatibles, consulte la documentación del sitio web de Redis.

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é.

Solución

Crear el clúster de ElastiCache

Nota: Si se conecta a un clúster existente, continúe con el paso siguiente.

Para obtener información sobre cómo crear un clúster de Redis de ElastiCache, consulte Crear un clúster (Guía del usuario de Amazon ElastiCache para Redis).

Para obtener información sobre cómo crear un clúster de Memcached, consulte Crear un clúster (Guía del usuario de Amazon ElastiCache para Memcached).

Conectarse al clúster de Redis de ElastiCache

ElastiCache admite clústeres de Redis deshabilitados y habilitados para el modo de clúster. Para probar una conexión a estos clústeres, utilice 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 y la autenticación activados. Descargue y compile la utilidad redis-cli en la instancia de Amazon Elastic Compute Cloud (Amazon EC2) desde la que se conecta. Para obtener instrucciones sobre cómo conectarse a una instancia de Amazon EC2, consulte Tutorial: Get started with Amazon EC2 Linux instances.

Nota: En el siguiente ejemplo, se usan instancias de EC2 que ejecutan Amazon Linux, Amazon Linux 2 y Amazon Linux 2023. Para obtener documentación sobre la instalación y compilación de redis-cli y redis6-cli con otras distribuciones de Linux, consulte la documentación de su sistema operativo específico.

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

De forma predeterminada, redis-cli usa una conexión TCP no cifrada cuando se conecta a Redis. La opción BUILD_TLS=yes activa SSL/TLS durante la compilación de redis-cli. Si el clúster al que se conecta no tiene cifrado en tránsito, no necesita la opción Build_TLS=yes. En los pasos siguientes, los clústeres cifrados o no cifrados se refieren al cifrado en tránsito.

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

Para obtener información sobre la búsqueda de puntos de conexión de Redis, consulte Búsqueda de puntos de enlace de conexión.

Conectarse a un clúster no cifrado deshabilitado para el modo de clúster

  1. Para conectarse al clúster, ejecute el siguiente comando. En el siguiente comando de ejemplo, reemplace change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com y 6379 por el punto de conexión del clúster y el número de puerto:

    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

    Este comando 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>
  2. Después de conectarse al clúster, puede ejecutar comandos de Redis, como los siguientes ejemplos:

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

    Para obtener más información, consulte Commands en el sitio web redis.io.

Conectarse a un clúster no cifrado habilitado para el modo de clúster

Para conectarse al clúster, ejecute el siguiente comando. En el siguiente comando de ejemplo, reemplace cluster-disable-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com y 6379 por el punto de conexión de conexión del clúster y el número de puerto:

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 estos comandos, la opción -c activa el modo de clúster después de las redirecciones -ASK y -MOVED. Para obtener más información, consulte Client and Server roles in the Redis cluster protocol en el sitio web redis.io.

El resultado de una línea de comandos de Redis es similar al del siguiente ejemplo:

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

Ahora puede ejecutar los comandos de Redis. La redirección se produce debido a la opción**-c**. Si no activa la redirección, el comando devuelve el error MOVED. Para obtener más información sobre el error MOVED, consulte Redis cluster specification en el sitio web de Redis.

Estos son algunos ejemplos de comandos de 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"

Conectarse a un clúster con el cifrado y la autenticación activados

La activación de AUTH es opcional. Sin embargo, para activar AUTH, tiene que activar el cifrado en tránsito. Para obtener más información sobre el cifrado y la autenticación de ElastiCache, consulte Cifrado en tránsito (TLS) de ElastiCache.

Para conectarse a los clústeres cifrados habilitados y deshabilitados para el modo de clúster, utilice la opción --tls con redis-cli. Si un clúster tiene un token AUTH establecido, puede usar 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. Puede cambiar la configuración de TLS de sus clústeres de Redis sin volver a crearlos ni aprovisionarlos ni afectar a la disponibilidad de las aplicaciones. Al activar el cifrado en tránsito, actualice la configuración del cliente para usar los nuevos puntos de conexión específicos de TLS. Para obtener más información, consulte Prácticas recomendadas para establecer conexiones antes, durante y después de habilitar el cifrado en tránsito.

En los siguientes ejemplos, sustituya el punto de conexión y el puerto del clúster.

Conectarse a clústeres cifrados deshabilitados para el modo de clúster

El siguiente comando de ejemplo se conecta a un clúster con el cifrado y la autenticación activados:

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

El siguiente comando de ejemplo se conecta a un clúster que solo tiene activado el cifrado:

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

Conectarse a clústeres cifrados habilitados para el modo de clúster

El siguiente comando de ejemplo se conecta a un clúster con el cifrado y la autenticación activados:

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

El siguiente comando de ejemplo se conecta a un clúster que solo tiene activado el cifrado:

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

Después de conectarse al clúster, puede ejecutar los comandos de Redis como se muestra en los ejemplos anteriores para los clústeres no cifrados.

Alternativa a redis-cli

Para realizar una breve prueba sin pasar por la compilación redis-cli, puede conectarse a un clúster que no tenga habilitado el modo de clúster. Para ello, puede utilizar telnet u openssl. En los siguientes comandos de ejemplo, sustituya el punto de conexión y el puerto del clúster.

Nota: Para instalar la utilidad telnet, consulte la sección Conectarse a un clúster de Memcached sin cifrado en tránsito.

Después de conectarse, puede ejecutar los comandos de Redis como se muestra en los ejemplos anteriores.

El siguiente comando de ejemplo se conecta a un clúster deshabilitado para el modo de clúster de cifrado o autenticación:

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

Si el clúster tiene una contraseña establecida, conéctese primero al clúster. Después de conectarse, utilice el siguiente comando para autenticar el clúster y, a continuación, presione la tecla Intro. En el siguiente comando de ejemplo, sustituya Password por la contraseña del clúster:

Auth Password

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

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

Conectarse un clúster de Memcached de ElastiCache

Para conectarse a un clúster de Memcached, utilice la utilidad telnet.

Conectarse a un clúster de Memcached sin cifrado en tránsito

  1. Instale la utilidad telnet en la instancia de EC2 desde la que está probando la conexión.

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

    $sudo yum install telnet

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

    $sudo apt-get install telnet

    Para obtener instrucciones sobre cómo conectarse a una instancia de Amazon EC2, consulte Tutorial: Get started with Amazon EC2 Linux instances.

  2. Para conectarse al punto de conexión, ejecute el siguiente comando de ejemplo. Sustituya mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com por el punto de conexión y 11211 por el puerto del nodo:

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

    El resultado es similar al siguiente ejemplo:

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

Ahora está conectado a un nodo. Puede ejecutar comandos de Memcached como se muestra en el siguiente ejemplo de salida:

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

Conectarse 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 conectarse a un clúster de Memcached habilitado para el cifrado, utilice el cliente openssl.

Nota: Puede activar el cifrado en tránsito en un clúster solo al crear el clúster. No puede modificar el clúster para activar y desactivar el cifrado en tránsito. Para obtener más información, consulte Cifrado en tránsito (TLS) de ElastiCache.

Para conectarse al punto de conexión, ejecute el siguiente comando de ejemplo. Sustituya testwithtls.qtyxq7.cfg.apse2.cache.amazonaws.com por el punto de conexión y 11211 por el puerto del nodo:

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

El siguiente es un ejemplo de salida:

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á conectado a un nodo. Puede ejecutar comandos de Memcached como se muestra en el siguiente ejemplo de salida:

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