RDS: RDS sem conexões

Esta regra identifica instâncias de banco de dados (RDS, DocumentDB e Neptune) que não apresentaram conexões ou requisições durante o período analisado.

O objetivo é detectar bancos potencialmente ociosos que continuam gerando custo.


Contexto da regra e impacto no negócio

Instâncias de banco de dados representam um dos maiores componentes de custo em ambientes cloud.

Quando permanecem:

  • Sem conexões ativas

  • Sem requisições

  • Disponíveis (available)

  • Fora de uso real

Elas passam a representar desperdício financeiro direto.

Impactos:

  • Custo recorrente desnecessário

  • Recursos esquecidos após projetos

  • Ambientes de teste abandonados

  • Shadow IT

Essa regra atua diretamente na eliminação de infraestrutura ociosa.


Detalhamento técnico da regra

A regra realiza varredura regional nas instâncias RDS e valida ausência total de atividade no período configurado.


Como a regra é executada

  1. Autentica na conta AWS por região.

  2. Executa:

  3. Aplica filtros de tag (inclusão/exclusão).

  4. Para cada instância:

    • Aplica filtro temporal de criação.

    • Verifica se DBInstanceStatus = available.

    • Consulta métricas no CloudWatch dentro do período configurado:

      • Namespace AWS/RDS

        • DatabaseConnections

      • Namespace AWS/DocDB

        • DatabaseConnections

      • Namespace AWS/Neptune

        • TotalRequestsPerSec

    • Estatística utilizada: Sum

    • Granularidade: 86400 segundos (diário)

  5. Se todos os datapoints retornarem valor 0 → instância é sinalizada.


Lógica aplicada

Uma instância será sinalizada quando:

Validação aplicada:


Campos analisados

RDS Instance:

  • DBInstanceIdentifier

  • Engine

  • DBInstanceClass

  • StorageType

  • DBInstanceStatus

  • InstanceCreateTime

  • DBInstanceArn

  • TagList

  • Região

CloudWatch:

  • DatabaseConnections (RDS)

  • DatabaseConnections (DocDB)

  • TotalRequestsPerSec (Neptune)


Parâmetros considerados na busca

APIs utilizadas:

  • rds:DescribeDBInstances

  • cloudwatch:GetMetricStatistics

Configuração:

  • Período analisado: self.checker.period.days

  • Estatística: Sum

  • Granularidade: 1 dia


Período Avaliado (Filtro Temporal)

Período Avaliado: 15 dias

A regra considera:

E analisa métricas dentro do intervalo:

Exemplo:

Padrão é configurado para 15 dias, avalia se houve conexões nos últimos 15 dias.

Esse parâmetro de avaliação pode ser ajustado nas configurações das regras.


Intervalo de Análise

Execução padrão: a cada 8 horas.


Cálculo de Savings

A economia potencial corresponde à remoção completa da instância ociosa.


Fórmula Oficial de Savings

Pois o recurso não está sendo utilizado.


Campo de custo utilizado

No Billing AWS:

  • Service: AmazonRDS

  • Line Item Type: Usage

  • Usage Types:

    • InstanceUsage

  • Campo financeiro considerado:

    • lineitem/unblendedcost


Exemplo aplicado ao Billing

Cenário:

  • Instância RDS db.m5.large

  • Custo mensal: $1.200

  • Conexões no período: 0

Cálculo:

Savings anual:


Dicas de uso e boas práticas para o usuário

  • Validar com o time de aplicação antes de remover.

  • Verificar se é ambiente de contingência.

  • Avaliar snapshot antes de exclusão.

  • Revisar projetos encerrados.

  • Automatizar limpeza de ambientes temporários.

Possíveis exceções:

  • Banco reservado para DR.

  • Instância aguardando ativação.

  • Ambiente sazonal.

Recomenda-se snapshot prévio antes da remoção definitiva.

Last updated