RDS: RDS Snapshot

Esta regra identifica snapshots de banco de dados Amazon RDS (manuais, automatizados, compartilhados ou públicos) que foram criados há um período superior ao configurado.

O objetivo é detectar backups antigos que podem não ser mais necessários, mas que continuam consumindo armazenamento e gerando custos recorrentes.


Contexto da regra e impacto no negócio

Snapshots do RDS são cópias de armazenamento de instâncias de banco de dados.

Cenários comuns de acumulação:

  • Snapshots manuais criados antes de atualizações e nunca excluídos.

  • Retenção de backups de instâncias que já foram encerradas.

  • Políticas de backup automatizado com janelas de retenção muito longas.

  • Cópias de segurança para ambientes de desenvolvimento/teste esquecidas.

Impactos financeiros:

  • Custo de armazenamento persistente.

  • Acúmulo de dados obsoletos (liability).

  • Dificuldade de gestão do ciclo de vida dos dados.

Diferente de instâncias paradas, snapshots não consomem computação, apenas storage, o que torna o crescimento do custo silencioso e constante.


Detalhamento técnico da regra

A regra executa análise regional dos snapshots RDS.


Como a regra é executada

  1. Autentica na conta AWS por região.

  2. Lista todos os snapshots via describe_db_snapshots, filtrando pelos tipos:

    • manual

    • automated

    • shared

    • public

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

  4. Avalia a data de criação (SnapshotCreateTime) de cada snapshot.

  5. Compara a idade do snapshot com o período configurado na regra (ex: "maior que X dias").

  6. Caso a condição temporal seja atendida, o snapshot é sinalizado.


Lógica aplicada

Um snapshot será sinalizado quando:

  • A diferença entre a data atual e SnapshotCreateTime satisfizer a condição do operador (ex: >= dias configurados).

Exemplo: Se a regra for configurada para "Maior que 90 dias", qualquer snapshot criado há 91 dias ou mais será listado.


Campos analisados

  • DBSnapshotIdentifier

  • DBInstanceIdentifier

  • SnapshotCreateTime

  • SnapshotType

  • DBSnapshotArn

  • TagList


Parâmetros considerados na busca

APIs utilizadas:

  • rds:DescribeDBSnapshots

Condições técnicas:

  • Filtro de tipo: manual, automated, shared, public.

  • Comparação direta de data (datetime.now vs SnapshotCreateTime).


Período Avaliado (Filtro Temporal)

Período Avaliado (Filtro Temporal): A regra avalia a data de criação do snapshot (SnapshotCreateTime). O intervalo de análise corresponde ao operador do período do filtro (ex: "maior que") combinado com os dias do período do filtro definidos na configuração da regra.

Padrão é configurado para "Maior que 15 dias", a regra analisará apenas snapshots criados há mais de 15 dias.

Esse parâmetro deve ser ajustado conforme a política de retenção de backup da organização (ex: compliance de 5 anos vs backups operacionais de 30 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

O savings é baseado na eliminação do custo de armazenamento do snapshot.


Fórmula Conceitual

Onde:

  • Tamanho do Snapshot = Tamanho do armazenamento provisionado da instância de origem (na maioria dos casos).

  • Preço por GB = Varia conforme a região e se é Single-AZ ou Multi-AZ (embora snapshots sejam armazenados no S3 internamente, a cobrança segue tabela do RDS).


Campo de custo utilizado

No Billing AWS:

  • Service: AmazonRDS

  • Usage Type:

    • RDS:ChargedBackupUsage

    • SnapshotUsage

  • Line Item Type: Usage

  • Campo financeiro considerado:

    • Unblended Cost

    • Ou Amortized Cost


Elementos considerados

  • Tamanho do armazenamento (GB).

  • Região.

  • Não há projeção futura automática; trata-se de economia recorrente após exclusão.


Exemplo aplicado ao Billing

Cenário:

  • Snapshot Manual de 500 GB.

  • Região us-east-1.

  • Custo aproximado de backup: $0.095 por GB/mês.

Cálculo:

Savings anual:


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

  • Atenção aos snapshots automatizados: Eles são gerenciados pelo RDS e removidos automaticamente conforme a janela de retenção da instância. Excluí-los manualmente pode não ser possível ou recomendável sem alterar a configuração da instância.

  • Focar principalmente em Snapshots Manuais, que não expiram automaticamente.

  • Verificar se o snapshot é o último backup de uma instância já deletada.

  • Exportar dados para S3 (formato Parquet/CSV) se precisar de retenção de longo prazo com custo menor (S3 Glacier).

  • Implementar tags de data de validade em snapshots manuais.

Possíveis falsos positivos:

  • Backups de compliance (ex: retenção legal de 5 anos).

  • "Golden Images" usadas para criar novas instâncias.

Recomenda-se validar a finalidade do backup antes da exclusão.

Last updated