# EC2: Migrando de EC2 Intel para Graviton

> Esta regra identifica instâncias **EC2 Intel em execução (running)** que:
>
> * Não são Spot
> * Não são AMD
> * Não são Graviton
> * Não são Mac
> * Não utilizam Windows
>
> O objetivo é identificar workloads **Intel Linux** elegíveis para migração para **AWS Graviton (ARM)**, maximizando economia e eficiência.

***

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

Instâncias Intel Linux representam uma das maiores oportunidades de otimização em ambientes AWS.

A migração para Graviton pode gerar:

* Redução significativa de custo
* Melhor performance por dólar
* Redução de consumo energético
* Modernização da arquitetura

Impacto direto:

* Economia recorrente em compute
* Aumento da eficiência da infraestrutura
* 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 na tenancy.

Para cada região:

1. Lista instâncias:

   ```
   instance-state-name = running
   ```
2. Exclui instâncias:
   * `InstanceLifecycle = spot`
   * Tipo contendo `"mac"`
   * Família contendo `"a"` (AMD)
   * Família contendo `"g"` (Graviton)
   * Instâncias Windows

Restam apenas instâncias Intel Linux.

***

**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 de arquitetura:

   Instância será considerada Intel quando:

   ```
   Não contém "mac"
   AND Não contém "a" na família
   AND Não contém "g" na família
   ```
5. Exclusão de Windows:

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

***

**Lógica aplicada**

Uma instância será sinalizada quando:

```
State = running
AND InstanceLifecycle != spot
AND Não Mac
AND Não AMD
AND Não Graviton
AND Plataforma != Windows
```

Exemplos sinalizados:

* m5.large
* c5.xlarge
* r5.2xlarge

Exemplos ignorados:

* m6g.large
* m5a.large
* mac1.metal
* Windows instances
* Spot instances

***

**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 Intel 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 maior potencial de economia:

**Fórmula Oficial de Savings**

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

**Justificativa**

A migração de Intel Linux para Graviton apresenta potencial médio de economia entre 20% e 25%.

A regra adota estimativa conservadora de:

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

Campo do CUR utilizado:

```
lineitem/unblendedcost
```

***

**Exemplo de Impacto**

Cenário:

* 25 instâncias m5.large
* Custo mensal total: $18.000

Savings estimado:

```
18.000 × 20% = $3.600/mês
```

***

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

Antes de migrar:

* Validar compatibilidade ARM.
* Testar aplicações em ambiente de homologação.
* Avaliar dependências binárias.
* Testar imagens Docker multi-arch.
* Executar rollout progressivo via Auto Scaling.

Exceções possíveis:

* Aplicações legadas x86-only
* Dependências não compatíveis com ARM
* Sistemas críticos sem janela de teste

Recomendação:

Priorizar workloads containerizados e aplicações stateless para migração inicial.
