Internet Gateway e NAT Gateway
Internet Gateway (IGW)
O que é um Internet Gateway?
Um Internet Gateway (IGW) é a porta de entrada/saída entre seu VPC e a Internet. Sem um IGW, seu VPC fica completamente isolado da Internet.
┌─────────────────────────────────────────────────────────────┐
│ INTERNET GATEWAY │
├─────────────────────────────────────────────────────────────┤
│ │
│ INTERNET │
│ │ │
│ │ │
│ ┌──────▼──────┐ │
│ │ Internet │ │
│ │ Gateway │ │
│ │ (IGW) │ │
│ └──────┬──────┘ │
│ │ │
│ ┌──────────────────────┼──────────────────────┐ │
│ │ VPC │ │ │
│ │ │ │ │
│ │ ┌──────────────────▼───────────────────┐ │ │
│ │ │ │ │ │
│ │ │ Recursos com IP público │ │ │
│ │ │ ┌─────────┐ │ │ │
│ │ │ │ EC2 │ │ │ │
│ │ │ │ (public)│ │ │ │
│ │ │ └─────────┘ │ │ │
│ │ │ │ │ │
│ │ └───────────────────────────────────────┘ │ │
│ │ │ │
│ └──────────────────────────────────────────────┘ │
│ │
│ Características: │
│ • Altamente disponível (gerenciado pela AWS) │
│ • Sem limite de banda │
│ • 1 IGW por VPC no máximo │
│ • Gratuito (sem custo pelo IGW em si) │
│ │
└─────────────────────────────────────────────────────────────┘
Funcionamento do IGW
┌─────────────────────────────────────────────────────────────┐
│ FUNCIONAMENTO IGW │
├─────────────────────────────────────────────────────────────┤
│ │
│ TRÁFEGO DE SAÍDA (Instância → Internet) │
│ ──────────────────────────────────── │
│ │
│ ┌─────────┐ ┌─────┐ ┌─────────┐ │
│ │Instância│ ──────► │ IGW │ ──────► │Internet │ │
│ │10.0.1.5 │ │ │ │ │ │
│ └─────────┘ └─────┘ └─────────┘ │
│ │ │
│ Tradução NAT │
│ 10.0.1.5 → 52.1.2.3 │
│ (IP privado → IP público) │
│ │
│ TRÁFEGO DE ENTRADA (Internet → Instância) │
│ ──────────────────────────────────── │
│ │
│ ┌─────────┐ ┌─────┐ ┌─────────┐ │
│ │Instância│ ◄────── │ IGW │ ◄────── │Internet │ │
│ │10.0.1.5 │ │ │ │52.1.2.3 │ │
│ └─────────┘ └─────┘ └─────────┘ │
│ │ │
│ Tradução NAT │
│ 52.1.2.3 → 10.0.1.5 │
│ (IP público → IP privado) │
│ │
└─────────────────────────────────────────────────────────────┘
Criar e Associar um IGW
# 1. Criar o Internet Gateway
aws ec2 create-internet-gateway \
--tag-specifications 'ResourceType=internet-gateway,Tags=[{Key=Name,Value=meu-igw}]'
# 2. Associar ao VPC
aws ec2 attach-internet-gateway \
--internet-gateway-id igw-xxx \
--vpc-id vpc-xxx
# 3. Adicionar rota na Route Table pública
aws ec2 create-route \
--route-table-id rtb-xxx \
--destination-cidr-block 0.0.0.0/0 \
--gateway-id igw-xxx
Condições para Acesso à Internet (Instância)
┌─────────────────────────────────────────────────────────────┐
│ CONDIÇÕES PARA ACESSO À INTERNET │
├─────────────────────────────────────────────────────────────┤
│ │
│ Para que uma instância acesse a Internet, é necessário: │
│ │
│ ☐ 1. VPC tem um Internet Gateway associado │
│ │
│ ☐ 2. Route Table do subnet tem rota para IGW │
│ Destino: 0.0.0.0/0 → Target: igw-xxx │
│ │
│ ☐ 3. Instância tem um IP público ou Elastic IP │
│ (senão não há retorno possível) │
│ │
│ ☐ 4. Security Group permite tráfego de saída │
│ (por padrão: tudo permitido) │
│ │
│ ☐ 5. NACL permite tráfego (entrada E saída) │
│ (por padrão: tudo permitido) │
│ │
│ Se FALTAR QUALQUER UM = Sem acesso à Internet! │
│ │
└─────────────────────────────────────────────────────────────┘
NAT Gateway
O que é um NAT Gateway?
Um NAT Gateway permite que instâncias em subnets privados acessem a Internet (somente saída) sem serem acessíveis a partir da Internet.
┌─────────────────────────────────────────────────────────────┐
│ NAT GATEWAY │
├─────────────────────────────────────────────────────────────┤
│ │
│ INTERNET │
│ │ │
│ ┌──────▼──────┐ │
│ │ IGW │ │
│ └──────┬──────┘ │
│ │ │
│ ┌──────────────────────┼──────────────────────┐ │
│ │ VPC │ │ │
│ │ │ │ │
│ │ ┌──────────────────▼───────────────────┐ │ │
│ │ │ SUBNET PÚBLICO │ │ │
│ │ │ │ │ │
│ │ │ ┌─────────────┐ │ │ │
│ │ │ │ NAT Gateway │ │ │ │
│ │ │ │ (52.1.2.99) │ │ │ │
│ │ │ └──────┬──────┘ │ │ │
│ │ │ │ │ │ │
│ │ └──────────────────┼────────────────────┘ │ │
│ │ │ │ │
│ │ ┌──────────────────▼───────────────────┐ │ │
│ │ │ SUBNET PRIVADO │ │ │
│ │ │ │ │ │
│ │ │ ┌─────────┐ │ │ │
│ │ │ │ EC2 │ │ │ │
│ │ │ │(10.0.11.5) │ │ │
│ │ │ └─────────┘ │ │ │
│ │ │ │ │ │
│ │ │ Rota: 0.0.0.0/0 → nat-xxx │ │ │
│ │ │ │ │ │
│ │ └───────────────────────────────────────┘ │ │
│ │ │ │
│ └──────────────────────────────────────────────┘ │
│ │
│ Fluxo: EC2 privado → NAT GW → IGW → Internet │
│ Não há retorno iniciado da Internet! │
│ │
└─────────────────────────────────────────────────────────────┘
NAT Gateway vs NAT Instance
| Característica | NAT Gateway | NAT Instance |
|---|---|---|
| Disponibilidade | Alta (AWS gerencia) | Você gerencia |
| Banda | Até 45 Gbps | Depende do tipo |
| Manutenção | AWS | Você |
| Custo | Mais caro | Mais barato |
| Recomendação | ✅ Produção | ❌ Legacy |
Criar um NAT Gateway
# 1. Alocar um Elastic IP
aws ec2 allocate-address --domain vpc
# 2. Criar o NAT Gateway (no subnet PÚBLICO)
aws ec2 create-nat-gateway \
--subnet-id subnet-public-xxx \
--allocation-id eipalloc-xxx \
--tag-specifications 'ResourceType=natgateway,Tags=[{Key=Name,Value=nat-gw-1a}]'
# 3. Adicionar rota na Route Table PRIVADA
aws ec2 create-route \
--route-table-id rtb-private-xxx \
--destination-cidr-block 0.0.0.0/0 \
--nat-gateway-id nat-xxx
Custo do NAT Gateway
┌─────────────────────────────────────────────────────────────┐
│ CUSTO NAT GATEWAY │
├─────────────────────────────────────────────────────────────┤
│ │
│ TAXA POR HORA │
│ • ~$0.045/hora por NAT Gateway │
│ • ~$32/mês se ativo 24/7 │
│ │
│ TAXA DE DADOS │
│ • ~$0.045/GB trafegado │
│ │
│ Exemplo mensal: │
│ • 1 NAT Gateway: $32 │
│ • 100 GB transferência: $4.50 │
│ • Total: $36.50/mês │
│ │
│ ⚠️ DICA DE ECONOMIA: │
│ • Para dev/teste: use NAT Instance (mais barato) │
│ • Ou: VPC Endpoints para S3/DynamoDB (gratuito) │
│ • Ou: Subnet público para instâncias que precisam │
│ de Internet │
│ │
└─────────────────────────────────────────────────────────────┘
NAT Gateway Alta Disponibilidade
┌─────────────────────────────────────────────────────────────┐
│ NAT GATEWAY ALTA DISPONIBILIDADE │
├─────────────────────────────────────────────────────────────┤
│ │
│ Um NAT Gateway = Uma AZ │
│ Para HA, crie um NAT GW por AZ │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ VPC │ │
│ │ │ │
│ │ ┌───────────────┐ ┌───────────────┐ │ │
│ │ │ AZ 1a │ │ AZ 1b │ │ │
│ │ │ │ │ │ │ │
│ │ │ ┌───────────┐ │ │ ┌───────────┐ │ │ │
│ │ │ │ NAT GW 1a │ │ │ │ NAT GW 1b │ │ │ │
│ │ │ └─────┬─────┘ │ │ └─────┬─────┘ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ ┌─────▼─────┐ │ │ ┌─────▼─────┐ │ │ │
│ │ │ │ Private │ │ │ │ Private │ │ │ │
│ │ │ │ Subnet 1a │ │ │ │ Subnet 1b │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ rtb: → │ │ │ │ rtb: → │ │ │ │
│ │ │ │ nat-1a │ │ │ │ nat-1b │ │ │ │
│ │ │ └───────────┘ │ │ └───────────┘ │ │ │
│ │ │ │ │ │ │ │
│ │ └───────────────┘ └───────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ Se NAT GW 1a cair → Subnets privados 1a perdem Internet │
│ Mas subnets privados 1b continuam funcionando │
│ │
└─────────────────────────────────────────────────────────────┘
Elastic IP
O que é uma Elastic IP?
Uma Elastic IP é um endereço IPv4 público estático que você pode associar aos seus recursos.
┌─────────────────────────────────────────────────────────────┐
│ ELASTIC IP │
├─────────────────────────────────────────────────────────────┤
│ │
│ IP Público Normal Elastic IP │
│ ──────────────────── ────────── │
│ │
│ • Atribuído pela AWS • Você aloca │
│ • Muda se Stop/Start • Permanece fixo │
│ • Gratuito se usado • Gratuito se associado │
│ • Perdido se terminado • Mantido após terminate │
│ │
│ Casos de uso Elastic IP: │
│ • Servidor que precisa manter o mesmo IP │
│ • NAT Gateway (obrigatório) │
│ • Failover rápido entre instâncias │
│ │
│ ⚠️ CUSTO: EIP não associada = ~$3.60/mês │
│ (A AWS cobra por EIP não utilizada!) │
│ │
└─────────────────────────────────────────────────────────────┘
Esquema Completo
┌─────────────────────────────────────────────────────────────────────────┐
│ ARQUITETURA DE REDE COMPLETA │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ INTERNET │
│ │ │
│ ┌──────▼──────┐ │
│ │ IGW │ │
│ └──────┬──────┘ │
│ │ │
│ ┌──────────────────────────────┼──────────────────────────────┐ │
│ │ VPC │ (10.0.0.0/16) │ │
│ │ │ │ │
│ │ ┌──────────────────────────┴────────────────────────────┐ │ │
│ │ │ SUBNETS PÚBLICOS │ │ │
│ │ │ Rota: 0.0.0.0/0 → IGW │ │ │
│ │ │ │ │ │
│ │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │
│ │ │ │ Public 1a │ │ Public 1b │ │ │ │
│ │ │ │ 10.0.1.0/24 │ │ 10.0.2.0/24 │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ ┌───────────┐ │ │ ┌───────────┐ │ │ │ │
│ │ │ │ │ NAT GW │ │ │ │ NAT GW │ │ │ │ │
│ │ │ │ │ 1a │ │ │ │ 1b │ │ │ │ │
│ │ │ │ └─────┬─────┘ │ │ └─────┬─────┘ │ │ │ │
│ │ │ └────────┼────────┘ └────────┼────────┘ │ │ │
│ │ │ │ │ │ │ │
│ │ └───────────┼──────────────────────────┼─────────────────┘ │ │
│ │ │ │ │ │
│ │ ┌───────────┼──────────────────────────┼─────────────────┐ │ │
│ │ │ │ SUBNETS PRIVADOS │ │ │ │
│ │ │ │ Rota: 0.0.0.0/0 → NAT │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ ┌────────▼────────┐ ┌────────▼────────┐ │ │ │
│ │ │ │ Private 1a │ │ Private 1b │ │ │ │
│ │ │ │ 10.0.11.0/24 │ │ 10.0.12.0/24 │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ ┌───────────┐ │ │ ┌───────────┐ │ │ │ │
│ │ │ │ │ EC2 │ │ │ │ EC2 │ │ │ │ │
│ │ │ │ │ App │ │ │ │ App │ │ │ │ │
│ │ │ │ └───────────┘ │ │ └───────────┘ │ │ │ │
│ │ │ └─────────────────┘ └─────────────────┘ │ │ │
│ │ │ │ │ │
│ │ └────────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └───────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────┘
Resumo
| Componente | Função | Custo |
|---|---|---|
| IGW | Acesso Internet bidirecional | Gratuito |
| NAT Gateway | Saída Internet para privado | ~$32/mês + dados |
| Elastic IP | IP público fixo | Gratuito se usado |
| NAT Instance | Alternativa NAT (legacy) | Custo EC2 |
Quiz de Validação
- Para que serve um Internet Gateway?
- Por que um NAT Gateway é necessário para subnets privados?
- Em que tipo de subnet o NAT Gateway deve estar?
- Quanto custa uma Elastic IP não utilizada?
- Como garantir HA para os NAT Gateways?
Próxima seção: Lab: Esquema VPC