Come posso testare la mia connessione a un cluster ElastiCache per Redis OSS o Memcached?

8 minuti di lettura
0

Desidero testare la mia connessione a un cluster Amazon ElastiCache per Redis OSS o Amazon ElastiCache per Memcached da un client basato su Linux.

Risoluzione

Nota: la seguente risoluzione verifica una connessione solo per un uso non pianificato. Per un elenco dei client Redis supportati, consulta Connect with Redis clients sul sito web di Redis.

Amazon ElastiCache supporta i motori chiave-valore in memoria Redis OSS e Memcached. Quando avvii un cluster di cache ElastiCache, scegli il motore che preferisci.

Per Memcached con Java, .NET o PHP, è consigliabile utilizzare i client ElastiCache con Individuazione automatica. I client ElastiCache con Individuazione automatica identificano automaticamente i nuovi nodi ElastiCache quando vengono aggiunti al cluster di cache.

Creazione del cluster ElastiCache

Per creare un cluster ElastiCache Redis OSS, consulta Creating a cluster for Valkey or Redis OSS (Creazione di un cluster per Valkey o Redis OSS).

Per creare un cluster Memcached, consulta Creating a cluster for Memcached (Creazione di un cluster per Memcached).

Connessione al cluster Redis ElastiCache OSS

ElastiCache supporta i cluster Redis OSS sia in modalità cluster abilitata (CMD) che in modalità cluster disabilitata (CME). Per testare una connessione ai cluster, usa l'utilità redis-cli o redis6-cli. L'ultima versione di redis-cli e redis6-cli supporta il protocollo SSL/TLS per connettersi a cluster con crittografia o autenticazione attivate.

Scarica e compila l'utilità redis-cli sull'istanza di Amazon Elastic Compute Cloud (Amazon EC2) da cui desideri connetterti. Per ulteriori informazioni, consulta Guida introduttiva ad Amazon EC2.

Nota: l'esempio seguente utilizza istanze Amazon EC2 che eseguono Amazon Linux, Amazon Linux 2 e Amazon Linux 2023. Per installare e compilare redis-cli e redis6-cli con altre distribuzioni Linux, consulta la documentazione del sistema operativo in uso.

Per connetterti al cluster ElastiCache Redis OSS, esegui uno dei seguenti comandi per il tuo 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

Quando Redis-CLI si connette a Redis, utilizza una connessione TCP non crittografata. Durante la compilazione di redis-cli, l'opzione BUILD_TLS=yes attiva SSL/TLS. Se il cluster a cui ti connetti non dispone di crittografia in transito, non è necessaria l'opzione Build_TLS=yes.

Nota: quando installi il pacchetto redis6, installi automaticamente redis6-cli con il supporto SSL/TLS predefinito.

Per informazioni su come trovare endpoint Redis, consulta Finding connection endpoints in ElastiCache (Individuazione degli endpoint di connessione in ElastiCache).

Nei passaggi seguenti, i cluster crittografati o non crittografati fanno riferimento alla crittografia in transito.

Connessione a un cluster CMD non crittografato

Nota: nei seguenti comandi, sostituisci change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com con l'endpoint del tuo cluster e 6379 con il tuo numero di porta.

Esegui uno dei seguenti comandi per il tuo sistema operativo.

Amazon Linux 2023:

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

Amazon Linux e Amazon Linux 2:

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

Questo comando antecedente restituisce un prompt dei comandi Redis simile al seguente esempio:

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

Dopo esserti connesso al cluster, puoi eseguire i comandi Redis.

Comando di esempio:

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

Per ulteriori informazioni, consulta Commands sul sito web di Redis.

Connessione a un cluster CME non crittografato

Nota: nei seguenti comandi, sostituisci cluster-disable-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com con l'endpoint di configurazione del tuo cluster e 6379 con il tuo numero di porta.

Esegui uno dei seguenti comandi per il tuo sistema operativo.

Amazon Linux 2023:

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

Amazon Linux e Amazon Linux 2:

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

Nota: nei comandi antecedenti, l'opzione -c attiva la modalità cluster dopo i reindirizzamenti -ASK e -MOVED. Se non attivi il reindirizzamento, il comando restituirà l'errore MOVED. Per ulteriori informazioni, consulta Client and Server roles in the Redis cluster protocol e Redis cluster specification sul sito web di Redis.

Questo comando antecedente restituisce un prompt dei comandi Redis simile al seguente esempio:

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

Esempi di comandi 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"

Connessione a un cluster con crittografia o autenticazione attivata

Per attivare AUTH, è necessario anche attivare la crittografia dei dati in transito. Per ulteriori informazioni, consulta ElastiCache in-transit encryption (TLS) (Crittografia in transito ElastiCache (TLS)).

Per connetterti a cluster crittografati CMD e CME, utilizza l'opzione**--tls** in redis-cli. Se è stato impostato un token AUTH per il cluster, utilizza l'opzione -a per fornire una password AUTH.

Nota: nelle versioni 7 e successive di Redis, la crittografia in transito è attivata per i cluster ElastiCache esistenti. Non è necessario ricostruire o effettuare nuovamente il provisioning del cluster per modificare la configurazione TLS del cluster Redis OSS. La disponibilità delle applicazioni non è influenzata.

Quando attivi la crittografia in transito, aggiorna la configurazione del client per utilizzare i nuovi endpoint specifici per TLS.

Connessione a cluster crittografati con CMD

Nota: nei seguenti comandi, sostituisci master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com con l'endpoint di configurazione del tuo cluster e 6379 con il tuo numero di porta.

Per connetterti a un cluster CMD con crittografia e autenticazione attivate, esegui uno dei seguenti comandi per il tuo sistema operativo.

Amazon Linux 2023:

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

Amazon Linux e Amazon Linux 2:

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

Per connetterti a un cluster CMD con solo la crittografia attivata, esegui uno dei seguenti comandi per il tuo sistema operativo:

Amazon Linux 2023:

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

Amazon Linux e Amazon Linux 2:

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

Connessione a cluster crittografati con CME

Per connetterti a un cluster CME con crittografia e autenticazione attivate, esegui uno dei seguenti comandi per il tuo sistema operativo:

Amazon Linux 2023:

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

Amazon Linux e Amazon Linux 2:

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

Per connetterti a un cluster CME con solo la crittografia attivata, esegui uno dei seguenti comandi per il tuo sistema operativo:

Amazon Linux 2023:

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

Amazon Linux e Amazon Linux 2:

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

Alternativa a redis-cli

Per eseguire un breve test senza la compilazione di redis-cli, utilizza telnet o openssl per connetterti a un cluster CMD.

Dopo la connessione, puoi eseguire i comandi Redis.

Il comando di esempio seguente si connette a un cluster CMD crittografato o autenticato:

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

Se imposti una password per il cluster, esegui prima la connessione al cluster. Dopo la connessione, esegui il seguente comando per autenticare il cluster, quindi premi il tasto Invio:

Auth Password

Nota: nel comando di esempio precedente, sostituisci Password con la password del tuo cluster

Il comando di esempio seguente si collega a un cluster CMD in cui la crittografia o l'autenticazione non sono attivate:

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

Connessione a un cluster ElastiCache Memcached

Per connetterti a un cluster Memcached, utilizza l'utilità telnet.

Connessione a un cluster Memcached senza crittografia in transito

Completa i seguenti passaggi:

  1. Installa l'utilità telnet sull'istanza da cui desideri testare la connessione.

    Per i sistemi basati su CentOS, esegui il seguente comando:

    sudo yum install telnet

    Per i sistemi basati su Debian (Ubuntu), esegui il seguente comando:

    sudo apt-get install telnet

    Per connetterti a un'istanza, consulta Connect to your EC2 instance (Connessione all'istanza EC2).

  2. Per connetterti all'endpoint, esegui il seguente comando:

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

    Nota: sostituisci mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com con il tuo endpoint e 11211 con la porta del tuo nodo.

    Esempio di output:

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

    Ora sei connesso a un nodo e puoi eseguire i comandi Memcached.

    Comandi Memcached di esempio:

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

Connessione a un cluster MemCached con crittografia in transito

La crittografia in transito è supportata sui cluster che eseguono Memcached versione 1.6.12 e successive. Telnet non utilizza la crittografia. Per connetterti a un cluster MemCached abilitato per la crittografia, utilizza openssl.

Nota: puoi attivare la crittografia in transito su un cluster solo durante la sua creazione. Non puoi modificare il cluster per attivare e disattivare la crittografia in transito. Per ulteriori informazioni, consulta ElastiCache in-transit encryption (TLS) (Crittografia in transito ElastiCache (TLS)).

Per connetterti all'endpoint, esegui il seguente comando:

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

Nota: sostituisci testwithtls.qtyxq7.cfg.apse2.cache.amazonaws.com con il tuo endpoint e 11211 con la porta del tuo nodo.

Esempio di output:

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

Ora sei connesso a un nodo e puoi eseguire i comandi Memcached.

Comandi Memcached di esempio:

set a 0 0 5helloSTORED
get a
VALUE a 0 5
hello
END
AWS UFFICIALE
AWS UFFICIALEAggiornata 3 mesi fa