Como configurar um cluster do Redis para escalabilidade e alta disponibilidade

Configuração, definição, segurança e fornecimento do modo de cluster do Amazon ElastiCache for Redis

Neste tutorial, você saberá como criar e definir um cluster do Redis com o ElastiCache for Redis. Com o modo de cluster habilitado, seu cluster do Redis adquire uma escalabilidade melhorada e alta disponibilidade. Você pode começar aos poucos escalando seus dados do Redis facilmente conforme seu aplicativo cresce e, ao configurar réplicas em diferentes zonas de disponibilidade, também pode aumentar sua capacidade de leitura. Ao seguir esse tutorial, você também aprenderá sobre as melhores práticas para implantações do cluster do Redis.

Existe um ecossistema muito rico para os clientes do Redis com suporte para recursos do modo de cluster. Ele facilita o trabalho com os dados fragmentados, tornando-o extremamente confiável conforme os clientes podem acompanhar a localização de hashslots em um cache local, melhorando, assim, o desempenho do sistema como um todo.

O nó do ElastiCache criado neste tutorial está qualificado para o nível gratuito.

Faça login no painel do Amazon ElastiCache »

Requisitos

Em algum momento deste tutorial, você terá que se conectar ao seu cluster do Redis para experimentar em primeira mão alguns desses recursos. Isso significa que você precisa acessar uma instância do EC2 com um cliente do Redis instalado. Se você já tem uma instância do EC2 instalada, poderá pular para a etapa 1. Caso contrário, conecte-se à sua instância do Amazon EC2 e siga as instruções abaixo para instalar um cliente do Redis.

Se você não tiver um compilador C disponível, instale um executando:

$ sudo yum install gcc

Faça download e compile um cliente Redis:

$ curl -O http://download.redis.io/redis-stable.tar.gz
$ tar xvzf redis-stable.tar.gz
$ cd redis-stable
$ make distclean  # Ubuntu systems only
$ make

Agora está tudo pronto para começar o tutorial.

Sobre este tutorial
Duração 10 a 20 minutos                                           
Custo Qualificado para o nível gratuito
Caso de uso Escalabilidade, alta disponibilidade, aplicativo em tempo real
Produtos ElastiCache for Redis da AWS, nível gratuito da AWS
Público Desenvolvedores
Nível Iniciante
Data da última atualização 05 de junho de 2019

Etapa 1: insira o painel do ElastiCache

1.1 – No canto superior direito, selecione a região em que você deseja iniciar o cluster do Redis.

1.2 – Clique em “Get Started Now” (Conceitos básicos).

Etapa 2: crie seu cluster do Redis

2.1 – Selecione “Redis” como seu mecanismo de cluster.

2.2 – Verifique “Cluster Mode enabled” (Modo de cluster habilitado).

Etapa 3: defina as configurações do Redis

3.1 – Escolha um nome para seu cluster do Redis, por exemplo, “elc-tutorial”.

3.2 – Altere o tipo de nó para cache.t2.micro. Esse tipo de nó é adequado para este tutorial, mas para um cluster de produção, o tamanho do nó deve depender da sua carga de trabalho e você deve começar pelas famílias de instâncias m5 ou r5.

3.3 – Em Number of Shards (Número de fragmentos), selecione 3. Isso significa que os dados serão divididos em três nós principais diferentes.

3.4 – Em Replicas per Shard (Réplicas por fragmentos), selecione 2. Isso significa que cada nó principal terá duas réplicas. Em caso de falha, um failover automático será acionado e uma das réplicas assumirá a função do nó principal.

3.5 – Selecione um grupo de sub-rede. Se você precisar obter mais informações sobre os grupos de sub-rede, consulte a documentação.

Etapa 4: defina as configurações avançadas do Redis

4.1 – Marque a caixa de seleção “Multi-AZ with Auto-Failover” (Multi-AZ com failover automático).

Cada nó principal será criado em uma zona de disponibilidade diferente e cada uma das réplicas também será alocada em uma zona de disponibilidade diferente. Esta é uma melhor prática para maior confiabilidade.

Deixe os valores pré-definidos para os outros campos.

Etapa 5: defina as configurações de Segurança

Neste exemplo, não usaremos criptografia, mas lembre-se de que você pode definir a criptografia para os dados em repouso e para os dados em trânsito.

5.1 – Selecione um Grupo de segurança para seu cluster do Redis.

Importante: verifique se o Grupo de segurança selecionado permite conexões TCP de entrada na porta 6379. Se não for esse o caso, você não poderá se conectar aos nós do Redis.

Etapa 6: importe dados para o cluster

Neste exemplo, não carregaremos nenhum arquivo RDB inicial para podermos ignorar completamente esta etapa de configuração. Lembre-se de que essa opção está disponível.

Etapa 7: defina os backups

Os backups diários são importantes para a maioria dos casos de uso. Uma boa recomendação é habilitar os backups com um período de retenção que dê tempo suficiente a você para agir caso algo inesperado aconteça. Neste tutorial, não usaremos backups.

7.1 – Desmarque a opção “Enable automatic backups” (Habilitar backups automáticos).

Etapa 8: configurações de manutenção

8.1 – Especifique uma janela de manutenção que atenda às suas necessidades.

Aqui você pode pensar na hora e no dia em que seu aplicativo tem uma carga de trabalho baixa. Para nossas necessidades atuais, podemos apenas declarar “No preference” (Sem preferências).

Etapa 9: revise e crie

Após uma rápida revisão de todos os campos do formulário, você poderá clicar em “Create” (Criar).

9.1 – Clique em “Create” (Criar).

Um cluster do Redis será inicializado e, quando ficar “available” (“disponível”), você poderá prosseguir para a etapa 10.

Se você preferir usar a ILC da Amazon, o comando abaixo criará o cluster do Redis de uma vez:

Se você preferir usar a ILC da Amazon, o comando abaixo criará o cluster do Redis de uma vez:

$ aws elasticache create-replication-group \
--replication-group-id elc-tutorial \
--replication-group-description "Tutorial example" \
--num-node-groups 3 \
--cache-node-type cache.t2.micro \
--cache-parameter-group default.redis5.0.cluster.on \
--engine redis \
--engine-version 5.0.3 \
--cache-subnet-group-name sn-value \
--security-group-ids sg-value \
--node-group-configuration \
"ReplicaCount=2,PrimaryAvailabilityZone='us-east-1a',ReplicaAvailabilityZones='us-east-1b','us-east-1c',Slots=0-5460" \
"ReplicaCount=2,PrimaryAvailabilityZone='us-east-1b',ReplicaAvailabilityZones='us-east-1c','us-east-1a',Slots=5461-10921" \
"ReplicaCount=2,PrimaryAvailabilityZone='us-east-1c',ReplicaAvailabilityZones='us-east-1a','us-east-1b',Slots=10922-16383"

Para o argumento --security-group-ids, você deve substituir o sg-value pelo ID do Grupo de segurança que deseja usar.

Já para o argumento --cache-subnet-group-name, substitua o sn-value pelo nome de um grupo de sub-rede. Se você precisa criar um grupo de sub-rede, use o comando a seguir:

$ aws elasticache create-cache-subnet-group \
--cache-subnet-group-name elc-tutorial-subnet \
--cache-subnet-group-description "Tutorial Subnet Group" \
--subnet-ids sn-ids

O valor de sn-ids deve ser uma lista de IDs de sub-rede.

Se você preferir usar a API da Amazon, o pedido abaixo criará um cluster do Redis:

https://elasticache.us-east-1.amazonaws.com/
?Action=CreateReplicationGroup 
&CacheParameterGroup=default.redis5.0.cluster.on
&Engine=redis
&EngineVersion=5.0.3
&ReplicationGroupDescription=Tutorial%20example
&ReplicationGroupId=elc-tutorial
&NumNodeGroups=3
&PrimaryClusterId=elc-primary
&ReplicasPerNodeGroup=2
&Version=<version>
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=<timestamp>
&X-Amz-Credential=<credential>

No pedido anterior, você precisa fornecer valores para versão, carimbo de data/hora e X-Amz-Credential.

Etapa 10: conecte-se ao Redis

Encontre o endpoint de configuração do seu cluster do Redis.

10.1 – Clique na seta para exibir os detalhes do cluster do Redis.

10.2 – Copie o Endpoint de configuração.

Nos exemplos, sempre que um endpoint for mencionado você deverá usar o nome do host de seu Endpoint de configuração.

10.4 – Use o utilitário redis-cli para conectar-se ao seu nó do Redis.

$ ./src/redis-cli -c -h endpoint

10.5 – Teste a conexão com um PING.

endpoint:6379> PING
	PONG

Etapa 11: dispare um failover

Agora você tem um cluster do Redis funcionando e íntegro Um dos recursos do modo do cluster é o fato que se um nó para de funcionar, o cluster conseguirá se recuperar sozinho. Para testar essa reivindicação, você pode disparar um failover manual e o que vai acontecer é o seguinte: uma réplica de leitura será selecionada para assumir a função de principal, e uma vez que o failover for executado, você será capaz de se conectar ao novo principal. Enquanto isso, uma nova réplica será adicionada automaticamente para que o cluster ainda tenha um principal e duas réplicas.

Usando o endpoint da etapa 10, verifique a função do nó.

11.1 – Verifique a função do endpoint.

	endpoint:6379> ROLE
	1) "master"
 	...

Você deseja se conectar ao principal. Se você não se conectou a um principal, tente um endpoint diferente. Você tem três chances de acertar.

Depois de localizar o nó principal:

11.2 – Selecione qualquer um dos nós, clique em “Action” (Ação) e selecione “Failover primary” (Failover primário).

Leia a mensagem para entender o que está acontecendo e clique em “Continue” (Continuar). Uma das réplicas se tornará um novo principal, e o número de réplicas de acordo com o principal será restaurado. Você pode executar o comando NÓS DO CLUSTER para verificar o que está acontecendo.

Etapa 12: exclua o cluster

Para concluir este experimento, você aprenderá como excluir o cluster do Redis quando ele não for mais necessário.

Para excluir o cluster do Redis, acesse o Painel do ElastiCache e siga estas instruções:

12.1 – Selecione “Redis” no painel à esquerda.

Aparecerá uma lista de todos os clusters do Redis.

12.2 – Selecione o cluster do Redis criado para este tutorial.

12.3 – Clique em “Delete” (Excluir).

12.4 – Você será solicitado a informar se deseja criar um backup final. Isso costuma ser uma boa ideia, mas não é necessário para este tutorial. Selecione “No” (Não) e clique em “Delete” (Excluir).

O status do cluster mudará para “deleting” (excluindo).

Parabéns

Você criou um cluster do Redis com o modo de cluster habilitado. Os nós foram divididos em zonas de disponibilidade e definidos com failovers automáticos. Você também aprendeu sobre algumas das melhores práticas para implantações do cluster do Redis.

Este tutorial foi útil para você?

Saiba mais

Se você quiser saber mais sobre o cluster do Redis, leia a publicação do blog Redis Cluster 101. Para mais conteúdos do blog sobre conceitos básicos, guia de desenvolvedor e casos de uso técnicos, visite nossa página de recursos.

Escolha o tamanho do nó certo

Pode parecer desafiador determinar o tamanho dos seus nós do Redis, mas criamos algumas diretrizes para ajudar você a escolher o nó certo com base nas suas necessidades.

Estratégias de armazenamento em cache

Por fim, você pode ler mais sobre estratégias de armazenamento em cache e melhores práticas para melhorar o desempenho e a confiabilidade.