Pular para o conteúdo principal

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ísticaNAT GatewayNAT Instance
DisponibilidadeAlta (AWS gerencia)Você gerencia
BandaAté 45 GbpsDepende do tipo
ManutençãoAWSVocê
CustoMais caroMais 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​

ComponenteFunçãoCusto
IGWAcesso Internet bidirecionalGratuito
NAT GatewaySaída Internet para privado~$32/mês + dados
Elastic IPIP público fixoGratuito se usado
NAT InstanceAlternativa NAT (legacy)Custo EC2

Quiz de Validação​

  1. Para que serve um Internet Gateway?
  2. Por que um NAT Gateway é necessário para subnets privados?
  3. Em que tipo de subnet o NAT Gateway deve estar?
  4. Quanto custa uma Elastic IP não utilizada?
  5. Como garantir HA para os NAT Gateways?

Próxima seção: Lab: Esquema VPC