O que é uma VPC (e por que ela importa ao publicar um site)
Uma VPC (Virtual Private Cloud) é uma rede virtual isolada dentro da AWS onde você define: faixas de IP, sub-redes, rotas e como os recursos (como uma instância EC2) se conectam à internet e entre si.
Para hospedar um site com controle, você precisa entender um ponto central: quem pode falar com quem. Isso é decidido principalmente por:
- Sub-redes (públicas e privadas): definem onde o recurso “mora” e se ele pode ter caminho direto para a internet.
- Internet Gateway (IGW): é o “portal” que permite tráfego entre a VPC e a internet.
- Tabelas de rotas: dizem para onde o tráfego vai (por exemplo, “para a internet, use o IGW”).
- IP público vs IP privado: define se o recurso é alcançável diretamente da internet (público) ou apenas dentro da rede (privado).
Modelo mental rápido
- VPC = o “bairro” (rede) que você controla.
- Sub-rede = a “rua” dentro do bairro.
- Tabela de rotas = as placas de trânsito dizendo por onde sair.
- Internet Gateway = a saída do bairro para a internet.
Sub-rede pública vs sub-rede privada (foco em site)
Sub-rede pública
Uma sub-rede é considerada pública quando:
- Está associada a uma tabela de rotas que possui uma rota para a internet (0.0.0.0/0) apontando para um Internet Gateway.
- Os recursos nela podem receber IP público (automaticamente ou manualmente) e ter regras de segurança permitindo acesso.
Para um site simples com uma instância servindo HTTP/HTTPS diretamente, a instância costuma ficar em uma sub-rede pública.
Sub-rede privada
Uma sub-rede é considerada privada quando não tem rota direta para o Internet Gateway. Isso significa que recursos nela:
- Ouça o áudio com a tela desligada
- Ganhe Certificado após a conclusão
- + de 5000 cursos para você explorar!
Baixar o aplicativo
- Não são acessíveis diretamente da internet.
- Usam apenas IP privado para comunicação interna.
Quando faz sentido usar sub-rede privada em um cenário de site?
- Banco de dados (ex.: RDS) que não deve ser acessado pela internet.
- Serviços internos (ex.: backend, filas, cache) que só o servidor web acessa.
- Camada administrativa que deve ser acessada apenas por VPN/Bastion/SSM.
Neste capítulo, vamos criar apenas uma VPC simples com uma sub-rede pública para a instância do site, e deixar a sub-rede privada como conceito e justificativa (sem implementar banco de dados).
Internet Gateway (IGW): o caminho para a internet
O Internet Gateway é um componente que você anexa à VPC para permitir tráfego com a internet. Sem IGW, mesmo que uma instância tenha IP público, ela não terá rota funcional para fora/para dentro.
Para um servidor web exposto ao público, o fluxo típico é:
- Usuário na internet → IP público da instância → sub-rede pública → VPC
- Instância → IGW → internet (para atualizações, downloads, etc.)
Tabelas de rotas: o que torna uma sub-rede “pública”
Uma tabela de rotas é associada a uma ou mais sub-redes. Ela contém regras do tipo “para este destino, use este alvo”.
O que você precisa reconhecer para um site:
- Rota local (ex.: 10.0.0.0/16 → local): permite comunicação dentro da VPC.
- Rota para internet (0.0.0.0/0 → igw-xxxx): permite que a sub-rede chegue à internet.
Se a sub-rede da instância do site não estiver associada a uma tabela de rotas com 0.0.0.0/0 apontando para o IGW, o site não ficará acessível publicamente (mesmo que você configure o restante).
IP público vs IP privado (o que muda na prática)
IP privado
É o endereço usado dentro da VPC. Ele:
- É atribuído à interface de rede da instância.
- Funciona para comunicação interna (entre instâncias, com banco, etc.).
- Não é roteável pela internet.
IP público
É o endereço que pode ser alcançado pela internet (quando há rota e regras permitindo). Ele:
- Pode ser atribuído automaticamente ao lançar a instância (se a sub-rede permitir).
- Pode mudar se você parar/iniciar a instância (dependendo do tipo de IP e configuração).
Para um site simples acessível diretamente, você precisa de IP público + sub-rede pública + rota para IGW (e, mais adiante, regras de segurança adequadas).
Passo a passo no Console: criar uma VPC simples para hospedar um site
Objetivo: criar uma VPC com uma sub-rede pública e os itens mínimos para permitir que uma instância do site tenha conectividade com a internet.
1) Criar a VPC
- No Console AWS, vá em VPC → Your VPCs → Create VPC.
- Escolha VPC only (para entender as peças) ou um assistente equivalente se preferir, mas mantendo controle do que será criado.
- Defina um bloco CIDR, por exemplo:
10.0.0.0/16. - Nomeie, por exemplo:
vpc-site.
Por que 10.0.0.0/16? É uma faixa privada comum e dá espaço para criar sub-redes (por exemplo, 10.0.1.0/24, 10.0.2.0/24).
2) Criar uma sub-rede pública
- Vá em Subnets → Create subnet.
- Selecione a VPC
vpc-site. - Escolha uma Availability Zone (ex.:
us-east-1aou a que fizer sentido na sua região). - Defina o CIDR da sub-rede, por exemplo:
10.0.1.0/24. - Nomeie:
subnet-publica-site.
Dica prática: um /24 oferece 256 endereços (com reservas internas da AWS), suficiente para um ambiente simples.
3) Criar e anexar um Internet Gateway
- Vá em Internet Gateways → Create internet gateway.
- Nomeie:
igw-site. - Após criar, selecione o IGW → Actions → Attach to VPC → escolha
vpc-site.
Sem anexar o IGW à VPC, a rota para internet não funciona.
4) Criar uma tabela de rotas pública e associar à sub-rede
- Vá em Route Tables → Create route table.
- Nomeie:
rtb-publica-sitee selecione a VPCvpc-site. - Abra a tabela criada → aba Routes → Edit routes → Add route:
Destination: 0.0.0.0/0 Target: igw-site- Agora associe a sub-rede: aba Subnet associations → Edit subnet associations → selecione
subnet-publica-site→ salvar.
Esse é o ponto que efetivamente transforma a sub-rede em “pública”: a rota padrão para o IGW.
5) Habilitar auto-atribuição de IP público na sub-rede (recomendado para iniciantes)
- Vá em Subnets → selecione
subnet-publica-site. - Clique em Actions → Edit subnet settings.
- Marque Enable auto-assign public IPv4 address.
Se você não habilitar isso, ao lançar uma instância nessa sub-rede ela pode ficar apenas com IP privado (a menos que você atribua IP público manualmente no lançamento).
Como isso impacta a exposição do servidor do site
Considere estes três cenários comuns e o resultado esperado:
| Cenário | Sub-rede | Rota 0.0.0.0/0 | IP público | Resultado típico |
|---|---|---|---|---|
| Site acessível na internet | Pública | Para IGW | Sim | Usuários conseguem acessar (desde que regras permitam) |
| Servidor “isolado” | Privada | Sem IGW | Não | Não acessível pela internet |
| Configuração incompleta | Pública | Sem IGW | Sim/Não | Problemas de acesso e/ou saída para internet |
O erro mais comum ao publicar um site pela primeira vez é: criar sub-rede e instância, mas esquecer a rota para o IGW ou esquecer de associar a sub-rede à tabela de rotas correta.
Exercícios de verificação (checklist prático)
Exercício 1: checar rotas da sub-rede pública
Objetivo: confirmar que a sub-rede do site tem rota para a internet.
- Vá em VPC → Subnets → selecione
subnet-publica-site. - Procure a informação de Route table associada (ou vá em Route Tables e veja as associações).
- Abra a tabela
rtb-publica-site→ aba Routes.
O que você deve ver:
- Uma rota
10.0.0.0/16→local - Uma rota
0.0.0.0/0→igw-...
Se não existir a rota 0.0.0.0/0: adicione apontando para o IGW e salve.
Exercício 2: confirmar se a sub-rede está realmente “pública”
Objetivo: validar os dois requisitos mais comuns para uma sub-rede pública em um cenário simples.
- Requisito A: tabela de rotas com
0.0.0.0/0→ IGW (verificado no exercício 1). - Requisito B: auto-assign public IPv4 habilitado (para facilitar o lançamento de instâncias com IP público).
Verificação do requisito B:
- Vá em Subnets → selecione
subnet-publica-site. - Actions → Edit subnet settings.
- Confirme se Enable auto-assign public IPv4 address está marcado.
Interpretação: mesmo com rota para IGW, se a instância não tiver IP público, ela não será acessível diretamente da internet (embora ainda possa sair para a internet dependendo de outras configurações).
Exercício 3: entender IP público vs IP privado na prática
Objetivo: identificar os IPs na instância e relacionar com acessibilidade.
- Quando você tiver uma instância lançada na sub-rede pública (em um capítulo/prática de EC2), vá em EC2 → Instances → selecione a instância.
- No painel de detalhes, encontre:
- Private IPv4 addresses (ex.:
10.0.1.23) - Public IPv4 address (ex.:
54.x.x.x)
Perguntas para responder:
- Qual IP você usaria para acessar o site do seu computador na internet? (IP público)
- Qual IP você usaria para um banco de dados em sub-rede privada se comunicar com o servidor web? (IP privado)
- Se a instância tiver apenas IP privado, o que isso indica sobre a exposição? (não acessível diretamente da internet)
Quando uma sub-rede privada faria sentido (sem implementar)
Mesmo em um site simples, separar camadas aumenta controle e reduz risco. Um desenho comum é:
- Sub-rede pública: servidor web (ou balanceador) que recebe tráfego da internet.
- Sub-rede privada: banco de dados e serviços internos, sem rota direta para IGW.
Benefícios práticos da sub-rede privada:
- Reduz a superfície de ataque: o banco não fica exposto.
- Facilita políticas de acesso: apenas o servidor web “enxerga” o banco.
- Ajuda a aplicar o princípio de menor exposição: cada componente recebe apenas o acesso necessário.
Importante: colocar algo em sub-rede privada não é “mágica” por si só; é uma camada de rede. O controle final depende também de regras de segurança e do desenho do acesso administrativo, mas a base de rede começa aqui: rotas e sub-redes.