🌐

VPC - Virtual Private Cloud y Networking

Subnets, Route Tables, NAT y Security Groups

⏱️ Tiempo estimado de lectura: 30 minutos

Fundamentos de VPC

Amazon VPC te permite provisionar una sección lógicamente aislada de la nube de AWS donde puedes lanzar recursos en una red virtual que defines.

Conceptos fundamentales:
- VPC: Red virtual privada en AWS (máx 5 por región, límite soft)
- CIDR Block: Rango de IPs para la VPC (ej: 10.0.0.0/16)
- Subnets: Subdivisiones de VPC asociadas a una AZ específica
- Route Tables: Reglas que determinan hacia dónde se dirige el tráfico
- Internet Gateway (IGW): Permite comunicación con internet
- NAT Gateway/Instance: Permite que subnets privadas accedan a internet

Subnets públicas vs privadas:
- Pública: Tiene ruta a Internet Gateway, instancias tienen IP pública
- Privada: Sin ruta directa a internet, usa NAT para salida

Puntos Clave

  • VPC span múltiples AZ, subnets pertenecen a una AZ
  • Cada VPC tiene un CIDR block principal y hasta 4 secundarios
  • Default VPC tiene IGW, subnets públicas y route tables configuradas
  • CIDR /16 (65536 IPs) a /28 (16 IPs) permitidos
  • AWS reserva 5 IPs en cada subnet (primeras 4 y última)

💻 Creación básica de VPC

# Crear VPC
aws ec2 create-vpc --cidr-block 10.0.0.0/16

# Crear subnet pública
aws ec2 create-subnet \n  --vpc-id vpc-0123456789abcdef0 \n  --cidr-block 10.0.1.0/24 \n  --availability-zone us-east-1a

# Crear Internet Gateway
aws ec2 create-internet-gateway

# Asociar IGW a VPC
aws ec2 attach-internet-gateway \n  --vpc-id vpc-0123456789abcdef0 \n  --internet-gateway-id igw-0123456789abcdef0

NAT Gateway y NAT Instance

NAT (Network Address Translation) permite que instancias en subnets privadas inicien tráfico saliente a internet, pero previenen conexiones entrantes iniciadas desde internet.

NAT Gateway (recomendado):
- Servicio gestionado por AWS
- Alto ancho de banda (hasta 100 Gbps)
- Alta disponibilidad dentro de AZ
- No administración requerida
- Costo por hora + por GB procesado
- Debe crearse en subnet pública
- Requiere Elastic IP
- No soporta Security Groups (solo NACL)

NAT Instance:
- Instancia EC2 configurada como NAT
- Debes gestionar failover, patching, scaling
- Más económico para tráfico bajo
- Puede usarse como bastion host
- Soporta Security Groups
- Debe deshabilitar source/destination check

Alta disponibilidad:
- NAT Gateway: Crear uno por AZ para redundancia
- NAT Instance: Auto Scaling Group multi-AZ + script de failover

Puntos Clave

  • NAT Gateway es managed, NAT Instance requiere administración
  • NAT Gateway no tiene AZ failover automático (crear uno por AZ)
  • Instancias privadas apuntan a NAT en route table (0.0.0.0/0 -> nat-xxx)
  • NAT no permite conexiones entrantes desde internet
  • Para multi-AZ, necesitas un NAT Gateway por AZ

NACL vs Security Groups

AWS ofrece dos niveles de seguridad de red: NACL (Network Access Control List) a nivel de subnet y Security Groups a nivel de instancia.

Network ACL:
- Nivel de subnet (primera línea de defensa)
- Stateless: Reglas de entrada y salida evaluadas independientemente
- Soporta reglas ALLOW y DENY
- Reglas evaluadas en orden numérico (menor primero)
- Cada subnet debe asociarse a un NACL
- Default NACL permite todo entrada/salida
- Custom NACL deniega todo por defecto

Security Groups:
- Nivel de instancia/ENI (segunda línea de defensa)
- Stateful: Si permites entrada, salida es automática
- Solo reglas ALLOW (no hay DENY explícito)
- Todas las reglas evaluadas (no hay orden)
- Default: todo entrada denegado, todo salida permitido

Cuándo usar:
- NACL: Bloquear IPs específicas, reglas a nivel de subnet
- SG: Control granular por instancia, más común y flexible

Puntos Clave

  • NACL es stateless, Security Group es stateful
  • NACL puede DENY explícitamente, SG solo ALLOW
  • Un recurso puede tener múltiples SG, pero solo un NACL (via subnet)
  • NACL reglas numeradas 1-32766, usar incrementos de 100
  • Ephemeral ports (1024-65535) deben permitirse en NACL outbound

VPC Peering

VPC Peering permite conectar dos VPCs de forma privada usando la red de AWS. Las instancias se comportan como si estuvieran en la misma red.

Características:
- Conexión entre dos VPCs (misma cuenta o cross-account)
- Puede ser inter-region (VPC Peering cross-region)
- No transitivo: Si A↔B y B↔C, A no puede alcanzar C directamente
- CIDRs de las VPCs no deben solaparse
- Debe actualizar route tables en ambas VPCs
- Puede referenciar Security Groups de la VPC peer (misma región)

Limitaciones:
- No soporta edge-to-edge routing (no puedes acceder a IGW, VGW, etc. de VPC peer)
- Máximo 125 peering connections por VPC
- No transitivo (usa Transit Gateway para topologías complejas)

Casos de uso:
- Compartir recursos entre VPCs (misma región o cross-region)
- Conectar VPCs de diferentes cuentas AWS
- Separación de ambientes (dev, prod) en diferentes VPCs

Puntos Clave

  • VPC Peering es 1-a-1, no transitivo
  • Transit Gateway es mejor para topologías hub-and-spoke
  • No hay cargo de transferencia de datos intra-región
  • Cross-region peering tiene cargo de transferencia
  • Debe aprobar peering connection en ambas VPCs

VPC Endpoints

VPC Endpoints permiten conectarte de forma privada a servicios de AWS sin usar Internet Gateway, NAT, VPN o Direct Connect.

Tipos de endpoints:

Interface Endpoint (powered by PrivateLink):
- Elastic Network Interface (ENI) con IP privada
- Soporta la mayoría de servicios AWS
- Costo por hora + por GB procesado
- Requiere Security Group
- Se crea en subnet específica
- Puede ser multi-AZ (crear en cada AZ)

Gateway Endpoint:
- Gateway en route table (no es ENI)
- Solo para S3 y DynamoDB
- GRATIS (sin cargo adicional)
- No requiere Security Group (usa políticas de endpoint)
- Nivel de VPC (no subnet específica)
- Alta disponibilidad por defecto

Ventajas:
- Tráfico no sale de red AWS (más seguro)
- Menor latencia
- No requiere configuración de internet
- Gateway endpoints son gratuitos

Puntos Clave

  • Gateway Endpoint: solo S3 y DynamoDB, gratis
  • Interface Endpoint: casi todos los servicios, tiene costo
  • VPC Endpoints eliminan necesidad de NAT Gateway para servicios AWS
  • Usa endpoint policies para controlar acceso
  • PrivateLink permite acceso privado a servicios de terceros

VPC Flow Logs

VPC Flow Logs captura información sobre el tráfico IP que entra y sale de las interfaces de red en tu VPC.

Niveles de captura:
- VPC: Captura todo el tráfico de la VPC
- Subnet: Captura tráfico de todas las ENI en la subnet
- ENI: Captura tráfico de interfaz específica

Destinos:
- CloudWatch Logs: Análisis en tiempo real, alarmas
- S3: Almacenamiento a largo plazo, análisis con Athena
- Kinesis Data Firehose: Streaming a destinos externos

Información capturada:
- Source/Destination IP y puerto
- Protocol y acción (ACCEPT/REJECT)
- Número de bytes y paquetes
- Timestamp

Limitaciones:
- No captura todo (ej: DHCP, metadata 169.254.169.254, DNS de Amazon)
- Puede tomar varios minutos en aparecer
- No afecta rendimiento de red

Puntos Clave

  • Flow Logs ayudan con troubleshooting de conectividad
  • Pueden identificar tráfico rechazado por Security Groups/NACL
  • No son real-time (pueden tener delay)
  • Útil para cumplimiento y auditoría de seguridad
  • Athena puede consultar logs almacenados en S3