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ística | NAT Gateway | NAT Instance |
|---|---|---|
| Disponibilidad | Alta (gestionado AWS) | Usted gestiona |
| Ancho de banda | Hasta 45 Gbps | Depende del tipo |
| Mantenimiento | AWS | Usted |
| Costo | Más caro | Má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
| Componente | Función | Costo |
|---|---|---|
| IGW | Acceso a Internet bidireccional | Gratuito |
| NAT Gateway | Salida a Internet para privado | ~$32/mes + datos |
| Elastic IP | IP pública fija | Gratuito si se usa |
| NAT Instance | Alternativa NAT (legacy) | Costo EC2 |
Quiz de Validación
- ¿Para qué sirve un Internet Gateway?
- ¿Por qué es necesario un NAT Gateway para los subnets privados?
- ¿En qué tipo de subnet debe estar el NAT Gateway?
- ¿Cuánto cuesta una Elastic IP no utilizada?
- ¿Cómo asegurar la HA para los NAT Gateways?
Próxima sección: Lab: Esquema VPC