Como minimizo o tempo de inatividade quando meu ElastiCache para Redis está sendo escalado?

5 minuto de leitura
0

Quero minimizar meu tempo de inatividade quando o Amazon ElastiCache para Redis estiver em expansão.

Resolução

Para ajudar a minimizar o tempo de inatividade, revise essas ações e verifique seus procedimentos de configuração e manutenção:

  • Para minimizar o tempo de inatividade durante a sincronização, evite escalar quando você tem uma workload alta. Se o cluster tiver uma workload alta e o escalonamento estiver demorando muito, reduza as solicitações recebidas para o Redis para evitar falhas na sincronização. Se a sincronização ocorrer, verifique a métrica SaveInProgress no Amazon CloudWatch para determinar quando a sincronização ocorreu. Observe que a métrica SaveInProgress coleta dados a cada minuto e pode não capturar a sincronização que terminou em menos de um minuto. Para obter mais informações, consulte Monitoring best practices with Amazon ElastiCache for Redis using Amazon CloudWatch.
  • Para identificar problemas causados por uma configuração incorreta do lado do cliente quando você se conecta ao cluster, teste o dimensionamento em um ambiente que não seja de produção. Com base no tipo de escalabilidade, um nó pode ser adicionado durante o dimensionamento, removido durante o escalonamento ou o endereço IP do nó pode mudar durante o escalonamento. O ElastiCache parar Redis fornece diferentes tipos de endpoints de conexão para se conectar ao cluster, portanto, o tipo de endpoint de conexão escolhido depende dos requisitos do aplicativo.
  • Configure o cliente Redis ou o código do aplicativo para repetir a consulta em outra réplica ou enviar uma consulta ao código do aplicativo primário. Se o cliente se conectar a uma nova réplica que está no processo de sincronização, então o erro LOADING: Redis is loading the dataset in memory aparece. O tempo necessário para carregar o conjunto de dados é baseado no tamanho dos dados e no desempenho do nó. Para determinar se isso é um problema, teste em um ambiente que não seja de produção.
  • Configure o cluster para escalar automaticamente. O escalonamento automático evita problemas de desempenho causados por aumentos repentinos na workload recebida. Para obter mais informações, consulte Auto Scaling ElastiCache for Redis clusters.

Para clusters do Redis que têm o modo de cluster desativado, revise essas ações e verifique seus procedimentos de configuração e manutenção:

  • Para aumentar a escala, se seus aplicativos usarem apenas um endpoint primário para se conectar, o tempo de inatividade não ocorrerá quando você remover um nó de réplica. Se seus aplicativos usarem um leitor ou endpoints individuais para se conectar a esse nó de réplica, a conexão original será interrompida. Quando a conexão original é interrompida, uma nova conexão TCP deve ser estabelecida. O aplicativo também precisa realizar uma pesquisa de DNS para evitar a conexão com o nó de réplica removido. Se o cliente usar endpoints de leitor, o tempo de inatividade poderá ocorrer devido à propagação de DNS dos endpoints de leitor.
  • Para aumentar a escala, certifique-se de escalar em horários em que a workload seja mínima para evitar o tempo de inatividade causado pela sincronização.
  • Para mudanças no tipo de nó, cargas de trabalho pesadas podem causar falha na sincronização. Além disso, talvez seu aplicativo precise realizar uma pesquisa de DNS nos endpoints primários ou de leitor para estabelecer novas conexões com o novo nó. A propagação do DNS leva alguns segundos e uma interrupção do serviço pode ocorrer antes que o cliente alcance o novo nó. Para as versões 5.0.5 ou mais recentes do Redis, a interrupção é minimizada. É uma prática recomendada fazer o upgrade para a nova versão do Redis para otimizar o ElastiCache.

Para clusters Redis com o modo de cluster ativado, revise essas ações e verifique seus procedimentos de configuração e manutenção:

  • Para ter o mínimo ou nenhum tempo de inatividade durante a escalabilidade, consulte Redis cluster client discovery and exponential backoff.
  • Para ajudar a minimizar o tempo de inatividade ao aumentar a escala, consulte Online cluster resizing. Para minimizar os problemas de desempenho, escale gradualmente. Certifique-se de verificar o desempenho do cluster durante o horário de pico após a expansão inicial antes de aumentar a escala.
  • Para ajudar a minimizar o tempo de inatividade durante a expansão, consulte Online cluster resizing.
  • Workloads pesadas podem fazer com que a sincronização falhe quando há alterações no tipo de nó. Além disso, os endereços IP dos novos nós podem não ser os mesmos dos nós antigos. Para determinar o endereço IP, seu aplicativo pode usar o comando cluster nodes ou cluster slots para obter informações atualizadas do cluster. Clientes Redis que oferecem suporte a clusters do Redis podem atualizar a topologia do cluster. Para configurar o cliente Redis, consulte a documentação do seu tipo específico de cliente.
  • Ao alterar o número de réplicas, verifique primeiro o desempenho dos nós primários antes de adicionar outros nós de réplica. Quando o número de nós de réplica diminui e o cliente precisa ler de um nó de réplica removido, as solicitações são enviadas para novos nós de réplica. Além disso, para evitar solicitações aos nós removidos, o cliente deve atualizar a topologia do cluster.

Informações relacionadas

Replication: Redis (Cluster Mode Disabled) vs. Redis (Cluster Mode Enabled)

Find your node endpoints

Scaling ElastiCache for Redis

Making sure that you have enough memory to create a Redis snapshot

Best practices with Redis clients

AWS OFICIAL
AWS OFICIALAtualizada há um ano