Saltar al contenido principal

Internet Gateway y NAT Gateway

Internet Gateway (IGW)​

¿Qué es un Internet Gateway?​

Un Internet Gateway (IGW) es la puerta de entrada/salida entre su VPC e Internet. Sin IGW, su VPC está completamente aislado de Internet.

┌─────────────────────────────────────────────────────────────┐
│ INTERNET GATEWAY │
├─────────────────────────────────────────────────────────────┤
│ │
│ INTERNET │
│ │ │
│ │ │
│ ┌──────▼──────┐ │
│ │ Internet │ │
│ │ Gateway │ │
│ │ (IGW) │ │
│ └──────┬──────┘ │
│ │ │
│ ┌──────────────────────┼──────────────────────┐ │
│ │ VPC │ │ │
│ │ │ │ │
│ │ ┌──────────────────▼───────────────────┐ │ │
│ │ │ │ │ │
│ │ │ Recursos con IP pública │ │ │
│ │ │ ┌─────────┐ │ │ │
│ │ │ │ EC2 │ │ │ │
│ │ │ │ (public)│ │ │ │
│ │ │ └─────────┘ │ │ │
│ │ │ │ │ │
│ │ └───────────────────────────────────────┘ │ │
│ │ │ │
│ └──────────────────────────────────────────────┘ │
│ │
│ Características: │
│ • Altamente disponible (gestionado por AWS) │
│ • Sin límite de ancho de banda │
│ • 1 IGW por VPC máximo │
│ • Gratuito (sin coste por el IGW en sí) │
│ │
└─────────────────────────────────────────────────────────────┘

Funcionamiento del IGW​

┌─────────────────────────────────────────────────────────────┐
│ FUNCIONAMIENTO IGW │
├─────────────────────────────────────────────────────────────┤
│ │
│ TRÁFICO SALIENTE (Instancia → Internet) │
│ ──────────────────────────────────── │
│ │
│ ┌─────────┐ ┌─────┐ ┌─────────┐ │
│ │Instancia│ ──────► │ IGW │ ──────► │Internet │ │
│ │10.0.1.5 │ │ │ │ │ │
│ └─────────┘ └─────┘ └─────────┘ │
│ │ │
│ Traducción NAT │
│ 10.0.1.5 → 52.1.2.3 │
│ (IP privada → IP pública) │
│ │
│ TRÁFICO ENTRANTE (Internet → Instancia) │
│ ──────────────────────────────────── │
│ │
│ ┌─────────┐ ┌─────┐ ┌─────────┐ │
│ │Instancia│ ◄────── │ IGW │ ◄────── │Internet │ │
│ │10.0.1.5 │ │ │ │52.1.2.3 │ │
│ └─────────┘ └─────┘ └─────────┘ │
│ │ │
│ Traducción NAT │
│ 52.1.2.3 → 10.0.1.5 │
│ (IP pública → IP privada) │
│ │
└─────────────────────────────────────────────────────────────┘

Crear y Adjuntar un IGW​

# 1. Crear el Internet Gateway
aws ec2 create-internet-gateway \
--tag-specifications 'ResourceType=internet-gateway,Tags=[{Key=Name,Value=mon-igw}]'

# 2. Adjuntar al VPC
aws ec2 attach-internet-gateway \
--internet-gateway-id igw-xxx \
--vpc-id vpc-xxx

# 3. Añadir la ruta en la 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

Condiciones para Acceso a Internet (Instancia)​

┌─────────────────────────────────────────────────────────────┐
│ CONDICIONES PARA ACCESO A INTERNET │
├─────────────────────────────────────────────────────────────┤
│ │
│ Para que una instancia acceda a Internet, se requiere: │
│ │
│ ☐ 1. El VPC tiene un Internet Gateway adjunto │
│ │
│ ☐ 2. La Route Table del subnet tiene una ruta hacia IGW │
│ Destino: 0.0.0.0/0 → Target: igw-xxx │
│ │
│ ☐ 3. La instancia tiene una IP pública o Elastic IP │
│ (si no, no hay retorno posible) │
│ │
│ ☐ 4. El Security Group permite tráfico saliente │
│ (por defecto: todo permitido) │
│ │
│ ☐ 5. El NACL permite el tráfico (entrada Y salida) │
│ (por defecto: todo permitido) │
│ │
│ ¡Si FALTA UNO SOLO = Sin acceso a Internet! │
│ │
└─────────────────────────────────────────────────────────────┘

NAT Gateway​

¿Qué es un NAT Gateway?​

Un NAT Gateway permite a las instancias en subnets privados acceder a Internet (solo salida) sin ser accesibles desde Internet.

┌─────────────────────────────────────────────────────────────┐
│ NAT GATEWAY │
├─────────────────────────────────────────────────────────────┤
│ │
│ INTERNET │
│ │ │
│ ┌──────▼──────┐ │
│ │ IGW │ │
│ └──────┬──────┘ │
│ │ │
│ ┌──────────────────────┼──────────────────────┐ │
│ │ VPC │ │ │
│ │ │ │ │
│ │ ┌──────────────────▼───────────────────┐ │ │
│ │ │ SUBNET PÚBLICO │ │ │
│ │ │ │ │ │
│ │ │ ┌─────────────┐ │ │ │
│ │ │ │ NAT Gateway │ │ │ │
│ │ │ │ (52.1.2.99) │ │ │ │
│ │ │ └──────┬──────┘ │ │ │
│ │ │ │ │ │ │
│ │ └──────────────────┼────────────────────┘ │ │
│ │ │ │ │
│ │ ┌──────────────────▼───────────────────┐ │ │
│ │ │ SUBNET PRIVADO │ │ │
│ │ │ │ │ │
│ │ │ ┌─────────┐ │ │ │
│ │ │ │ EC2 │ │ │ │
│ │ │ │(10.0.11.5) │ │ │
│ │ │ └─────────┘ │ │ │
│ │ │ │ │ │
│ │ │ Ruta: 0.0.0.0/0 → nat-xxx │ │ │
│ │ │ │ │ │
│ │ └───────────────────────────────────────┘ │ │
│ │ │ │
│ └──────────────────────────────────────────────┘ │
│ │
│ Flujo: EC2 privado → NAT GW → IGW → Internet │
│ ¡No hay retorno iniciado desde Internet! │
│ │
└─────────────────────────────────────────────────────────────┘

NAT Gateway vs NAT Instance​

CaracterísticaNAT GatewayNAT Instance
DisponibilidadAlta (gestionado AWS)Usted gestiona
Ancho de bandaHasta 45 GbpsDepende del tipo
MantenimientoAWSUsted
CostoMás caroMás barato
Recomendación✅ Producción❌ Legacy

Crear un NAT Gateway​

# 1. Asignar una Elastic IP
aws ec2 allocate-address --domain vpc

# 2. Crear el NAT Gateway (en 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. Añadir ruta en 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

Costo del NAT Gateway​

┌─────────────────────────────────────────────────────────────┐
│ COSTO NAT GATEWAY │
├─────────────────────────────────────────────────────────────┤
│ │
│ CARGO POR HORA │
│ • ~$0.045/hora por NAT Gateway │
│ • ~$32/mes si está activo 24/7 │
│ │
│ CARGO POR DATOS │
│ • ~$0.045/GB procesado │
│ │
│ Ejemplo mensual: │
│ • 1 NAT Gateway : $32 │
│ • 100 GB transferencia : $4.50 │
│ • Total : $36.50/mes │
│ │
│ ⚠️ CONSEJO DE AHORRO: │
│ • Para dev/test: usar NAT Instance (más barato) │
│ • O: VPC Endpoints para S3/DynamoDB (gratuito) │
│ • O: Subnet público para instancias que necesitan │
│ acceso a Internet │
│ │
└─────────────────────────────────────────────────────────────┘

NAT Gateway Alta Disponibilidad​

┌─────────────────────────────────────────────────────────────┐
│ NAT GATEWAY ALTA DISPONIBILIDAD │
├─────────────────────────────────────────────────────────────┤
│ │
│ Un NAT Gateway = Una AZ │
│ Para HA, cree un 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 │ │ │ │
│ │ │ └───────────┘ │ │ └───────────┘ │ │ │
│ │ │ │ │ │ │ │
│ │ └───────────────┘ └───────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ Si NAT GW 1a falla → los subnets privados 1a pierden │
│ acceso a Internet. Pero los subnets privados 1b siguen │
│ funcionando. │
│ │
└─────────────────────────────────────────────────────────────┘

Elastic IP​

¿Qué es una Elastic IP?​

Una Elastic IP es una dirección IPv4 pública estática que puede asociar a sus recursos.

┌─────────────────────────────────────────────────────────────┐
│ ELASTIC IP │
├─────────────────────────────────────────────────────────────┤
│ │
│ IP Pública Normal Elastic IP │
│ ──────────────────── ────────── │
│ │
│ • Asignada por AWS • Usted la asigna │
│ • Cambia si Stop/Start • Permanece fija │
│ • Gratuita si se usa • Gratuita si está asociada │
│ • Se pierde si termina • Se conserva tras terminar │
│ │
│ Casos de uso de Elastic IP: │
│ • Servidor que debe mantener la misma IP │
│ • NAT Gateway (obligatorio) │
│ • Failover rápido entre instancias │
│ │
│ ⚠️ COSTO: EIP no asociada = ~$3.60/mes │
│ (¡AWS cobra por EIP no utilizadas!) │
│ │
└─────────────────────────────────────────────────────────────┘

Esquema Completo​

┌─────────────────────────────────────────────────────────────────────────┐
│ ARQUITECTURA DE RED COMPLETA │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ INTERNET │
│ │ │
│ ┌──────▼──────┐ │
│ │ IGW │ │
│ └──────┬──────┘ │
│ │ │
│ ┌──────────────────────────────┼──────────────────────────────┐ │
│ │ VPC │ (10.0.0.0/16) │ │
│ │ │ │ │
│ │ ┌──────────────────────────┴────────────────────────────┐ │ │
│ │ │ SUBNETS PÚBLICOS │ │ │
│ │ │ Ruta: 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 │ │ │ │
│ │ │ │ Ruta: 0.0.0.0/0 → NAT │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ ┌────────▼────────┐ ┌────────▼────────┐ │ │ │
│ │ │ │ Private 1a │ │ Private 1b │ │ │ │
│ │ │ │ 10.0.11.0/24 │ │ 10.0.12.0/24 │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ ┌───────────┐ │ │ ┌───────────┐ │ │ │ │
│ │ │ │ │ EC2 │ │ │ │ EC2 │ │ │ │ │
│ │ │ │ │ App │ │ │ │ App │ │ │ │ │
│ │ │ │ └───────────┘ │ │ └───────────┘ │ │ │ │
│ │ │ └─────────────────┘ └─────────────────┘ │ │ │
│ │ │ │ │ │
│ │ └────────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └───────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────┘

Resumen​

ComponenteFunciónCosto
IGWAcceso a Internet bidireccionalGratuito
NAT GatewaySalida a Internet para privado~$32/mes + datos
Elastic IPIP pública fijaGratuito si se usa
NAT InstanceAlternativa NAT (legacy)Costo EC2

Quiz de Validación​

  1. ¿Para qué sirve un Internet Gateway?
  2. ¿Por qué es necesario un NAT Gateway para los subnets privados?
  3. ¿En qué tipo de subnet debe estar el NAT Gateway?
  4. ¿Cuánto cuesta una Elastic IP no utilizada?
  5. ¿Cómo asegurar la HA para los NAT Gateways?

Próxima sección: Lab: Esquema VPC