Analisar anomalias de performance com o DevOps Guru para Amazon RDS - Amazon Aurora

Analisar anomalias de performance com o DevOps Guru para Amazon RDS

O Amazon DevOps Guru é um serviço de operações totalmente gerenciado que ajuda desenvolvedores e operadores a melhorar a performance e a disponibilidade de suas aplicações. O DevOps Guru dispensa as tarefas associadas à identificação de problemas operacionais, para que você possa implementar rapidamente recomendações para melhorar sua aplicação. Para ter mais informações, consulte O que é Configurar o Amazon DevOps Guru? no Guia do usuário do Amazon DevOps Guru.

O DevOps Guru detecta, analisa e faz recomendações de problemas operacionais para todos os mecanismos de banco de dados do Amazon RDS. O DevOps Guru para RDS amplia essa capacidade, aplicando machine learning a métricas do Performance Insights para bancos de dados do Amazon Aurora . Esses recursos de monitoramento permitem que o DevOps Guru para RDS detecte e diagnostique gargalos de performance e recomende ações corretivas específicas. O DevOps Guru para RDS também pode detectar condições problemáticas nos bancos de dados Aurora antes que elas ocorram.

Agora é possível ver essas recomendações no console do RDS. Para ter mais informações, consulte Visualizar e responder às recomendações do Amazon Aurora.

O vídeo a seguir apresenta uma visão geral do DevOps Guru para RDS.

Para se aprofundar no assunto, consulte Bastidores do Amazon DevOps Guru para RDS.

Benefícios do DevOps Guru para RDS

Se você é responsável por um banco de dados Amazon Aurora, talvez não esteja ciente da existência de um evento ou regressão que está afetando esse banco de dados. Quando você ficar sabendo do problema, talvez não saiba por que ele está ocorrendo ou o que fazer a respeito. Em vez de recorrer a um administrador de banco de dados (DBA) para obter ajuda ou depender de ferramentas de terceiros, você pode seguir as recomendações do DevOps Guru para RDS.

Estas são as vantagens das análises detalhadas do DevOps Guru para RDS:

Diagnóstico rápido

O DevOps Guru para RDS monitora e analisa continuamente a telemetria do banco de dados. O Performance Insights, o Enhanced Monitoring e o Amazon CloudWatch coletam dados de telemetria para seu cluster de banco de dados. O DevOps Guru para RDS usa técnicas estatísticas e de machine learning para explorar esses dados e detectar anomalias. Para saber mais sobre dados de telemetria, consulte Monitoramento da carga do banco de dados com Performance Insights no Amazon Aurora e Monitoramento de métricas do sistema operacional com monitoramento aprimorado no Guia do usuário do Amazon Aurora .

Resolução rápida

Cada anomalia identifica o problema de performance e sugere rotas de investigação ou ações corretivas. Por exemplo, o DevOps Guru para RDS pode recomendar que você investigue eventos de espera específicos. Ou ele pode recomendar que você ajuste as configurações do seu grupo de aplicações para limitar o número de conexões de banco de dados. Com base nessas recomendações, é possível resolver problemas de performance mais rapidamente do que solucionando problemas manualmente.

Insights proativos

O DevOps Guru para RDS utiliza métricas de seus recursos para detectar um comportamento possivelmente problemático antes que ele se torne um problema maior. Por exemplo, ele pode detectar quando seu banco de dados está utilizando um número crescente de tabelas temporárias em disco, o que pode começar a afetar a performance. Depois, o DevOps Guru fornece recomendações para ajudar você a resolver problemas antes que eles se tornem problemas maiores.

Conhecimento profundo dos engenheiros da Amazon e de "machine learning"

Para detectar problemas de performance e ajudar você a resolver gargalos, o DevOps Guru para RDS conta com machine learning (ML) e fórmulas matemáticas avançadas. Os engenheiros de banco de dados da Amazon contribuíram para o desenvolvimento das descobertas do DevOps Guru para RDS, que englobam muitos anos gerenciando centenas de milhares de bancos de dados. Com base nesse conhecimento coletivo, o DevOps Guru para RDS pode ensinar práticas recomendadas para você.

Como funciona o DevOps Guru para RDS

O DevOps Guru para RDS coleta dados sobre seus bancos de dados Aurora por meio do Amazon RDS Performance Insights. A métrica mais importante é DBLoad. O DevOps Guru for RDS consome as métricas do Performance Insights, analisa-as com machine learning e publica insights no painel.

Um insight é uma coleção de anomalias relacionadas que foram detectadas pelo DevOps Guru.

No DevOps Guru para RDS, uma anomalia é um padrão que se desvia do que é considerada a performance normal do seu banco de dados Amazon Aurora.

Insights proativos

Um insight proativo informa você sobre um comportamento problemático antes que ele ocorra. Contém anomalias com recomendações e métricas relacionadas para ajudar você a resolver problemas em seus bancos de dados Amazon Aurora antes que se tornem problemas maiores. Esses insights são publicados no painel do DevOps Guru.

Por exemplo, o DevOps Guru pode detectar que seu banco de dados do Aurora PostgreSQL está criando muitas tabelas temporárias em disco. Se não for tratada, essa tendência poderá gerar problemas de performance. Cada insight proativo inclui recomendações para comportamento corretivo e links para tópicos relevantes em Ajustar o Aurora MySQL com insights proativos do Amazon DevOps Guru ou Ajustar o Aurora PostgreSQL com insights proativos do Amazon DevOps Guru. Para ter mais informações, consulte Trabalhar com insights no DevOps Guru no Guia do usuário do Amazon DevOps Guru.

Insights reativos

Um insight reativo identifica um comportamento anômalo quando ele ocorre. Se o DevOps Guru para RDS encontrar problemas de performance nas suas instâncias de banco de dados do Amazon Aurora , ele publicará um insight reativo no painel do DevOps Guru. Para ter mais informações, consulte Trabalhar com insights no DevOps Guru no Guia do usuário do Amazon DevOps Guru.

Anomalias causais

Uma anomalia causal é uma anomalia de nível superior dentro de um insight reativo. Carga do banco de dados é a anomalia causal do DevOps Guru para RDS.

Uma anomalia mede o impacto na performance, atribuindo um nível de gravidade de Alto, Médio ou Baixo. Para saber mais, consulte os Principais conceitos do DevOps Guru para RDS, no Guia do usuário do Amazon DevOps Guru.

Se o DevOps Guru detectar uma anomalia em sua instância de banco de dados, você será alertado na página Databases (Bancos de dados) do console do RDS. O console também alerta você sobre anomalias que ocorreram nas últimas 24 horas. Para acessar a página de anomalias no console do RDS, escolha o link na mensagem de alerta. O console do RDS também alerta você na página do cluster de banco de dados do Amazon Aurora .

Anomalias contextuais

Uma anomalia contextual é uma descoberta em Carga do banco de dados (carga do BD) que é relatada a um insight reativo. Cada anomalia contextual descreve um problema de performance específico do Amazon Aurora que requer investigação. Por exemplo, o DevOps Guru para RDS pode recomendar que você aumente a capacidade da CPU ou investigue eventos de espera que estão contribuindo para a carga do banco de dados.

Importante

Convém testar todas as alterações na instância de teste antes de modificar a instância de produção. Dessa forma, você pode compreender o impacto da alteração.

Para saber mais, consulte Analisar anomalias no Amazon RDS no Guia do usuário do Amazon DevOps Guru.

Configurar o DevOps Guru para RDS

Para permitir que o DevOps Guru para Amazon RDS publique insights de um banco de dados do Amazon Aurora , conclua as tarefas a seguir.

Configurar políticas de acesso do IAM para DevOps Guru para RDS

Para visualizar alertas do DevOps Guru no console do RDS, seu usuário ou perfil do AWS Identity and Access Management (IAM) deve ter uma das seguintes políticas:

  • A política AmazonDevOpsGuruConsoleFullAccess gerenciada pelo AWS

  • A política gerenciada AmazonDevOpsGuruConsoleReadOnlyAccess da AWS e uma das seguintes políticas:

    • A política AmazonRDSFullAccess gerenciada pelo AWS

    • Uma política gerenciada pelo cliente que inclua pi:GetResourceMetrics e pi:DescribeDimensionKeys

Para ter mais informações, consulte Configurar políticas de acesso para o Performance Insights.

Ativar o Performance Insights para suas instâncias de banco de dados do Aurora

O DevOps Guru para RDS depende do Performance Insights para seus dados. Sem o Performance Insights, o DevOps Guru publica anomalias, mas não inclui a análise e as recomendações detalhadas.

Ao criar um cluster de banco de dados do Aurora ou modificar uma instância de cluster, você pode ativar o Performance Insights. Para ter mais informações, consulte Ativar e desativar o Performance Insights.

Ativar o DevOps Guru e especificar a cobertura de recursos

Você pode ativar o DevOps Guru para que ele monitore seus bancos de dados do Amazon Aurora de uma das maneiras a seguir.

Ativar o DevOps Guru no console do RDS

Você pode seguir vários caminhos no console do Amazon RDS para ativar o DevOps Guru.

Ativar o DevOps Guru ao criar um banco de dados do Aurora

O fluxo de trabalho de criação inclui uma configuração que ativa a cobertura do DevOps Guru para seu banco de dados. Essa configuração é ativada por padrão quando você escolhe o modelo Production (Produção).

Como ativar o DevOps Guru ao criar um banco de dados do Aurora
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. Siga as etapas em Criar um cluster de banco de dados exceto a etapa em que você escolhe as configurações de monitoramento.

  3. Em Monitoring (Monitoramento), escolha Turn on Performance Insights (Ativar Performance Insights). Para que o DevOps Guru para RDS forneça uma análise detalhada de anomalias de performance, o Performance Insights deve estar ativado.

  4. Escolha Turn on DevOps Guru (Ativar DevOps Guru).

    
                    Ative o DevOps Guru ao criar um cluster de banco de dados.
  5. Crie uma tag para seu banco de dados para que o DevOps Guru possa monitorá-lo. Faça o seguinte:

    • No campo de texto para Tag key (Chave de tag), insira um nome que comece com Devops-Guru-.

    • No campo de texto para Tag value (Valor da tag), insira qualquer valor. Por exemplo, se você inserir rds-database-1 para obter o nome do banco de dados do Aurora, também é possível inserir rds-database-1 como o valor da tag.

    Para ter mais informações sobre tags, consulte “Usar tags para identificar recursos em suas aplicações do DevOps Guru” no Guia do usuário do Amazon DevOps Guru.

  6. Conclua as etapas restantes em Criar um cluster de banco de dados.

Ativar o DevOps Guru a partir do banner de notificação

Se seus recursos não forem cobertos pelo DevOps Guru, o Amazon RDS notificará você com um banner nos seguintes locais:

  • A guia Monitoring (Monitoramento) de uma instância de cluster de banco de dados

  • O painel do Performance Insights


                        Banner do DevOps Guru
Como ativar o DevOps Guru para seu banco de dados do Aurora
  1. No banner, escolha Turn on DevOps Guru for RDS (Ativar DevOps Guru para RDS).

  2. Insira um nome de chave e um valor para a tag. Para ter mais informações sobre tags, consulte “Usar tags para identificar recursos em suas aplicações do DevOps Guru” no Guia do usuário do Amazon DevOps Guru.

    
                                Ative o DevOps Guru no console do RDS.
  3. Escolha Turn on DevOps Guru (Ativar DevOps Guru).

Responder a um erro de permissões quando você ativa o DevOps Guru

Se você ativar o DevOps Guru no console do RDS ao criar um banco de dados, o RDS poderá exibir o banner a seguir sobre permissões ausentes.

Como responder a um erro de permissões
  1. Conceda ao usuário ou ao perfil do IAM a função gerenciada pelo usuário AmazonDevOpsGuruConsoleFullAccess. Para ter mais informações, consulte Configurar políticas de acesso do IAM para DevOps Guru para RDS.

  2. Abra o console do RDS.

  3. No painel de navegação, escolha Performance Insights.

  4. Escola uma instância de banco de dados no cluster que você acabou de criar.

  5. Ative o DevOps Guru para RDS.

  6. Escolha um valor de tag. Para ter mais informações, consulte “Usar tags para identificar recursos em suas aplicações do DevOps Guru” no Guia do usuário do Amazon DevOps Guru.

  7. Escolha Turn on DevOps Guru (Ativar DevOps Guru).

Adicionar recursos do Aurora no console do DevOps Guru

Você pode especificar a cobertura de recursos do DevOps Guru no console do DevOps Guru. Siga a etapa descrita em Especificar a cobertura de recursos do DevOps Guru no Guia do usuário do Amazon DevOps Guru. Ao editar os recursos analisados, escolha uma das seguintes opções:

Para ter mais informações, consulte Enable DevOps Guru (Ativar o DevOps Guru), no Guia do usuário do Amazon DevOps Guru.

Adicionar recursos do Aurora usando AWS CloudFormation

Você pode usar tags para adicionar cobertura dos recursos do Aurora aos modelos do CloudFormation. O procedimento a seguir pressupõe que você tenha um modelo do CloudFormation para sua instância de banco de dados do Aurora e para a pilha do DevOps Guru.

Como especificar uma instância de banco de dados do Aurora usando uma tag do CloudFormation
  1. No modelo do CloudFormation para sua instância de banco de dados, defina uma tag usando um par de chave/valor.

    O exemplo a seguir atribui o valor my-aurora-db-instance1 a Devops-guru-cfn-default para uma instância de banco de dados Aurora.

    MyAuroraDBInstance1: Type: "AWS::RDS::DBInstance" Properties: DBClusterIdentifier: my-aurora-db-cluster DBInstanceIdentifier: my-aurora-db-instance1 Tags: - Key: Devops-guru-cfn-default Value: devopsguru-my-aurora-db-instance1
  2. No modelo do CloudFormation para sua pilha do DevOps Guru, especifique a mesma tag em seu filtro de coleta de recursos.

    O exemplo a seguir configura o DevOps Guru para fornecer cobertura para o recurso com o valor da tag my-aurora-db-instance1.

    DevOpsGuruResourceCollection: Type: AWS::DevOpsGuru::ResourceCollection Properties: ResourceCollectionFilter: Tags: - AppBoundaryKey: "Devops-guru-cfn-default" TagValues: - "devopsguru-my-aurora-db-instance1"

    O exemplo a seguir fornece cobertura para todos os recursos dentro dos limites da aplicação Devops-guru-cfn-default.

    DevOpsGuruResourceCollection: Type: AWS::DevOpsGuru::ResourceCollection Properties: ResourceCollectionFilter: Tags: - AppBoundaryKey: "Devops-guru-cfn-default" TagValues: - "*"

Para ter mais informações, consulte AWS::DevOpsGuru::ResourceCollection e AWS::RDS::DBInstance no Guia do usuário do AWS CloudFormation.