🌐
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
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
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
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
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
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
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