Conceptos Fundamentales de VPC
¿Qué es una VPC?
Una VPC (Virtual Private Cloud) es su red privada virtual en AWS. Es un espacio de red aislado donde usted despliega sus recursos de AWS.
┌─────────────────────────────────────────────────────────────┐
│ AMAZON VPC │
├─────────────────────────────────────────────────────────────┤
│ │
│ "Su centro de datos virtual en la nube" │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ VPC (10.0.0.0/16) │ │
│ │ │ │
│ │ Su espacio de red privado y aislado │ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ Subnet 1 │ │ Subnet 2 │ │ │
│ │ │ 10.0.1.0/24 │ │ 10.0.2.0/24 │ │ │
│ │ │ │ │ │ │ │
│ │ │ ┌─────┐ │ │ ┌─────┐ │ │ │
│ │ │ │ EC2 │ │ │ │ RDS │ │ │ │
│ │ │ └─────┘ │ │ └─────┘ │ │ │
│ │ │ │ │ │ │ │
│ │ └─────────────┘ └─────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ Características: │
│ • Aislado de otros VPC y de Internet (por defecto) │
│ • Usted controla el rango de direcciones IP │
│ • Usted define las reglas de seguridad │
│ • Regional (se extiende por todas las AZ de la región) │
│ │
└─────────────────────────────────────────────────────────────┘
Analogía: VPC = Edificio de Oficinas
┌─────────────────────────────────────────────────────────────┐
│ ANALOGÍA: EDIFICIO DE OFICINAS │
├─────────────────────────────────────────────────────────────┤
│ │
│ MUNDO REAL AWS │
│ ────────── ─── │
│ │
│ 🏢 Edificio = VPC │
│ (su espacio privado) (su red privada) │
│ │
│ 🚪 Pisos = Subnets │
│ (divisiones internas) (subredes) │
│ │
│ 🔐 Recepción/Seguridad = Internet Gateway │
│ (entrada controlada) (acceso a Internet) │
│ │
│ 📋 Tarjeta de acceso = Security Group │
│ (quién puede entrar dónde) (reglas de firewall) │
│ │
│ 🗺️ Plan de evacuación = Route Table │
│ (rutas de circulación) (enrutamiento de tráfico) │
│ │
│ 🏠 Oficinas = Instancias EC2 │
│ (espacios de trabajo) (sus servidores) │
│ │
└─────────────────────────────────────────────────────────────┘
Componentes de una VPC
Vista General
┌─────────────────────────────────────────────────────────────┐
│ COMPONENTES VPC │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ VPC │ │
│ │ (contenedor) │ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ SUBNET │ │ SUBNET │ ← Subredes │ │
│ │ │ (pública) │ │ (privada) │ │ │
│ │ └──────┬──────┘ └──────┬──────┘ │ │
│ │ │ │ │ │
│ │ └────────┬───────┘ │ │
│ │ │ │ │
│ │ ┌────────┴────────┐ │ │
│ │ │ ROUTE TABLE │ ← A dónde va el tráfico│ │
│ │ └────────┬────────┘ │ │
│ │ │ │ │
│ │ ┌───────────────┼───────────────┐ │ │
│ │ │ │ │ │ │
│ │ ▼ ▼ ▼ │ │
│ │ ┌─────┐ ┌─────────┐ ┌──────────┐ │ │
│ │ │ IGW │ │ NAT │ │ VPC │ │ │
│ │ │ │ │ Gateway │ │ Peering │ │ │
│ │ └─────┘ └─────────┘ └──────────┘ │ │
│ │ Internet Salida para Otro VPC │ │
│ │ subnet privado │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
Tabla de Componentes
| Componente | Descripción | Obligatorio |
|---|---|---|
| VPC | Red virtual aislada | Sí |
| Subnet | Subred en una AZ | Sí (al menos 1) |
| Route Table | Reglas de enrutamiento | Sí (creada auto) |
| Internet Gateway | Acceso a Internet | No (si es privado) |
| NAT Gateway | Salida a Internet para privado | No |
| Security Group | Firewall a nivel de instancia | Sí |
| NACL | Firewall a nivel de subnet | Sí (por defecto) |
VPC por Defecto vs VPC Personalizado
┌─────────────────────────────────────────────────────────────┐
│ VPC POR DEFECTO vs VPC PERSONALIZADO │
├─────────────────────────────────────────────────────────────┤
│ │
│ VPC POR DEFECTO VPC PERSONALIZADO │
│ ────────────── ──────────────── │
│ │
│ • Creado automáticamente • Usted lo crea │
│ • 1 por región • Tantos como desee │
│ • CIDR: 172.31.0.0/16 • CIDR: usted elige │
│ • Subnets públicas auto • Usted configura todo │
│ • IGW adjunto • Usted adjunta el IGW │
│ │
│ Cuándo usar: Cuándo usar: │
│ ✅ Pruebas rápidas ✅ Producción │
│ ✅ Aprendizaje ✅ Seguridad reforzada │
│ ❌ Producción ✅ Multi-tier │
│ │
│ ⚠️ En producción, SIEMPRE use una VPC personalizada │
│ para un mejor control de seguridad │
│ │
└─────────────────────────────────────────────────────────────┘
Rango de Direcciones IP (CIDR)
¿Qué es CIDR?
┌─────────────────────────────────────────────────────────────┐
│ NOTACIÓN CIDR │
├─────────────────────────────────────────────────────────────┤
│ │
│ CIDR = Classless Inter-Domain Routing │
│ │
│ Formato: DIRECCIÓN_RED / PREFIJO │
│ │
│ Ejemplo: 10.0.0.0/16 │
│ │ │ │
│ │ └── 16 bits fijos (red) │
│ │ 16 bits variables (hosts) │
│ │ │
│ └── Dirección de inicio de la red │
│ │
│ Cálculo del número de direcciones: │
│ Fórmula: 2^(32 - prefijo) │
│ │
│ /16 = 2^(32-16) = 2^16 = 65,536 direcciones │
│ /24 = 2^(32-24) = 2^8 = 256 direcciones │
│ /28 = 2^(32-28) = 2^4 = 16 direcciones │
│ │
└─────────────────────────────────────────────────────────────┘
Rangos Privados (RFC 1918)
┌─────────────────────────────────────────────────────────────┐
│ RANGOS IP PRIVADOS (RFC 1918) │
├─────────────────────────────────────────────────────────────┤
│ │
│ Estos rangos NO son enrutados en Internet │
│ → Úselos para sus VPC │
│ │
│ CLASE A: 10.0.0.0/8 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 10.0.0.0 → 10.255.255.255 │ │
│ │ 16,777,216 direcciones │ │
│ │ Uso: Grandes empresas │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ CLASE B: 172.16.0.0/12 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 172.16.0.0 → 172.31.255.255 │ │
│ │ 1,048,576 direcciones │ │
│ │ Uso: Empresas medianas │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ CLASE C: 192.168.0.0/16 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 192.168.0.0 → 192.168.255.255 │ │
│ │ 65,536 direcciones │ │
│ │ Uso: Redes domésticas, pequeñas empresas │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ RECOMENDACIÓN PARA AWS: │
│ Use 10.0.0.0/16 para comenzar (65,536 direcciones) │
│ │
└─────────────────────────────────────────────────────────────┘
Tamaños de VPC en AWS
| CIDR | Direcciones | Uso Recomendado |
|---|---|---|
| /16 | 65,536 | VPC estándar, recomendado |
| /20 | 4,096 | VPC mediano |
| /24 | 256 | VPC pequeño, pruebas |
| /28 | 16 | Mínimo AWS |
Limites AWS
- CIDR mínimo: /28 (16 direcciones)
- CIDR máximo: /16 (65,536 direcciones)
- Una VPC puede tener varios CIDR (hasta 5)
Direcciones Reservadas por AWS
┌─────────────────────────────────────────────────────────────┐
│ DIRECCIONES RESERVADAS POR SUBNET │
├─────────────────────────────────────────────────────────────┤
│ │
│ Para cada subnet, AWS reserva 5 direcciones: │
│ │
│ Ejemplo: Subnet 10.0.1.0/24 (256 direcciones) │
│ │
│ 10.0.1.0 → Dirección de red │
│ 10.0.1.1 → Reservada AWS (router VPC) │
│ 10.0.1.2 → Reservada AWS (DNS) │
│ 10.0.1.3 → Reservada AWS (uso futuro) │
│ 10.0.1.255 → Broadcast (no soportado pero reservado) │
│ │
│ Direcciones utilizables: 256 - 5 = 251 direcciones │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Subnet /24: 251 direcciones utilizables │ │
│ │ Subnet /25: 123 direcciones utilizables │ │
│ │ Subnet /26: 59 direcciones utilizables │ │
│ │ Subnet /27: 27 direcciones utilizables │ │
│ │ Subnet /28: 11 direcciones utilizables │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
Arquitectura Típica de VPC
┌─────────────────────────────────────────────────────────────────────────┐
│ ARQUITECTURA VPC 3-TIERS │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ INTERNET │
│ │ │
│ ▼ │
│ ┌───────────────┐ │
│ │Internet Gateway│ │
│ └───────┬───────┘ │
│ │ │
│ ┌─────────────────────────────┼─────────────────────────────┐ │
│ │ VPC │(10.0.0.0/16) │ │
│ │ │ │ │
│ │ ┌─────────────────────────┴─────────────────────────┐ │ │
│ │ │ SUBNETS PÚBLICOS │ │ │
│ │ │ │ │ │
│ │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │
│ │ │ │ Public 1a │ │ Public 1b │ │ │ │
│ │ │ │ 10.0.1.0/24 │ │ 10.0.2.0/24 │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ [ALB/NAT] │ │ [ALB/NAT] │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ └────────┬────────┘ └────────┬────────┘ │ │ │
│ │ │ │ │ │ │ │
│ │ └───────────┼──────────────────────┼─────────────────┘ │ │
│ │ │ │ │ │
│ │ ┌───────────┼──────────────────────┼─────────────────┐ │ │
│ │ │ │ SUBNETS PRIVADOS (App)│ │ │ │
│ │ │ │ │ │ │ │
│ │ │ ┌────────▼────────┐ ┌────────▼────────┐ │ │ │
│ │ │ │ Private 1a │ │ Private 1b │ │ │ │
│ │ │ │ 10.0.11.0/24 │ │ 10.0.12.0/24 │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ [EC2 App] │ │ [EC2 App] │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ └────────┬────────┘ └────────┬────────┘ │ │ │
│ │ │ │ │ │ │ │
│ │ └───────────┼──────────────────────┼─────────────────┘ │ │
│ │ │ │ │ │
│ │ ┌───────────┼──────────────────────┼─────────────────┐ │ │
│ │ │ │ SUBNETS PRIVADOS (DB) │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ ┌────────▼────────┐ ┌────────▼────────┐ │ │ │
│ │ │ │ Database 1a │ │ Database 1b │ │ │ │
│ │ │ │ 10.0.21.0/24 │ │ 10.0.22.0/24 │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ [RDS] │ │ [RDS Standby] │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ └─────────────────┘ └─────────────────┘ │ │ │
│ │ │ │ │ │
│ │ └────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────┘
Crear una VPC
Vía Consola
1. VPC → Your VPCs → Create VPC
2. Name tag : mon-vpc-prod
3. IPv4 CIDR block : 10.0.0.0/16
4. Tenancy : Default
5. Create VPC
Vía AWS CLI
# Crear el VPC
aws ec2 create-vpc \
--cidr-block 10.0.0.0/16 \
--tag-specifications 'ResourceType=vpc,Tags=[{Key=Name,Value=mon-vpc-prod}]'
# Activar nombres DNS (recomendado)
aws ec2 modify-vpc-attribute \
--vpc-id vpc-xxx \
--enable-dns-hostnames '{"Value":true}'
Resumen
| Concepto | Descripción |
|---|---|
| VPC | Red privada virtual aislada |
| CIDR | Notación para definir el rango IP |
| Subnet | Subdivisión del VPC en una AZ |
| /16 | Tamaño recomendado (65,536 IPs) |
| RFC 1918 | Rangos IP privados a utilizar |
| 5 IPs reservadas | AWS reserva 5 IPs por subnet |
Quiz de Validación
- ¿Qué es una VPC?
- ¿Cuántas direcciones IP hay en un /24?
- ¿Por qué AWS reserva 5 direcciones por subnet?
- ¿Qué rango IP usar para una VPC?
- ¿Cuál es la diferencia entre VPC por defecto y personalizado?
Próxima sección: Subnets y Enrutamiento