# EC2: Migrando de EC2 AMD para Graviton

> Esta regra identifica instâncias **EC2 AMD em execução (running)** que:
>
> * Não são Spot
> * Não utilizam sistema operacional Windows
>
> O objetivo é identificar workloads AMD que podem ser modernizados para **AWS Graviton (ARM)**, reduzindo custos e aumentando eficiência.

***

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

Instâncias AMD oferecem economia em relação às Intel, porém ainda podem ter custo superior comparado às equivalentes Graviton.

A migração para Graviton pode gerar:

* Redução adicional de custo
* Melhor eficiência energética
* Melhor performance por dólar

Impacto:

* Economia recorrente
* Modernização tecnológica
* Alinhamento com estratégia cloud-native

Classificação: **ECONOMIA + MODERNIZAÇÃO**

***

**Detalhamento técnico da regra**

A regra percorre todas as regiões AWS habilitadas.

Para cada região:

1. Lista instâncias:

   ```
   instance-state-name = running
   ```
2. Filtra instâncias:
   * Exclui Spot
   * Considera apenas tipos cuja família contém `"a"` (AMD)
   * Exclui instâncias Windows

***

**Como a regra é executada**

1. Autenticação por região.
2. Execução:

   ```
   ec2:DescribeInstances
   ```

   com filtro:

   ```
   running
   ```
3. Aplicação de filtros de tag (inclusão/exclusão).
4. Validação:

   A instância será considerada AMD quando:

   ```
   "a" presente na família do InstanceType
   ```

   Exemplo:

   * m5a.large
   * c6a.xlarge
   * r5a.2xlarge
5. Exclui instâncias Windows quando:

   ```
   PlatformDetails = "Windows"
   OR Platform = "windows"
   ```
6. Instâncias restantes são sinalizadas.

***

**Lógica aplicada**

Uma instância será sinalizada quando:

```
State = running
AND InstanceLifecycle != spot
AND Família contém "a"
AND Plataforma != Windows
```

***

**Campos analisados**

Instância EC2:

* `InstanceId`
* `InstanceType`
* `InstanceLifecycle`
* `Platform`
* `PlatformDetails`
* `Architecture`
* `LaunchTime`
* `Tags`
* `Region`

***

**Parâmetros considerados na busca**

API utilizada:

```
ec2:DescribeInstances
```

Filtro:

```
instance-state-name = running
```

Sem filtro temporal.

***

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

Período Avaliado: 15 dias

Padrão configura é que analisar instâncias do EC2 AMD qualificadas para migração para Graviton, dentro do período de 15 dias. Não consideramos instâncias Spot na lista

> 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**

Seguindo o padrão das regras de modernização com percentual estimado:

**Fórmula Oficial de Savings**

```sql
sum("lineitem/unblendedcost") * 0.10
```

**Justificativa**

A economia potencial ao migrar de AMD para Graviton tende a ser menor do que Intel → Graviton.

Estimativa conservadora adotada:

```
10% de redução potencial
```

Campo do CUR utilizado:

```
lineitem/unblendedcost
```

***

**Exemplo de Impacto**

Cenário:

* 20 instâncias c6a.large
* Custo mensal total: $8.000

Savings estimado:

```
8.000 × 10% = $800/mês
```

***

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

Antes da migração:

* Validar compatibilidade ARM.
* Testar aplicações com dependências nativas.
* Priorizar workloads stateless.
* Utilizar rollout gradual via Auto Scaling.

Exceções possíveis:

* Workloads com dependência x86.
* Aplicações críticas sem ambiente de homologação.

Recomendação:

Começar por workloads containerizados ou microsserviços.
