Como faço para testar minha conexão com um cluster Redis ou Memcached do Amazon ElastiCache?

10 minuto de leitura
0

Quero testar minha conexão com um cluster do Amazon ElastiCache para Redis ou do Amazon ElastiCache para Memcached a partir de um cliente baseado em Linux.

Breve descrição

O Amazon ElastiCache oferece suporte a dois mecanismos de valores-chave na memória, Redis e Memcached. Ao iniciar um cluster de cache do ElastiCache, escolha seu mecanismo preferido.

Observação: esta resolução abrange o teste de uma conexão somente para uso não planejado. Para obter uma lista dos clientes Redis compatíveis, consulte a documentação do Redis.

Para Memcached com Java, .NET ou PHP, é prática recomendada usar clientes do ElastiCache com Descoberta automática. Clientes do ElastiCache com Descoberta automática identificam automaticamente novos nós do ElastiCache quando eles são adicionados ao cluster de cache.

Resolução

Criar o cluster ElastiCache

Observação: se estiver se conectando a um cluster existente, vá para a próxima etapa.

Para obter informações sobre como criar um cluster Redis do ElastiCache, consulte Criar um cluster (Guia do usuário do Amazon ElastiCache para Redis).

Para obter informações sobre como criar um cluster Memcached, consulte Criar um cluster (Guia do usuário do Amazon ElastiCache para Memcached).

Conectar-se ao cluster Redis do ElastiCache

O ElastiCache é compatível com clusters Redis tanto para o modo de cluster desativado quanto para o modo de cluster ativado. Para testar uma conexão com esses clusters, use o utilitário redis-cli ou redis6-cli. As versões mais recentes do redis-cli e do redis6-cli oferecem suporte a SSL/TLS para se conectar a clusters com criptografia e autenticação ativada. Baixe e compile o utilitário redis-cli na instância do Amazon Elastic Compute Cloud (Amazon EC2) da qual você está se conectando. Para obter instruções sobre como se conectar a uma instância do Amazon EC2, consulte Tutorial: Comece a usar instâncias de Linux do Amazon EC2.

Observação: o exemplo a seguir usa instâncias do EC2 que executam Amazon Linux, Amazon Linux 2 e Amazon Linux 2023. Para obter a documentação sobre a instalação e compilação do redis-cli e do redis6-cli com outras distribuições Linux, consulte a documentação do seu sistema operacional 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

Por padrão, o redis-cli usa uma conexão TCP não criptografada quando se conecta ao Redis. Quando o redis-cli é compilado, a opção BUILD_TLS=yes ativa o SSL/TLS. Se o cluster ao qual você se conecta não tiver criptografia em trânsito, você não precisará da opção Build_TLS=yes. Nas etapas a seguir, clusters criptografados ou não criptografados se referem à criptografia em trânsito.

Observação: ao instalar o pacote redis6, você instala automaticamente o redis6-cli com suporte SSL/TLS padrão.

Para obter informações sobre como descobrir endpoints Redis, consulte Localização de endpoints de conexão.

Conectar-se a cluster não criptografado com modo de cluster desativado

  1. Para se conectar ao cluster, execute o comando a seguir. No exemplo de comando a seguir, substitua change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com e 6379 pelo endpoint do seu cluster e seu número de 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

    Esse comando retorna um prompt de comando do Redis semelhante ao exemplo a seguir:

    change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com:6379>
  2. Depois de se conectar ao cluster, você pode executar comandos do Redis, como os exemplos a seguir:

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

    Para obter mais informações, consulte Comandos no site redis.io.

Conectar-se a um cluster não criptografado com modo de cluster ativado

Para se conectar ao cluster, execute o comando a seguir. No exemplo de comando a seguir, substitua cluster-disable-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com e 6379 pelo endpoint de configuração do seu cluster e seu número de 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

Observação: nesses comandos, a opção -c ativa o modo de cluster após os redirecionamentos -ASK e -MOVED. Para obter mais informações, consulte Client and Server roles in the Redis cluster protocol no site redis.io.

O resultado em um prompt de comando do Redis é semelhante ao exemplo a seguir:

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

Agora você pode executar comandos do Redis. O redirecionamento ocorre devido à opção**-c**. Se você não ativar o redirecionamento, o comando retornará o erro MOVED. Para obter mais informações sobre o erro MOVED, consulte a Redis cluster specification no site do Redis.

Veja alguns exemplos de comandos do 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"

Conectar-se a um cluster com criptografia e autenticação ativadas

Você tem a opção de ativar AUTH. No entanto, para ativar AUTH, você deve ativar a criptografia em trânsito. Para obter detalhes sobre criptografia e autenticação do ElastiCache, consulte Criptografia em trânsito (TLS) do ElastiCache.

Para se conectar aos clusters criptografados do modo de cluster ativado e do modo de cluster desativado, use a opção --tls com o redis-cli. Se um cluster tiver um token AUTH definido, você poderá usar a opção -a para fornecer uma senha AUTH.

Observação: na versão 7 e posteriores do Redis, a criptografia em trânsito é ativada para clusters existentes do ElastiCache. Você pode alterar a configuração de TLS dos seus clusters Redis sem reconstruí-los, reprovisioná-los ou impactar a disponibilidade do aplicativo. Ao ativar a criptografia em trânsito, atualize a configuração do cliente para usar os novos endpoints específicos de TLS. Para obter mais informações, consulte Práticas recomendadas para estabelecer conexões antes, durante e depois de ativar a criptografia em trânsito.

Nos exemplos a seguir, substitua o endpoint e a porta do seu cluster.

Conectar-se a clusters criptografados desativados no modo de cluster

O exemplo de comando a seguir faz a conexão com um cluster com criptografia e autenticação ativadas:

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

O exemplo de comando a seguir faz a conexão com um cluster que tem somente a criptografia ativada:

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

Conectar-se a clusters criptografados com modo de cluster ativado

O exemplo de comando a seguir faz a conexão com um cluster com criptografia e autenticação ativadas:

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

O exemplo de comando a seguir faz a conexão com um cluster que tem somente a criptografia ativada:

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

Depois de se conectar ao cluster, você pode executar comandos do Redis conforme mostrado nos exemplos anteriores sobre clusters não criptografados.

Alternativa ao redis-cli

Para fazer um breve teste sem passar pela compilação redis-cli, você pode se conectar a um cluster que não esteja habilitado para o modo de cluster. Para fazer isso, use telnet ou openssl. Nos exemplos de comandos a seguir, substitua o endpoint e a porta do seu cluster.

Observação: para instalar o utilitário telnet, consulte a seção Conectar-se a um cluster Memcached sem criptografia em trânsito, a seguir.

Depois de se conectar, você pode executar comandos do Redis conforme mostrado nos exemplos anteriores.

O exemplo de comando a seguir faz a conexão com um cluster desativado no modo de cluster de criptografia ou autenticação:

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

Se o cluster tiver uma senha definida, conecte-se primeiro ao cluster. Depois de se conectar, use o comando a seguir para autenticar o cluster e use a tecla Enter. No comando de exemplo a seguir, substitua Senha pela senha do seu cluster:

Auth Password

O exemplo de comando a seguir faz a conexão com a um cluster desativado no modo de cluster sem criptografia ou autenticação ativadas:

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

Conectar-se a um cluster ElastiCache Memcached

Para se conectar a um cluster Memcached, use o utilitário telnet.

Conectar-se a um cluster Memcached sem criptografia em trânsito

  1. Instale o utilitário telnet na instância do EC2 da qual você está testando uma conexão.

    Para sistemas baseados em CentOS, execute o seguinte comando:

    $sudo yum install telnet

    Para sistemas baseados em Debian (Ubuntu), execute o seguinte comando:

    $sudo apt-get install telnet

    Para obter instruções sobre como se conectar a uma instância do Amazon EC2, consulte Tutorial: Comece a usar instâncias de Linux do Amazon EC2.

  2. Para se conectar ao endpoint, execute o exemplo de comando a seguir. Substitua mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com pelo seu endpoint e 11211 pela porta do seu nó:

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

    A saída é semelhante ao exemplo a seguir:

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

Agora você está conectado a um nó. Você pode executar comandos do Memcached conforme mostrado no exemplo de saída a seguir:

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

Conectar-se a um cluster MemCached com criptografia em trânsito

A criptografia em trânsito é compatível com clusters que executam as versões 1.6.12 e posteriores do Memcached. O Telnet não usa criptografia. Para se conectar a um cluster MemCached com criptografia, use o cliente openssl.

Observação: você somente pode ativar a criptografia em trânsito em um cluster ao criá-lo. Não é possível modificar o cluster para ativar e desativar a criptografia em trânsito. Para obter mais informações, consulte Criptografia em trânsito (TLS) do ElastiCache.

Para se conectar ao endpoint, execute o exemplo de comando a seguir. Substitua testwithtls.qtyxq7.cfg.apse2.cache.amazonaws.com pelo seu endpoint e 11211 pela porta do seu nó:

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

Veja um exemplo de saída:

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

Agora você está conectado a um nó. Você pode executar comandos do Memcached conforme mostrado no exemplo de saída a seguir:

set a 0 0 5hello
STORED
get a
VALUE a 0 5
hello
END
AWS OFICIAL
AWS OFICIALAtualizada há 7 meses