Pilar de ElastiCache excelência operacional da Amazon Well-Architected Lens - Amazon ElastiCache

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Pilar de ElastiCache excelência operacional da Amazon Well-Architected Lens

O foco do pilar Excelência operacional está na execução e no monitoramento de sistemas para agregar valor empresarial e melhorar continuamente processos e procedimentos. Os principais tópicos incluem automatizar mudanças, responder a eventos e definir padrões para gerenciar operações diárias.

OE 1: Como você entende e responde aos alertas e eventos acionados pelo seu ElastiCache cluster?

Introdução em nível de pergunta: ao operar ElastiCache clusters, você pode, opcionalmente, receber notificações e alertas quando eventos específicos ocorrerem. ElastiCache, por padrão, registra eventos relacionados aos seus recursos, como failover, substituição de nós, operação de escalabilidade, manutenção programada e muito mais. Cada evento inclui a data e hora, o nome e tipo da origem e uma descrição.

Benefício: ser capaz de entender e gerenciar os motivos subjacentes aos eventos que acionam os alertas gerados pelo seu cluster permite que você opere com mais eficiência e responda aos eventos de forma adequada.

  • [Obrigatório] Analise os eventos gerados ElastiCache no ElastiCache console (depois de selecionar sua região) ou usando o comando describe-events da Amazon Command Line Interface (AWS CLI) e a API. ElastiCache Configure ElastiCache para enviar notificações para eventos importantes do cluster usando o Amazon Simple Notification Service (Amazon SNS). Usar o Amazon SNS com seus clusters permite que você execute ações programaticamente em eventos. ElastiCache

    • Há duas grandes categorias de eventos: eventos atuais e programados. A lista de eventos atuais inclui: criação e exclusão de recursos, operações de ajuste de escala, failover, reinicialização de nó, criação de snapshot, modificação de parâmetros do cluster, renovação do certificado de CA, eventos de falha (falha no provisionamento do cluster [VPC ou ENI], falhas de ajuste de escala [ENI] e falhas de snapshot). A lista de eventos programados inclui: nó programado para substituição durante a janela de manutenção e substituição de nó reagendada.

    • Embora talvez você não precise reagir imediatamente a alguns desses eventos, é fundamental examinar primeiro todos os eventos de falha:

      • ElastiCache:AddCacheNodeFailed

      • ElastiCache:CacheClusterProvisioningFailed

      • ElastiCache:CacheClusterScalingFailed

      • ElastiCache:CacheNodesRebooted

      • ElastiCache: SnapshotFailed (Somente Valkey ou Redis OSS)

    • [Recursos]:

  • [Melhor] Para automatizar as respostas a eventos, aproveite os recursos de AWS produtos e serviços, como SNS e Lambda Functions. Siga as práticas recomendadas ao fazer alterações pequenas, frequentes e reversíveis, como código para evoluir suas operações ao longo do tempo. Você deve usar CloudWatch as métricas da Amazon para monitorar seus clusters.

    [Recursos]: Monitore ElastiCache (modo de cluster desativado) leia endpoints de réplica usando AWS Lambda, Amazon Route 53 e Amazon SNS para um caso de uso que usa Lambda e SNS.

OE 2: Quando e como você escala seus ElastiCache clusters existentes?

Introdução em nível de pergunta: dimensionar corretamente seu ElastiCache cluster é um ato de equilíbrio que precisa ser avaliado sempre que houver alterações nos tipos de carga de trabalho subjacentes. Seu objetivo é operar com o ambiente do tamanho certo para sua workload.

Benefício: a utilização excessiva de seus recursos pode resultar em latência elevada e diminuição geral da performance. Por outro lado, a subutilização pode resultar em provisionamento excessivo de recursos com uma otimização de custos não ideal. Ao dimensionar corretamente seus ambientes, você pode encontrar um equilíbrio entre eficiência de performance e otimização de custos. Para remediar a sobreutilização ou a subutilização de seus recursos, ElastiCache pode escalar em duas dimensões. Você pode ajustar a escala verticalmente ao aumentar ou diminuir a capacidade dos nós. Também pode ajustar a escala horizontalmente ao adicionar e remover nós.

OE 3: Como você gerencia seus recursos de ElastiCache cluster e mantém seu cluster up-to-date?

Introdução em nível de pergunta: Ao operar em grande escala, é essencial que você seja capaz de identificar e identificar todos os seus recursos. ElastiCache Ao implementar novos recursos de aplicativos, você precisa criar simetria de versão de cluster em todos os tipos de ElastiCache ambiente: desenvolvimento, teste e produção. Os atributos de recursos permitem que você separe ambientes para objetivos operacionais diferentes, como ao implantar novos atributos e ativar novos mecanismos de segurança.

Benefício: separar os ambientes de desenvolvimento, teste e produção é uma prática operacional recomendada. Também é uma prática recomendada que seus clusters e nós em todos os ambientes tenham os patches de software mais recentes aplicados usando processos bem compreendidos e documentados. Aproveitar os ElastiCache recursos nativos permite que sua equipe de engenharia se concentre em atingir os objetivos de negócios e não na ElastiCache manutenção.

OE 4: Como você gerencia as conexões dos clientes com seus ElastiCache clusters?

Introdução em nível de pergunta: Ao operar em grande escala, você precisa entender como seus clientes se conectam ao ElastiCache cluster para gerenciar os aspectos operacionais do seu aplicativo (como tempos de resposta).

Benefício: escolher o mecanismo de conexão mais adequado vai garantir que sua aplicação não se desconecte devido a erros de conectividade, como tempos limite.

  • [Obrigatório] Separe as operações de leitura e gravação e conecte-se aos nós de réplica para executar as operações de leitura. No entanto, esteja ciente de que, ao separar as gravações das leituras, você perderá a capacidade de ler uma chave logo depois de gravá-la devido à natureza assíncrona da replicação do Valkey e do Redis OSS. O comando WAIT pode ser usado para aumentar a segurança dos dados no mundo real e forçar as réplicas a reconhecer as gravações antes de responder aos clientes, com um custo geral de performance. O uso de nós de réplica para operações de leitura pode ser configurado em sua biblioteca ElastiCache cliente usando o endpoint do ElastiCache leitor para o modo de cluster desativado. Para ativar o modo de cluster, use o comando READONLY. Para muitas bibliotecas de ElastiCache cliente, o READONLY é implementado por padrão ou por meio de uma definição de configuração.

    [Recursos]:

  • [Obrigatório] Use o agrupamento de conexões. Estabelecer uma conexão TCP tem um custo de tempo de CPU nos lados do cliente e do servidor, e o agrupamento permite que você reutilize a conexão TCP.

    Para reduzir a sobrecarga da conexão, use o agrupamento de conexões. Com um grupo de conexões, sua aplicação pode reutilizar e liberar conexões “à vontade”, sem o custo de estabelecer a conexão. Você pode implementar o pool de conexões por meio de sua biblioteca ElastiCache cliente (se houver suporte), com uma estrutura disponível para seu ambiente de aplicativos, ou criá-la do zero.

  • [Ideal] Certifique-se de que o tempo limite do soquete do cliente esteja definido para pelo menos um segundo (em vez do padrão típico de “nenhum” em vários clientes).

    • Definir um valor de tempo limite muito baixo pode fazer com que o tempo limite seja atingido quando a carga do servidor estiver alta. Defini-lo muito alto pode fazer com que a aplicação demore muito para detectar problemas de conexão.

    • Controle o volume de novas conexões implementando o agrupamento de conexões em sua aplicação de cliente. Isso reduz a latência e a utilização da CPU necessárias para abrir e fechar conexões e realizar um handshake de TLS, caso o TLS esteja habilitado no cluster.

    [Recursos]: configure ElastiCache para maior disponibilidade

  • [Bom] Usar pipelines (quando seus casos de uso permitirem) pode aumentar significativamente a performance.

    • Com pipelines, você reduz o tempo de ida e volta (RTT) entre os clientes da aplicação e o cluster, e novas solicitações podem ser processadas mesmo que o cliente ainda não tenha lido as respostas anteriores.

    • Com pipelines, você pode enviar vários comandos para o servidor sem esperar por respostas ou confirmações. A desvantagem dos pipelines é que, quando você finalmente obtém todas as respostas em lote, pode ter ocorrido um erro que só será detectado no final.

    • Implemente métodos para repetir as solicitações quando for retornado um erro que omite a solicitação incorreta.

    [Recursos]: Pipelines

OE 5: Como você implanta ElastiCache componentes para uma carga de trabalho?

Introdução no nível da pergunta: ElastiCache os ambientes podem ser implantados manualmente por meio do AWS console ou programaticamente por meio de CLIAPIs, kits de ferramentas etc. As práticas recomendadas de Excelência operacional sugerem que as implantações sejam automatizadas por meio de código sempre que possível. Além disso, ElastiCache os clusters podem ser isolados por carga de trabalho ou combinados para fins de otimização de custos.

Benefício em nível de pergunta: escolher o mecanismo de implantação mais adequado para seus ElastiCache ambientes pode melhorar a excelência operacional ao longo do tempo. É recomendável realizar operações como código sempre que possível para minimizar a quantidade de erros humanos e aumentar a repetibilidade, a flexibilidade e o tempo de resposta aos eventos.

Ao entender os requisitos de isolamento da carga de trabalho, você pode optar por ter ElastiCache ambientes dedicados por carga de trabalho ou combinar várias cargas de trabalho em clusters únicos ou combinações dos mesmos. Compreender as vantagens e desvantagens pode ajudar a encontrar um equilíbrio entre Excelência operacional e Otimização de custos.

  • [Obrigatório] Compreenda as opções de implantação disponíveis e automatize esses procedimentos sempre que possível. ElastiCache As possíveis vias de automação incluem CloudFormation AWS CLI/SDK e. APIs

    [Recursos]:

  • [Obrigatório] Para todas as workloads, determine o nível de isolamento do cluster necessário.

    • [Ideal] Isolamento alto: mapeamento 1:1 entre workload e cluster. Permite o controle mais refinado sobre acesso, dimensionamento, escalabilidade e gerenciamento de ElastiCache recursos por carga de trabalho.

    • [Melhor] Isolamento médio: M:1 isolado por finalidade, mas talvez compartilhado entre várias workloads (por exemplo, um cluster dedicado a armazenar workloads em cache e outro dedicado a mensagens).

    • [Bom] Isolamento baixo: M:1 multiuso, totalmente compartilhado. Recomendado para workloads em que o acesso compartilhado é aceitável.

EO 6: Como você planeja e mitiga falhas?

Introdução em nível de pergunta: A excelência operacional inclui a antecipação de falhas por meio da realização de exercícios regulares “pre-mortem” para identificar possíveis fontes de falha para que possam ser removidas ou mitigadas. ElastiCache oferece uma API de failover que permite simular eventos de falha de nó, para fins de teste.

Benefício: ao testar cenários de falha com antecedência, você pode aprender como eles afetam sua workload. Isso permite testar com segurança os procedimentos de resposta e sua eficácia, além de familiarizar sua equipe com sua execução.

[Obrigatório] Execute regularmente testes de failover em contas de desenvolvimento/teste. TestFailover

EO 7: como solucionar problemas em eventos do mecanismo Valkey ou Redis OSS?

Introdução em nível de pergunta: a excelência operacional exige a capacidade de investigar informações de nível de serviço e de motor para analisar a integridade e o status de seus clusters. ElastiCache pode emitir registros do mecanismo Valkey ou Redis OSS para o Amazon CloudWatch e o Amazon Kinesis Data Firehose.

Benefício em nível de pergunta: habilitar os registros do mecanismo Valkey ou Redis OSS em ElastiCache clusters fornece informações sobre eventos que afetam a integridade e o desempenho dos clusters. Os registros do mecanismo Valkey ou Redis OSS fornecem dados diretamente do mecanismo que não estão disponíveis por meio do ElastiCache mecanismo de eventos. Por meio da observação cuidadosa dos ElastiCache eventos (consulte o OE-1 anterior) e dos registros do motor, é possível determinar a ordem dos eventos durante a solução de problemas, tanto do ponto de vista do ElastiCache serviço quanto do ponto de vista do motor.

  • [Obrigatório] Certifique-se de que a funcionalidade de registro do mecanismo Redis OSS esteja ativada, disponível a partir da ElastiCache versão 6.2 para Redis OSS e versões mais recentes. Isso pode ser feito durante a criação do cluster ou modificando o cluster depois da criação.

    • Determine se o Amazon CloudWatch Logs ou o Amazon Kinesis Data Firehose são o destino apropriado para os registros do mecanismo Redis OSS.

    • Selecione um registro de destino apropriado em um CloudWatch ou no Kinesis Data Firehose para manter os registros. Se você tiver vários clusters, considere usar um log de destino diferente para cada cluster, pois isso ajudará a isolar os dados ao solucionar problemas.

    [Recursos]:

  • [Melhor] Se estiver usando o Amazon CloudWatch Logs, considere usar o Amazon CloudWatch Logs Insights para consultar o log do mecanismo OSS do Valkey ou do Redis para obter informações importantes.

    Como exemplo, crie uma consulta no grupo CloudWatch Log que contém os registros do mecanismo Valkey ou Redis OSS que retornarão eventos com um LogLevel “AVISO”, como:

    fields @timestamp, LogLevel, Message | sort @timestamp desc | filter LogLevel = "WARNING"

    [Recursos]: análise de dados de registro com o CloudWatch Logs Insights