# EBS: EBS Snapshot - Autofix

> Esta regra identifica **Amazon EBS Snapshots** que:
>
> * Possuem a tag obrigatória:
>
>   ```
>   Pier = Process
>   ```
> * Atendem ao critério de idade configurado
> * Atendem aos filtros adicionais de tag (quando configurados)
>
> O objetivo é identificar snapshots antigos que podem estar acumulando custo desnecessário.

***

**Contexto da regra e impacto no negócio**

Snapshots EBS:

* São cobrados por GB armazenado
* Permanecem ativos até exclusão manual
* Podem se acumular rapidamente em ambientes com automações ou backups manuais

Problemas comuns:

* Snapshots criados para processos temporários
* Backups antigos não removidos
* Ambientes descontinuados mantendo snapshots ativos
* Falta de política de retenção

Impacto:

* Custo recorrente invisível
* Crescimento contínuo de storage
* Falta de governança de retenção
* Dificuldade de rastreabilidade

Classificação: **ECONOMIA + GOVERNANÇA**

***

**Detalhamento técnico da regra**

A regra executa análise **regional**.

Apenas snapshots que contenham a tag:

```
tag:Pier = Process
```

são considerados no escopo inicial.

***

**Como a regra é executada**

**1. Listagem de Snapshots**

API:

```
ec2:DescribeSnapshots
```

Filtro aplicado:

```
tag:Pier = Process
```

Apenas snapshots com essa tag entram na análise.

***

**2. Aplicação de filtros de tag adicionais**

Após a listagem, são aplicados filtros configuráveis de:

* Inclusão
* Exclusão

Baseado nas tags do snapshot.

***

**3. Aplicação de filtro temporal**

Campo analisado:

```
StartTime
```

Cálculo:

```
Diferença em dias entre agora e StartTime
```

Critério configurável:

```
period.operator = greater_than ou less_than
period.days = N
```

Condições possíveis:

* Snapshots com mais de N dias ou
* Snapshots com menos de N dias

***

**Lógica aplicada**

Um snapshot será sinalizado quando:

```
Possuir tag Pier = Process
AND
Atender aos filtros de tag adicionais
AND
Idade atender ao critério configurado
```

***

**Campos analisados**

Snapshot EBS:

* `SnapshotId`
* `VolumeId`
* `State`
* `StartTime`
* `VolumeSize`
* `Tags`
* ARN gerado dinamicamente:

  ```
  arn:aws:ec2:{region}:{account}:snapshot/{snapshotId}
  ```

***

**Parâmetros considerados na busca**

APIs utilizadas:

* `ec2:DescribeSnapshots`

Parâmetros configuráveis:

* `period.days`
* `period.operator`
* Filtros de tag

Filtro fixo obrigatório:

```
tag:Pier = Process
```

***

**Período Avaliado (Filtro Temporal)**

Período Avaliado: 5 dias

Configuração padrão e que identifique Snapshots gerados pelo Autofix com mais de 5 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.

***

**Calculo de Savings**

Snapshots antigos representam custo contínuo de armazenamento.

Seguindo o padrão das regras de recurso potencialmente eliminável:

**Fórmula:**

```sql
SUM("lineitem/unblendedcost")
```

**Interpretação**

O savings considera:

* 100% do custo associado ao armazenamento do snapshot
* Baseado no custo real registrado no CUR

Campo do CUR utilizado:

```
lineitem/unblendedcost
```

Serviço relacionado:

```
Amazon Elastic Compute Cloud - Snapshot
```

O valor representa o custo recorrente de armazenamento do snapshot até sua exclusão.

***

**Exemplo de Impacto**

Cenário:

* Snapshot com 500 GB
* Custo mensal estimado: $25
* 40 snapshots antigos acumulados

Impacto total:

```
$1.000/mês
```

Caso não sejam removidos.

***

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

Antes de remover:

* Validar se o snapshot é utilizado para restore.
* Confirmar dependência em estratégias de DR.
* Verificar políticas de retenção.

Boas práticas:

* Implementar lifecycle automático para snapshots.
* Padronizar retenção por ambiente.
* Automatizar limpeza de snapshots de processos temporários.
* Monitorar crescimento de storage EBS regularmente.

Exceções possíveis:

* Snapshots de compliance.
* Snapshots usados para auditoria.
* Ambientes com retenção regulatória obrigatória.
