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

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 o. ElastiCache API Configure ElastiCache para enviar notificações para eventos importantes do cluster usando o Amazon Simple Notification Service (AmazonSNS). Usar a Amazon SNS com seus clusters permite que você execute ações programáticas 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 escalabilidade, failover, reinicialização do nó, criação de instantâneo, modificação dos parâmetros do cluster, renovação do certificado CA, eventos de falha (falha no provisionamento do cluster - VPC ou ENI -, falhas de escalabilidade - e falhas no instantâneo). ENI 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 (OSSSomente Redis)

    • [Recursos]:

  • [Melhor] Para automatizar as respostas a eventos, aproveite os recursos de AWS produtos e serviços, como SNS as Funções Lambda. 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 (RedisOSS) (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 imediatamente após gravá-la devido à natureza assíncrona da replicação do Redis. OSS O WAIT comando pode ser usado para melhorar 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 desempenho. O uso de nós de réplica para operações de leitura pode ser configurado em sua biblioteca cliente ElastiCache (RedisOSS) usando o endpoint do ElastiCache leitor para o modo de cluster desativado. Para ativar o modo de cluster, use o READONLY comando ElastiCache (RedisOSS). Para muitas das bibliotecas de cliente ElastiCache (RedisOSS), o ElastiCache (RedisOSS) 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 TCP conexão tem um custo em CPU tempo, tanto do lado do cliente quanto 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 cliente ElastiCache (RedisOSS) (se suportada), 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 CPU utilização necessárias para abrir e fechar conexões e realizar um TLS handshake se TLS estiver habilitado no cluster.

    [Recursos]: Configure ElastiCache (RedisOSS) para maior disponibilidade

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

    • Com o pipeline, você reduz o tempo de ida e volta (RTT) entre os clientes do aplicativo 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 kits de ferramentas APIs etcCLI. 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 CloudFormationSDK, AWS CLI/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 um failover API 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

OE 7: Como você soluciona problemas de eventos OSS do mecanismo Redis?

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 mecanismo para analisar a integridade e o status de seus clusters. ElastiCache (RedisOSS) pode emitir registros OSS do mecanismo Redis para a Amazon CloudWatch e para o Amazon Kinesis Data Firehose.

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

  • [Obrigatório] Certifique-se de que a funcionalidade de registro OSS do mecanismo Redis esteja ativada, disponível a partir do ElastiCache (RedisOSS) 6.2 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 OSS para os registros do mecanismo Redis.

    • 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 OSS do mecanismo do Redis para obter informações importantes.

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

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

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