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 Excelência operacional
O pilar de excelência operacional do AWS Well-Architected Framework se concentra na execução e monitoramento de sistemas e na melhoria contínua de processos e procedimentos. A capacidade de apoiar o desenvolvimento e executar workloads com eficácia, obter insights sobre as operações e melhorar continuamente processos e procedimentos de suporte para entregar valor empresarial. Você pode reduzir a complexidade operacional por meio de workloads de autorrecuperação, que detectam e solucionam a maioria dos problemas sem intervenção humana. Você pode trabalhar para atingir essa meta seguindo as práticas recomendadas descritas nesta seção. Use as métricas APIs e os mecanismos do Amazon Neptune para responder adequadamente quando sua carga de trabalho se desviar do comportamento esperado.
Essa discussão sobre o pilar de excelência operacional se concentra nas seguintes áreas principais:
-
Infraestrutura como código (IaC)
-
Gerenciamento de alterações
-
Estratégias de resiliência
-
Gerenciamento de incidentes
-
Relatórios de auditoria para conformidade
-
Registro em log e monitoramento
Automatizear a implantação usando uma abordagem de IaC
As práticas recomendadas para automatizar a implantação no Neptune usando o IaC incluem o seguinte:
-
Aplique a infraestrutura como código (IaC) para implantar clusters do Neptune sempre que possível. Para uma configuração consistente do ambiente, use um AWS CloudFormationmodelo ou o HashiCorp Terraform
para criar todos os recursos necessários para seu cluster. AWS Cloud Development Kit (AWS CDK) -
Automatize os procedimentos operacionais do Neptune, como redimensionar instâncias, adicionar ou remover réplicas de leitura ou realizar failovers manuais em tabelas globais, sempre que possível.
-
Armazene strings de conexão externamente do seu cliente. Use processos de extração, transformação e carregamento (ETL) para facilitar estratégias de blue/green implantação, recuperação de desastres (DR) e migrações com tempo de inatividade quase zero para novos clusters. As strings de conexão podem ser armazenadas no AWS Secrets Manager, no Amazon DynamoDB ou em qualquer local onde possam ser alteradas dinamicamente.
-
Use tags para adicionar metadados aos recursos do Neptune e monitorar o uso com base em tags. Para obter mais informações, consulte Marcação de recursos do Amazon Neptune.
Fazer alterações frequentes, pequenas e reversíveis
As recomendações a seguir focam as mudanças pequenas e reversíveis para minimizar a complexidade e reduzir a probabilidade de interrupção da workload:
-
Armazene modelos e scripts de IaC em um serviço de controle de origem, como GitHub ou GitLab.
Importante
Não armazene AWS credenciais no controle de origem.
-
Exija que as implantações de IaC usem um serviço de integração e entrega contínuas (CI/CD), como o AWS CodePipeline ou AWS CodeBuild. Esses serviços compilam, testam e implantam código em um ambiente de não produção contendo um cluster efêmero do Neptune antes de impactar seu cluster de produção do Amazon Neptune
. -
Teste as consultas de infraestrutura e aplicações em um ambiente inferior antes de implantá-las na produção. Isso minimizará a probabilidade de uma interrupção e ajudará a garantir que elas funcionem bem com sua workload e escala.
Antecipar falha
Uma infraestrutura de autorrecuperação exemplifica a excelência operacional ao antecipar falhas e tentar resolver quaisquer problemas sem intervenção. As recomendações a seguir ajudam você a atingir essa maturidade com o Neptune:
-
Crie um plano de monitoramento que use CloudWatch as métricas da Amazon para monitorar o uso da CPU e da memória da sua instância de banco de dados e entender os padrões de uso. Crie CloudWatch painéis e alarmes para as principais métricas e as respostas do cliente Neptune encontradas nos registros do seu aplicativo. Para obter mais informações sobre indicadores de alta ou baixa utilização da CPU, consulte Usando CloudWatch para monitorar o desempenho da instância de banco de dados no Neptune na documentação do Neptune.
Se você costuma receber out-of-memory exceções em suas consultas, considere reduzir o número total de nós que sua consulta percorre ou tente usar uma instância da
X2família, que tem uma proporção maior. RAM-to-CPU -
Defina notificações para monitorar a integridade do cluster do Neptune. Por exemplo,
BufferCacheHitRatiodeve ser constantemente alto (maior que 99,9%), enquantoMainRequestQueuePendingRequestsdeve ser constantemente baixo (de preferência 0, mas depende de seus requisitos e tolerância de latência). -
Considere usar réplicas de leitura para obter alta disponibilidade no Neptune. Você deve ter pelo menos duas réplicas de leitura em zonas de disponibilidade diferentes da instância do gravador para garantir que uma instância esteja sempre disponível para atender a consultas de leitura durante um evento de failover.
-
Escale automaticamente as réplicas de leitura com base nas métricas de utilização. Para obter mais informações, consulte Ajuste de escala automático do número de réplicas em um cluster de banco de dados do Amazon Neptune.
-
Teste o failover da instância do banco de dados para entender quanto tempo o processo leva para seu caso de uso.
-
Se seu aplicativo precisar sobreviver a uma Região da AWS paralisação completa, considere o uso de bancos de dados globais como parte de seus planos de recuperação de desastres.
Aprenda com todas as falhas operacionais
Uma infraestrutura de autorrecuperação é um esforço de longo prazo que se desenvolve em iterações à medida que problemas raros ocorrem ou as respostas não são tão eficazes quanto o desejado. A adoção das seguintes práticas impulsiona o foco em direção a essa meta:
-
Promova a melhoria aprendendo com todas as falhas.
-
Compartilhe o que foi aprendido com as equipes e a organização. Se várias equipes de uma organização usarem o Neptune, crie uma sala de bate-papo ou um grupo de usuários comum para compartilhar aprendizados e as práticas recomendadas.
Use recursos de registro em log para monitorar atividades não autorizadas ou anômalas
Para observar padrões anômalos de desempenho e atividade, armazene os registros no Amazon CloudWatch Logs. Considere as seguintes práticas recomendadas:
-
Habilite o registro em log slow-query. Revise regularmente o log e diagnostique por que certas consultas estão lentas. Use os endpoints de explicação e perfil do Neptune para Gremlin, SPARQL ou openCypher para obter insights sobre por que essas consultas estão lentas.
-
Habilite os logs de auditoria do Neptune e revise-os regularmente em busca de acesso não autorizado ou anomalias.
-
Se você estiver usando registros de consultas lentas ou registros de auditoria, habilite a CloudWatch publicação no Logs. Isso ajudará você a evitar a falta de espaço em disco nas instâncias. As instâncias do Neptune têm capacidade limitada de armazenamento de registros e substituirão os arquivos de log antigos quando o espaço de log for excedido. CloudWatch Os registros oferecem suporte à retenção de registros a longo prazo. Os recursos aprimorados de monitoramento do CloudWatch Logs melhorarão sua capacidade de consultar registros e diagnosticar problemas.
-
Para facilitar melhores ferramentas de análise para seus registros de auditoria, você pode configurar um cluster de banco de dados Neptune para publicar dados do registro de auditoria em um grupo de registros no Logs. CloudWatch Com o CloudWatch Logs, você pode realizar análises em tempo real dos dados de log, usar CloudWatch para criar alarmes e visualizar métricas, e usar o CloudWatch Logs para armazenar seus registros de log em um armazenamento altamente durável. Para obter mais informações, consulte Publicação de registros do Neptune no Amazon Logs. CloudWatch
-
O Neptune é compatível com o registro em log das ações do ambiente de gerenciamento usando o AWS CloudTrail. Para obter mais informações, consulte Registrar chamadas de API do Amazon Neptune com. AWS CloudTrail