Come faccio a testare la mia connessione a un cluster Amazon ElastiCache Redis o Memcached?

9 minuti di lettura
0

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

Breve descrizione

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

Nota: questa risoluzione riguarda il test di una connessione solo per un uso non pianificato. Per un elenco dei client Redis supportati, consulta la documentazione nel sito Web Redis.

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

Risoluzione

Creazione del cluster ElastiCache

Nota: se ti stai connettendo a un cluster esistente, vai al passaggio successivo.

Per informazioni sulla creazione di un cluster Redis ElastiCache, consulta Creazione di un cluster (Guida per l'utente di Amazon ElastiCache per Redis).

Per informazioni sulla creazione di un cluster Memcached, consulta Creazione di un cluster (Guida per l'utente di Amazon ElastiCache per Memcached).

Connessione al cluster Redis ElastiCache

ElastiCache supporta sia i cluster Redis disabilitati che quelli abilitati per la modalità cluster. Per testare una connessione a questi cluster, usa l'utilità redis-cli o redis6-cli. La versione più recente di redis-cli e redis6-cli supporta il protocollo SSL/TLS per la connessione a cluster con crittografia e autenticazione attivate. Scarica e compila l'utilità redis-cli sull'istanza di Amazon Elastic Compute Cloud (Amazon EC2) da cui ti stai connettendo. Per istruzioni su come connettersi a un'istanza Amazon EC2, consulta Tutorial: Nozioni di base sulle istanze Amazon EC2 Linux.

Nota: l'esempio seguente utilizza istanze EC2 che eseguono Amazon Linux, Amazon Linux 2 e Amazon Linux 2023. Per la documentazione sull'installazione e la compilazione di redis-cli e redis6-cli con altre distribuzioni Linux, consulta la documentazione relativa al tuo sistema operativo specifico.

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

Per impostazione predefinita, redis-cli utilizza una connessione TCP non crittografata quando si connette a Redis. 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. Nei passaggi seguenti, i cluster crittografati o non crittografati fanno riferimento alla crittografia in transito.

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

Per informazioni sulla ricerca degli endpoint Redis, consulta Individuazione degli endpoint di connessione.

Connessione a un cluster non crittografato disabilitato in modalità cluster

  1. Per connetterti al cluster, esegui il seguente comando. Nel seguente comando di esempio, sostituisci change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com e 6379 con l'endpoint del tuo cluster e il tuo numero di porta:

    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 restituisce un prompt dei comandi Redis simile al seguente esempio:

    change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com:6379>
  2. Dopo esserti connesso al cluster, puoi eseguire comandi Redis come i seguenti esempi:

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

    Per ulteriori informazioni, consulta Commands sul sito Web redis.io.

Connessione a un cluster non crittografato abilitato in modalità cluster

Per connetterti al cluster, esegui il seguente comando. Nel seguente comando di esempio, sostituisci cluster-disable-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com e 6379 con l'endpoint del tuo cluster e il tuo numero di porta:

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: in questi comandi, l'opzione -c attiva la modalità cluster dopo i reindirizzamenti -ASK e -MOVED. Per ulteriori informazioni, consulta Client and Server roles in the Redis cluster protocol sul sito Web redis.io.

Il risultato nel prompt dei comandi di Redis sarà simile al seguente esempio:

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

Ora puoi eseguire i comandi Redis. Il reindirizzamento avviene a causa dell'opzione**-c**. Se non attivi il reindirizzamento, il comando restituirà l'errore MOVED. Per ulteriori informazioni sull'errore MOVED, consulta Redis cluster specification sul sito Web Redis.

Ecco alcuni esempi di comandi 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"

Connessione a un cluster con crittografia e autenticazione attivate

Hai la possibilità di attivare AUTH. Tuttavia, per attivare il comando AUTH, è necessario attivare la crittografia dei dati in transito. Per i dettagli sulla crittografia e l'autenticazione ElastiCache, consulta Crittografia in transito ElastiCache (TLS).

Per connetterti a cluster criptati sia in modalità cluster abilitata che disabilitata, utilizza l'opzione --tls con redis-cli. Se un cluster ha un token AUTH impostato, puoi utilizzare l'opzione -a per fornire una password AUTH.

Nota: nella versione 7 e successive di Redis, la crittografia in transito è attivata per i cluster ElastiCache esistenti. Puoi modificare la configurazione TLS dei tuoi cluster Redis senza doverli ricostruire, effettuare un nuovo provisioning o incidere sulla disponibilità delle applicazioni. Quando attivi la crittografia in transito, aggiorna la configurazione del client per utilizzare i nuovi endpoint specifici per TLS. Per ulteriori informazioni, consulta Best practice per stabilire connessioni prima, durante e dopo l'abilitazione della crittografia dei dati in transito.

Negli esempi seguenti, sostituisci l'endpoint e la porta del tuo cluster.

Connessione ai cluster crittografati disabilitati in modalità cluster

Il seguente comando di esempio si connette a un cluster con crittografia e autenticazione attivate:

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

Il seguente comando di esempio si connette a un cluster in cui è attivata solo la crittografia:

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 ai cluster crittografati abilitati in modalità cluster

Il seguente comando di esempio si connette a un cluster con crittografia e autenticazione attivate:

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

Il seguente comando di esempio si connette a un cluster in cui è attivata solo la crittografia:

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

Dopo aver effettuato la connessione al cluster, puoi eseguire i comandi Redis come mostrato negli esempi precedenti per i cluster non crittografati.

Alternativa a redis-cli

Per un breve test senza passare attraverso la compilazione di redis-cli, puoi connetterti a un cluster che non è abilitato alla modalità cluster. Per eseguire questa operazione, utilizza telnet o openssl. Nei seguenti comandi di esempio, sostituisci l'endpoint e la porta del tuo cluster.

Nota: per installare l'utilità telnet, consulta la sezione seguente Connessione a un cluster Memcached senza crittografia in transito.

Dopo la connessione, puoi eseguire i comandi Redis come mostrato negli esempi precedenti.

Il seguente comando di esempio si collega a un cluster con modalità di crittografia o autenticazione disabilitata:

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

Se il cluster ha una password impostata, effettua prima la connessione. Dopo la connessione, utilizza il seguente comando per autenticare il cluster, poi premi il tastoInvio. Nel seguente comando di esempio, sostituisci Password con la password del tuo cluster:

Auth Password

Il comando di esempio seguente si collega a un cluster con la modalità cluster disabilitata che non ha la crittografia o l'autenticazione 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

  1. Installa l'utilità telnet sull'istanza EC2 da cui stai testando 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 istruzioni su come connettersi a un'istanza Amazon EC2, consulta Tutorial: Nozioni di base sulle istanze Amazon EC2 Linux.

  2. Per connetterti all'endpoint, esegui il seguente comando di esempio. Sostituisci mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com con il tuo endpoint e 11211 con la porta del tuo nodo:

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

    L'output sarà simile al seguente esempio:

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

Hai effettuato la connessione a un nodo. Puoi eseguire i comandi Memcached come mostrato nel seguente output di esempio:

set a 0 0 5hello
STORED
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 alla crittografia, utilizza il client openssl.

Nota: è possibile attivare la crittografia dei dati in transito su un cluster solo durante la sua creazione. Non è possibile modificare il cluster per attivare e disattivare la crittografia in transito. Per ulteriori informazioni, consulta Crittografia in transito ElastiCache (TLS).

Per connetterti all'endpoint, esegui il seguente comando di esempio. Sostituisci testwithtls.qtyxq7.cfg.apse2.cache.amazonaws.com con il tuo endpoint e 11211 con la porta del tuo nodo:

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

Ecco un 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

Hai effettuato la connessione a un nodo. Puoi eseguire i comandi Memcached come mostrato nel seguente output di esempio:

set a 0 0 5hello
STORED
get a
VALUE a 0 5
hello
END
AWS UFFICIALE
AWS UFFICIALEAggiornata 6 mesi fa