# EC2: EC2 Parado

> Esta regra identifica instâncias Amazon EC2 que:
>
> * Estão no estado `stopped`.
> * Foram iniciadas há um período superior ao configurado.
> * Permanecem paradas por um intervalo igual ou superior ao período definido na regra.
> * Foram interrompidas por ação do usuário.
>
> O objetivo é detectar instâncias que não estão em execução, mas continuam gerando custo indireto através de armazenamento EBS associado.

***

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

Quando uma instância EC2 é parada:

* O custo de compute é interrompido.
* O custo de armazenamento EBS permanece ativo.
* Custos de snapshots, IOPS provisionado e volumes adicionais continuam sendo cobrados.

Ambientes frequentemente acumulam instâncias paradas que:

* Foram utilizadas para testes.
* Faziam parte de projetos encerrados.
* Foram substituídas por novas versões.
* Estão aguardando decisão, mas permanecem indefinidamente paradas.

Impactos principais:

* Custo recorrente de EBS sem retorno de valor.
* Crescimento silencioso de storage.
* Complexidade de inventário.
* Risco de manter volumes com dados sensíveis desnecessários.

Sem governança, instâncias paradas tornam-se desperdício financeiro estrutural.

***

**Detalhamento técnico da regra**

A regra executa análise regional das instâncias EC2.

***

**Como a regra é executada**

1. A regra autentica na conta AWS e percorre todas as regiões ativas.
2. Lista instâncias com filtro:
   * `instance-state-name = stopped`
3. Aplica filtros de tag (inclusão/exclusão).
4. Aplica filtro temporal baseado na data de criação da instância.
5. Analisa o motivo de parada (`StateTransitionReason`).
6. Extrai a data de parada a partir do motivo de transição.
7. Verifica se a instância está parada há período igual ou superior ao definido.
8. Caso todos os critérios sejam atendidos, a instância é sinalizada.

***

**Lógica aplicada**

Uma instância será considerada elegível quando:

* Estado = `stopped`
* Motivo contém “User initiated”
* Idade da instância atende ao filtro temporal.
* Tempo desde a parada ≥ período configurado.

***

**Campos analisados**

* `InstanceId`
* `LaunchTime`
* `State`
* `StateTransitionReason`
* `InstanceType`
* `Architecture`
* `VpcId`
* `SubnetId`
* `PrivateIpAddress`
* `BlockDeviceMappings`
* Volumes associados:
  * `VolumeId`
  * `Size`
  * `VolumeType`
  * `CreateTime`

***

**Parâmetros considerados na busca**

APIs utilizadas:

* `ec2:DescribeInstances`
* `ec2:DescribeVolumes`

Condições técnicas:

* Estado da instância: `stopped`
* Parada iniciada por usuário
* Intervalo mínimo de dias configurado

***

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

Período Avaliado (Filtro Temporal): A regra avalia a data de criação da instância (`LaunchTime`) e também a data de parada extraída de `StateTransitionReason`. 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.

Exemplo: Padrão é configurado para "Maior que 15 dias", a regra analisará apenas instâncias criadas há mais de 15 dias e que estejam paradas há pelo menos 15 dias.

> Esse parâmetro pode ser customizado conforme a necessidade do cliente, permitindo alinhar com políticas internas de retenção de ambientes inativos.

***

**Intervalo de Análise**

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

***

**Cálculo de Savings**

O savings é baseado na eliminação do custo recorrente dos volumes EBS associados às instâncias paradas.

***

**Fórmula Conceitual**

```
Savings Mensal = Σ (VolumeSize × Preço por GB da Região)
```

Onde:

* VolumeSize = tamanho em GB dos volumes anexados.
* Preço por GB = valor regional de armazenamento EBS.
* Pode incluir custos adicionais de IOPS provisionado.

***

**Campo de custo utilizado**

No Billing AWS:

* Service: AmazonEC2
* Usage Type:
  * EBS:VolumeUsage
  * EBS:ProvisionedIOPS
* Line Item Type: Usage
* Campo financeiro considerado:
  * Unblended Cost
  * Ou Amortized Cost

***

**Elementos considerados**

* Tipo do volume (gp2, gp3, io1, etc.).
* Tamanho provisionado.
* Região.
* IOPS provisionado.
* Não há projeção futura automática; trata-se de economia recorrente após exclusão do volume.

***

**Exemplo aplicado ao Billing**

Cenário:

Instância parada com:

* 1 volume de 200 GB (gp3)
* Preço médio: $0.08 por GB/mês

Cálculo:

```
Savings = 200 × 0.08
Savings = $16/mês
```

Savings anual:

```
16 × 12 = $192
```

Se houver 10 instâncias semelhantes:

```
$160/mês
```

***

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

* Verificar se a instância será reutilizada.
* Criar snapshot antes de excluir volumes.
* Implementar política de desligamento automático.
* Aplicar tag obrigatória para instâncias temporárias.
* Priorizar instâncias com volumes maiores.
* Avaliar retenção para compliance antes da exclusão.

Possíveis falsos positivos:

* Instâncias mantidas como contingência.
* Ambientes sazonais.
* Servidores reservados para DR.

Recomenda-se validação técnica antes da remoção definitiva.
