# VPC: Alcançando 80% das cotas para uso de VPCs ou sub-redes

> Esta regra identifica VPCs em regiões onde a utilização das seguintes quotas está igual ou superior a **80%**:
>
> * Número total de VPCs por região
> * Número de Subnets por VPC
> * Número de IPv4 CIDR blocks associados por VPC
>
> O objetivo é antecipar risco de bloqueio de crescimento de rede.

***

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

As quotas de rede da AWS limitam:

* Quantidade de VPCs
* Quantidade de Subnets por VPC
* Quantidade de CIDR blocks IPv4 adicionais por VPC

Quando essas quotas se aproximam do limite:

* Novas VPCs não podem ser criadas
* Subnets adicionais falham
* Expansões de rede são bloqueadas
* Deploys podem falhar

Impacto:

* Risco operacional
* Interrupção de expansão de ambientes
* Impacto em pipelines de infraestrutura

Classificação: **GOVERNANÇA + RISCO OPERACIONAL**

***

**Detalhamento técnico da regra**

A regra percorre todas as regiões AWS habilitadas na tenancy.

Para cada região:

1. Consulta quotas do serviço VPC.
2. Lista todas as VPCs.
3. Calcula utilização regional.
4. Para cada VPC:
   * Conta Subnets
   * Conta IPv4 CIDRs associados
   * Calcula percentuais
5. Sinaliza quando qualquer métrica ≥ 80%.

***

**Como a regra é executada**

1\. Consulta de quotas

API:

```
service-quotas:GetServiceQuota
ServiceCode = vpc
```

Quotas avaliadas:

| Quota              | QuotaCode  |
| ------------------ | ---------- |
| VPCs por região    | L-F678F1CE |
| Subnets por VPC    | L-407747CB |
| IPv4 CIDRs por VPC | L-83CA0A9D |

***

**2. Consulta de recursos**

APIs:

```
ec2:DescribeVpcs
ec2:DescribeSubnets
```

***

**3. Cálculo de utilização**

**Utilização regional de VPCs**

```
(current_regional_vpc_count / vpc_quota) * 100
```

**Utilização de Subnets por VPC**

```
(len(subnets) / subnet_quota) * 100
```

**Utilização de IPv4 CIDRs por VPC**

```
(len(CidrBlockAssociationSet) / ipv4_cidr_quota) * 100
```

***

**Lógica aplicada**

Uma VPC será sinalizada quando:

```
regional_vpc_usage >= 80%
OR
subnet_usage >= 80%
OR
ipv4_cidr_usage >= 80%
```

***

**Campos analisados**

VPC:

* `VpcId`
* `CidrBlockAssociationSet`
* `Tags`
* `Region`

Subnets:

* `SubnetId`
* `VpcId`

Quotas:

* `Quota.Value`

Campos calculados:

* `regional_vpc_usage_percentage`
* `subnet_usage_percentage`
* `ipv4_cidr_usage_percentage`

***

**Parâmetros considerados na busca**

APIs utilizadas:

* `service-quotas:GetServiceQuota`
* `ec2:DescribeVpcs`
* `ec2:DescribeSubnets`

Limite fixo de alerta:

```
80%
```

***

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

Não aplicável.

A regra avalia o estado atual de utilização.

***

**Intervalo de Análise**

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

***

**Impacto Financeiro**

Esta regra não possui savings direto.

O objetivo é:

* Prevenir bloqueio de expansão
* Garantir escalabilidade da rede
* Evitar incidentes operacionais

Impacto indireto pode ocorrer caso falhas de quota interrompam deploys críticos.

***

**Exemplo de Impacto**

Cenário regional:

* Quota de VPCs: 5
* VPCs existentes: 4

Utilização:

```
4 / 5 = 80%
```

Região será sinalizada.

***

Cenário por VPC:

* Quota de Subnets: 200
* Subnets na VPC: 170

Utilização:

```
170 / 200 = 85%
```

VPC será sinalizada.

***

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

Recomendações:

* Solicitar aumento de quota antes de atingir 90%.
* Revisar VPCs não utilizadas.
* Consolidar ambientes quando possível.
* Planejar expansão de CIDR com antecedência.

Boas práticas:

* Monitorar quotas críticas como parte da governança de rede.
* Revisão trimestral de capacidade.
* Implementar arquitetura escalável desde o início.
