# Criar VPC com subnets na AWS: passo a passo e a VPC default

> Como criar uma VPC customizada com duas subnets públicas, route table e internet gateway, e lançar uma EC2 nela com acesso por SSM, sem SSH.

- Autor: Henrylle Maia, consultor AWS
- Publicado em: 2026-10-15
- Assuntos: Rede, Carreira
- URL: https://pages.formacaoaws.com.br/blog/criar-vpc-com-subnets-na-aws/
- Aula de origem: "Como criar VPC com Subnets na AWS + explicação VPC Default | Rede na AWS para Devs, DevOps e Cloud" (https://www.youtube.com/watch?v=X7bIofG1KzU)

A maioria dos problemas de rede que pego em consultoria vem de recursos criados na VPC default. Aqui você vê o que a AWS entrega na conta, cria a sua própria VPC com duas subnets públicas pelo assistente do console e lança uma EC2 nela, acessada por SSM, sem abrir SSH.

Os conceitos (faixa de IP, route table, internet gateway, zonas) estão em [O que é VPC na AWS](https://pages.formacaoaws.com.br/blog/o-que-e-vpc-na-aws/). Este texto é a prática.

## A VPC default em resumo

Cada região da conta já vem com uma VPC, e todo recurso (EC2, RDS, Lambda) nasce dentro de uma, mesmo que você não perceba. Na Virgínia a default tem seis subnets, da zona A à F, todas na mesma route table: o tráfego local (172.31.0.0/16) e todo o resto (0.0.0.0/0) indo para o internet gateway. Por isso a EC2 da default alcança a internet sem configuração.

![O mapa de recursos da VPC default na Virgínia: seis subnets, de us-east-1a a us-east-1f, ligadas a uma única route table](https://pages.formacaoaws.com.br/blog/assets/posts/criar-vpc-com-subnets-na-aws/mapa-vpc-default.webp)

É o padrão da AWS, e quando você precisa de algo mais elaborado, como uma rede privada ou um peering, essa estrutura não está configurada. Por isso vale criar a sua.

## Passo 1: abrir o assistente "VPC and more"

No console, vá em **VPC** > **Your VPCs** > **Create VPC**. Há duas formas de criar: **VPC only**, que cria só a VPC, e **VPC and more**, um assistente que desenha tudo o que vai criar. Escolha o segundo: ele cria subnets, route table e internet gateway de uma vez.

Em **Name tag auto-generation**, deixe o auto-generate marcado e escreva o nome do projeto. Usei `bia`, e todos os recursos saíram com esse prefixo.

## Passo 2: definir a faixa de IPs (CIDR)

O **IPv4 CIDR block** é a quantidade de IPs da sua rede. Quanto mais perto de 32, menos IPs: /32 seria um IP só. Um /20 comporta 4.096 IPs e um /24, 256.

Usei `10.0.0.0/20` para a VPC e deixei as subnets dentro dela. O assistente aceita IPv6 se você quiser modernizar a aplicação; na aula, deixei sem.

> **Importante:** quanto menor o número depois da barra, mais IPs. Dimensione pela quantidade que você precisa, e não pelo maior valor possível.

## Passo 3: escolher as zonas e as subnets

Em **Number of Availability Zones**, escolhi 2, com `us-east-1a` e `us-east-1b` (dá para trocar as zonas em **Customize AZs**). Em seguida o assistente pergunta quantas subnets públicas e privadas você quer.

Uma VPC com subnet privada pede NAT Gateway ou endpoints, o que dá outra aula. Aqui fiz o caso público: **2 subnets públicas e 0 privadas**. O assistente já propõe um /24 para cada uma, o que eu deixei: `10.0.0.0/24` na zona A e `10.0.1.0/24` na zona B.

![A tela de Create VPC com 0 subnets privadas e as faixas das subnets públicas: 10.0.0.0/24 em us-east-1a e 10.0.1.0/24 em us-east-1b](https://pages.formacaoaws.com.br/blog/assets/posts/criar-vpc-com-subnets-na-aws/config-subnets-cidr.webp)

Se quiser entender o caminho privado, veja [NAT Gateway ou Gateway Endpoint](https://pages.formacaoaws.com.br/blog/nat-gateway-ou-gateway-endpoint/).

## Passo 4: NAT, endpoints e DNS

Faltam três campos:

- **NAT gateways:** `None`.
- **VPC endpoints:** `None`.
- **DNS options:** deixe marcados **Enable DNS hostnames** e **Enable DNS resolution**, para a AWS traduzir nomes em IP.

Clique em **Create VPC**.

## Passo 5: conferir o que o assistente criou

A tela de workflow lista tudo na ordem: VPC, DNS, as duas subnets, o internet gateway e o anexo dele à VPC, a route table, a rota e as duas associações.

![O Create VPC workflow com status Success: VPC, subnets, internet gateway, route table, rota e as duas associações criados](https://pages.formacaoaws.com.br/blog/assets/posts/criar-vpc-com-subnets-na-aws/workflow-criacao.webp)

Abra a route table (`bia-rtb-public`). Ela tem duas rotas: a faixa da VPC como **local** e `0.0.0.0/0` apontando para o internet gateway. Em **Subnet associations** as duas subnets aparecem como associação explícita: é essa route table que decide o fluxo delas.

![A route table bia-rtb-public com duas rotas: 0.0.0.0/0 para o internet gateway e 10.0.0.0/20 como local](https://pages.formacaoaws.com.br/blog/assets/posts/criar-vpc-com-subnets-na-aws/route-table-publica.webp)

É a linha do internet gateway que dá saída para a internet às duas subnets. Se for criar manualmente, o console tem a opção **Create internet gateway**, e a associação também é manual.

**Fluxo:** Região (us-east-1) → VPC bia (10.0.0.0/20) → Subnets públicas (zonas 1a e 1b) → Route table (local e 0.0.0.0/0) → Internet gateway (saída para a internet)

## Passo 6: lançar a EC2 na VPC nova

Em **EC2** > **Launch instance**, configurei assim:

1. Nome com o que quiser, Amazon Linux 2023, arquitetura x86, `t3.micro`.
2. Sem par de chaves. Não vou entrar por SSH.
3. Em **Network settings**, escolha a VPC `bia-vpc` e a subnet da zona A.
4. **Auto-assign public IP** habilitado. A subnet é pública, e a EC2 precisa de IPv4 público para falar com a internet.
5. Crie um security group novo e **remova a regra de entrada de SSH**. Deixei sem tráfego de entrada. O de saída já vem liberado, e é o que a comunicação precisa.
6. Storage de 15 GB.

## Passo 7: dar acesso por SSM, sem SSH

Em **Advanced details**, escolha uma role no **IAM instance profile**. O SSM deixa você abrir um terminal na máquina pelo console, sem depender de SSH, um modelo de autenticação mais moderno e mais seguro.

Se você ainda não tem a role, crie em **IAM** > **Roles** > **Create role**: entidade de confiança **AWS service**, serviço **EC2**, e a policy **SSM Managed Instance Core**. Dei o nome `role acesso SSM`. Volte à tela da EC2, atualize a lista e escolha a role.

Confira **DNS hostname** e **IPv4** habilitados e clique em **Launch instance**.

> **Importante:** numa subnet pública, a EC2 precisa de IPv4 público para ter comunicação com a internet.

## Passo 8: conferir que a EC2 está na sua VPC

Na instância, a aba **Networking** mostra a VPC `bia-vpc` e a subnet `bia-subnet-public1-us-east-1a`.

Em **VPC** > **Subnets**, filtre por `bia-subnet` e olhe **Available IPv4 addresses**. A subnet em que lancei a EC2 mostrou 250 IPs livres e a outra, 251: a diferença de um IP é a máquina que acabei de lançar.

> **Nota do blog (não está no vídeo):** um /24 tem 256 endereços, e a AWS reserva 5 em cada sub-rede, por isso a subnet sem instância mostra 251 e não 256. Veja a [documentação da AWS](https://docs.aws.amazon.com/vpc/latest/userguide/subnet-sizing.html).

Para entrar, clique em **Connect** na instância, aba **Session Manager**, e depois em **Connect**. O terminal abre no navegador. A partir daí você instala o que precisar (para o git, por exemplo, com `sudo`) ou usa um user data.

## Checklist

- Entenda o que a VPC default entrega: uma VPC por região, subnets por zona, uma route table e um internet gateway.
- Em **Create VPC**, escolha **VPC and more** e dê um nome ao projeto.
- Defina a faixa da VPC (`10.0.0.0/20` no exemplo) e subnets menores dentro dela (`/24`).
- Escolha duas zonas e duas subnets públicas, sem NAT e sem endpoints; habilite os dois DNS.
- Confira na route table as rotas local e `0.0.0.0/0` para o internet gateway, e as duas associações.
- Lance a EC2 na VPC nova, com IP público, sem regra de SSH e com role de SSM.
- Confirme em **Subnets** que o contador de IPs livres caiu em um e conecte pelo Session Manager.

Com essa VPC no seu controle, você sabe onde cada recurso está e por onde ele sai para a internet.
