VPC em Profundidade: NAT, Peering e Transit Gateway
VPC é onde o SAA-C03 separa os candidatos. Não basta “saber o que é”: você precisa desenhar, escolher entre NAT Gateway e VPC Endpoint, entender quando Transit Gateway vence Peering, saber quando PrivateLink é a única opção. Este módulo é denso — relê se precisar.
Onde isso entra no exame
Networking é transversal: aparece em Resilient (multi-AZ, DR), Secure (SG/NACL, VPC Endpoints), High-Performing (Transit Gateway, Direct Connect) e Cost (escolha entre NAT Gateway e VPC Endpoint).
Anatomia de uma VPC
Componentes essenciais:
- • CIDR block — range IPv4 privado (ex: 10.0.0.0/16 = 65k IPs)
- • Subnets — subdivisões da VPC, cada uma em UMA AZ específica
- • Route Tables — definem destino do tráfego; associadas a subnets
- • Internet Gateway (IGW) — acesso bidirecional à internet (1 por VPC)
- • NAT Gateway — acesso outbound-only à internet para subnets privadas
- • Security Groups — firewall stateful em nível de ENI
- • Network ACLs — firewall stateless em nível de subnet
Subnet pública vs privada — a diferença técnica
Não existe flag "public" em subnet. Uma subnet é pública se sua route table tem rota 0.0.0.0/0 → IGW E as instâncias têm IP público (ou Elastic IP). Privada = sem rota direta para IGW.
| Tipo de subnet | Route table aponta para | Uso |
|---|---|---|
| Pública | IGW em 0.0.0.0/0 | ALB/NLB frontais, Bastion, NAT Gateway |
| Privada (com NAT) | NAT Gateway em 0.0.0.0/0 | EC2 app que precisa updates/APIs |
| Privada isolada | Sem 0.0.0.0/0 (só local VPC) | RDS, ElastiCache, bastiões sensíveis |
NAT Gateway vs NAT Instance
| Aspecto | NAT Gateway (recomendado) | NAT Instance (legacy) |
|---|---|---|
| Gerenciamento | Totalmente gerenciado pela AWS | Você gerencia (EC2 + AMI) |
| Bandwidth | Até 100 Gbps automaticamente | Limitada pela instance type |
| HA | HA dentro da AZ (deploy 1 por AZ para Multi-AZ) | Manual via failover scripts |
| Custo | $0,045/h + $0,045/GB | Custo da EC2 + data transfer |
| Security Groups | ❌ Não suporta | ✅ Suporta |
| Port Forwarding | ❌ | ✅ |
| Usar como Bastion | ❌ | ✅ |
Regra prática: use NAT Gateway em 99% dos casos. NAT Instance só aparece em questões "legacy/custom" ou onde port forwarding é requerido.
Security Groups vs NACLs
| Aspecto | Security Group | Network ACL |
|---|---|---|
| Nível | ENI (instância) | Subnet |
| Stateful? | Sim — retorno automático | Não — precisa regra ida + volta |
| Allow/Deny | Só allow (implicit deny) | Allow e Deny |
| Regras avaliadas | Todas (union) | Em ordem numérica (primeiro match ganha) |
| Max rules | 60 inbound + 60 outbound | 20 inbound + 20 outbound (soft limit 40) |
| Attach a | Instâncias (até 5 SGs por ENI) | 1 NACL por subnet |
| Uso típico | Controle fine-grained por app/tier | Bloqueio amplo (ex: IP banido) |
NACL ephemeral ports: como é stateless, resposta de uma request sai por porta ephemeral (1024-65535). Se NACL não permitir outbound nessas portas, a resposta é bloqueada — e você fica sem entender por quê.
Conectividade entre VPCs — opções
| Solução | Uso | Limitações |
|---|---|---|
| VPC Peering | 2 VPCs, 1-a-1 | Não-transitivo. CIDRs não podem overlap. |
| Transit Gateway | Hub-and-spoke para muitas VPCs + on-prem | Custo por attachment + data processing |
| VPC Endpoint / PrivateLink | Expor serviço de uma VPC para outras (sem peering) | Unidirecional (consumer → provider) |
| Site-to-Site VPN | VPC ↔ on-prem via IPSec | Passa pela internet (encrypted) |
| Direct Connect | VPC ↔ on-prem via link físico dedicado | Alto custo, setup em semanas/meses |
| Client VPN | Usuários individuais ↔ VPC | OpenVPN-based, por usuário |
VPC Peering — detalhes
- • Conexão lógica entre 2 VPCs (mesma conta ou cross-account)
- • Funciona cross-region desde 2018 (Inter-Region Peering)
- • CIDRs não podem se sobrepor
- • Não-transitivo — cada par precisa peering próprio
- • Atualize route tables de AMBAS as VPCs manualmente
- • Custo: só data transfer ($0,01/GB same-AZ, $0,02/GB cross-AZ)
Transit Gateway — a solução moderna
- • Hub central que conecta VPCs + VPNs + Direct Connect
- • Suporta milhares de VPCs
- • Roteamento por TGW Route Tables (pode segregar: prod-TGW-RT não fala com dev-TGW-RT)
- • Cross-region: TGW Peering
- • Multicast support (único AWS service nativamente)
- • Custo: $0,05/h por attachment + $0,02/GB processamento
Quando escolher TGW vs Peering: se você tem >3 VPCs ou prevê crescimento, Transit Gateway vale a pena. Full-mesh com peering é insustentável acima de ~5 VPCs.
VPC Endpoints — dois tipos
| Tipo | Serviços | Custo | Como funciona |
|---|---|---|---|
| Gateway Endpoint | S3 e DynamoDB (apenas) | GRÁTIS | Rota adicionada à route table para prefix-list do serviço |
| Interface Endpoint (PrivateLink) | Todos os outros (SQS, SNS, KMS, API GW, ECS, etc.) | $0,01/h + $0,01/GB | ENI criada na subnet com DNS privado |
Economia concreta: se sua app em subnet privada faz muito S3/DynamoDB, troque NAT Gateway por Gateway Endpoint. Elimina $0,045/GB de data transfer do NAT — pode economizar milhares/mês.
AWS PrivateLink — serviço privado seu
PrivateLink permite expor um serviço (atrás de NLB) em uma VPC para consumidores em outras VPCs/contas, via Interface Endpoint. Unidirecional: consumer chama provider, provider não enxerga consumer de volta.
VPN vs Direct Connect
| Aspecto | Site-to-Site VPN | Direct Connect |
|---|---|---|
| Meio físico | Internet (IPSec tunnel) | Link físico dedicado (fibra 1/10/100 Gbps) |
| Latência | Variável (depende da internet) | Consistente, baixa |
| Banda | Até ~1,25 Gbps por tunnel | 1/10/100 Gbps dedicada |
| Setup | Minutos | Semanas a meses |
| Custo | $0,05/h + data transfer | $$$ taxa de porta + datacenter partner |
| Criptografia | Nativa (IPSec) | NÃO criptografada por padrão (use DX + VPN) |
| Uso típico | Small/medium, burst, DR | Throughput sustentado, compliance |
Direct Connect + VPN: combo comum — DX para banda/latência, VPN por cima para criptografia. Também serve de failover (DX cai → VPN assume).
VPC Flow Logs, Reachability Analyzer, Network Access Analyzer
- • VPC Flow Logs — metadata de tráfego (src, dst, port, ACCEPT/REJECT). Entregue a CloudWatch Logs ou S3.
- • Reachability Analyzer — testa se A consegue chegar em B (considera SG, NACL, routes). Útil para debug.
- • Network Access Analyzer — audita postura: "liste todas as EC2 que podem alcançar a internet" — ótimo para compliance.
Cenários de decisão
📋 Startup com 2 VPCs (prod + analytics) que precisam se comunicar
2 VPCs = peering direto, barato, simples. Transit Gateway seria overkill e custaria $0,05/h por attachment + processing.
📋 Empresa com 30 VPCs em 3 regiões, precisando conectar todas + on-prem
30 VPCs em peering seriam 435 conexões. TGW centraliza, simplifica routing via TGW Route Tables. DX para on-prem se throughput justifica.
📋 App em subnet privada faz 5TB/mês de leituras do S3
5TB via NAT Gateway = 5000 × $0,045 = $225/mês só de processamento + bandwidth. Gateway Endpoint = $0.
📋 SaaS precisa expor seu serviço a múltiplos clientes de forma privada (sem internet)
Cada cliente cria um Interface Endpoint na sua VPC, conecta via NLB do provedor. Sem roteamento complexo, sem CIDR overlap, isolamento total.
📋 Backup semanal de 50 TB de on-prem → S3
50 TB via VPN levaria semanas. DX 10 Gbps entrega em ~11h. Se é único/infrequente, use Snowball em vez.
Pegadinhas VPC no SAA:
Perguntas típicas (Q&A)
❓ Como permitir que uma EC2 em subnet privada faça download de patches do OS?
❓ Quais serviços suportam Gateway VPC Endpoint (grátis)?
❓ Minha instância privada em subnet X consegue fazer ping em outra instância privada na subnet Y mesma VPC?
❓ Como garantir que certas subnets nunca tenham internet mesmo se alguém tentar criar uma rota por acidente?
Take-aways: VPC = rede isolada com CIDR próprio. Subnets ficam em 1 AZ. Pública = rota IGW; privada = rota NAT ou isolada. SG é stateful (allow-only); NACL é stateless (allow/deny numeradas). Peering = 1-a-1 não-transitivo; Transit Gateway = hub-and-spoke para muitas. Gateway Endpoint (S3/DynamoDB) é grátis; Interface Endpoint (PrivateLink) é pago mas cobre quase tudo. VPN via internet; DX via fibra dedicada. Use Reachability Analyzer para debug de conectividade.
Discussão
Carregando…