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.
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
Abra o painel do ElastiCache e:
Etapa 3: defina as configurações do Redis
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.
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.
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.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.
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.
Próximos passos recomendados
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.