Introducción a Amazon EC2
¿Qué es Amazon EC2?
Amazon EC2 (Elastic Compute Cloud) es el servicio de cómputo fundamental de AWS. Le permite alquilar servidores virtuales (llamados instancias) en la nube.
┌─────────────────────────────────────────────────────────────┐
│ AMAZON EC2 │
├─────────────────────────────────────────────────────────────┤
│ │
│ "Servidores virtuales bajo demanda" │
│ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Instancia EC2 │ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │ CPU │ │ RAM │ │ Almacen. │ │ │
│ │ │ (vCPU) │ │ (GiB) │ │ (EBS) │ │ │
│ │ └──────────┘ └──────────┘ └──────────┘ │ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │ OS │ │ Red │ │ Seguridad│ │ │
│ │ │Linux/Win │ │ (IP) │ │ (SG) │ │ │
│ │ └──────────┘ └──────────┘ └──────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────┘ │
│ │
│ Usted controla: │
│ • El tipo/tamaño de la instancia │
│ • El sistema operativo │
│ • El software instalado │
│ • La configuración de red y seguridad │
└─────────────────────────────────────────────────────────────┘
Analogía: Alquiler de Apartamento
┌────────────────────────────────────────────────────────────────┐
│ ALQUILER TRADICIONAL vs AMAZON EC2 │
├────────────────────────────────────────────────────────────────┤
│ │
│ 🏠 Apartamento 💻 Instancia EC2 │
│ ───────────── ───────────── │
│ Tamaño (m²) Tipo de instancia (t2, m5) │
│ Número de habitaciones vCPU y RAM │
│ Ubicación (ciudad) Región AWS │
│ Contrato (mínimo 1 año) Bajo demanda (por segundo) │
│ Muebles opcionales AMI (SO preinstalado) │
│ Cerradura/Alarma Security Group │
│ │
│ 💰 Renta mensual fija 💰 Pago por uso │
│ 📋 Preaviso 3 meses 🔄 Parada inmediata posible │
└────────────────────────────────────────────────────────────────┘
Casos de Uso de EC2
¿Cuándo Usar EC2?
| Caso de Uso | Descripción | Ejemplo |
|---|---|---|
| Servidores web | Hospedar sitios y aplicaciones | Apache, Nginx |
| Aplicaciones empresariales | ERP, CRM, software interno | SAP, Oracle |
| Bases de datos | BDD autogestionadas | MySQL, PostgreSQL |
| Desarrollo/Pruebas | Entornos temporales | CI/CD, QA |
| Cómputo intensivo | Procesamiento de datos | Analytics, ML |
| Gaming | Servidores de juegos | Minecraft, game servers |
EC2 vs Otros Servicios
┌─────────────────────────────────────────────────────────────┐
│ ELEGIR EL SERVICIO DE CÓMPUTO CORRECTO │
├─────────────────────────────────────────────────────────────┤
│ │
│ EC2 Lambda ECS/EKS │
│ ┌────────────┐ ┌────────────┐ ┌────────────┐│
│ │ Control │ │ Serverless │ │ Contenedores││
│ │ total │ │ Eventos │ │ Docker ││
│ │ │ │ │ │ ││
│ │ SO completo│ │ Solo código│ │ Imágenes ││
│ │ 24/7 │ │ Bajo deman.│ │ Orquestado ││
│ │ │ │ │ │ ││
│ └────────────┘ └────────────┘ └────────────┘│
│ │
│ Use EC2 si: │
│ ✅ Necesita un SO completo │
│ ✅ Aplicaciones de larga duración (24/7) │
│ ✅ Software que no puede ser contenerizado │
│ ✅ Control total sobre la configuración │
│ │
│ NO use EC2 si: │
│ ❌ Tareas cortas y por eventos → Lambda │
│ ❌ Aplicaciones contenerizadas → ECS/EKS │
│ ❌ Sitios estáticos → S3 + CloudFront │
└─────────────────────────────────────────────────────────────┘
Ciclo de Vida de una Instancia EC2
┌─────────────────────────────────────────────────────────────┐
│ CICLO DE VIDA EC2 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ │
│ │ PENDING │ ← Lanzamiento │
│ └────┬────┘ │
│ │ │
│ ▼ │
│ ┌─────────┐ ┌─────────┐ │
│ │STOPPING │◄──────►│ RUNNING │ ← En ejecución │
│ └────┬────┘ └────┬────┘ (facturación activa) │
│ │ │ │
│ ▼ │ │
│ ┌─────────┐ │ │
│ │ STOPPED │◄────────────┘ │
│ └────┬────┘ ← Detenida (sin facturación de cómputo) │
│ │ │
│ │ Terminar │
│ ▼ │
│ ┌─────────────┐ │
│ │ TERMINATING │ │
│ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ TERMINATED │ ← Eliminada definitivamente │
│ └─────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
Estados y Facturación
| Estado | Descripción | Facturación |
|---|---|---|
| Pending | Arrancando | No |
| Running | En ejecución | ✅ Sí |
| Stopping | Deteniéndose | Sí |
| Stopped | Detenida | No (pero EBS sí) |
| Terminating | Eliminándose | No |
| Terminated | Eliminada | No |
Atención
Una instancia Stopped no factura el cómputo (CPU/RAM), ¡pero el almacenamiento EBS sigue siendo facturado!
Modelos de Precios de EC2
1. On-Demand (Bajo Demanda)
┌─────────────────────────────────────────────────────────────┐
│ ON-DEMAND │
├─────────────────────────────────────────────────────────────┤
│ │
│ 💰 Pago: Por hora o por segundo │
│ 📋 Compromiso: Ninguno │
│ ⚡ Flexibilidad: Máxima │
│ 💲 Precio: El más alto │
│ │
│ Ideal para: │
│ • Desarrollo y pruebas │
│ • Cargas impredecibles │
│ • Aplicaciones de corta duración │
│ │
│ Ejemplo: t3.micro = ~$0.0104/hora (us-east-1) │
└─────────────────────────────────────────────────────────────┘
2. Reserved Instances (Instancias Reservadas)
┌─────────────────────────────────────────────────────────────┐
│ RESERVED INSTANCES │
├─────────────────────────────────────────────────────────────┤
│ │
│ 💰 Pago: Compromiso de 1 o 3 años │
│ 📋 Compromiso: Alto │
│ ⚡ Flexibilidad: Limitada │
│ 💲 Precio: Hasta 72% de descuento │
│ │
│ Tipos: │
│ • Standard: Mejor precio, menos flexible │
│ • Convertible: Precio medio, puede cambiar de tipo │
│ │
│ Ideal para: │
│ • Cargas estables y predecibles │
│ • Aplicaciones en producción 24/7 │
│ │
└─────────────────────────────────────────────────────────────┘
3. Spot Instances
┌─────────────────────────────────────────────────────────────┐
│ SPOT INSTANCES │
├─────────────────────────────────────────────────────────────┤
│ │
│ 💰 Pago: Subasta sobre capacidad no utilizada │
│ 📋 Compromiso: Ninguno │
│ ⚡ Flexibilidad: Variable (posible interrupción) │
│ 💲 Precio: ¡Hasta 90% de descuento! │
│ │
│ ⚠️ ATENCIÓN: AWS puede recuperar la instancia │
│ con 2 minutos de aviso. │
│ │
│ Ideal para: │
│ • Procesamiento por lotes │
│ • Cargas tolerantes a interrupciones │
│ • CI/CD, pruebas │
│ │
└─────────────────────────────────────────────────────────────┘
Comparación de Precios (Ejemplo t3.large, us-east-1)
On-Demand ████████████████████████████████ $0.0832/h (100%)
Reserved 1yr █████████████████████ $0.0528/h (63%)
Reserved 3yr ███████████████ $0.0333/h (40%)
Spot ████████ $0.0250/h (30%)
Componentes de una Instancia EC2
┌─────────────────────────────────────────────────────────────┐
│ COMPONENTES DE UNA INSTANCIA EC2 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ INSTANCIA EC2 │ │
│ │ │ │
│ │ ┌────────────────────────────────────────────────┐ │ │
│ │ │ 1. AMI (Amazon Machine Image) │ │ │
│ │ │ Sistema operativo + software │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌────────────────────────────────────────────────┐ │ │
│ │ │ 2. Tipo de Instancia │ │ │
│ │ │ CPU (vCPU) + RAM (GiB) │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌────────────────────────────────────────────────┐ │ │
│ │ │ 3. Almacenamiento (EBS o Instance Store) │ │ │
│ │ │ Discos adjuntos │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌────────────────────────────────────────────────┐ │ │
│ │ │ 4. Configuración de Red │ │ │
│ │ │ VPC, Subnet, IP pública/privada │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌────────────────────────────────────────────────┐ │ │
│ │ │ 5. Security Group │ │ │
│ │ │ Reglas de firewall │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌────────────────────────────────────────────────┐ │ │
│ │ │ 6. Par de Claves │ │ │
│ │ │ Autenticación SSH │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
Metadatos de Instancia
Cada instancia EC2 tiene acceso a sus propios metadatos a través de una URL especial:
http://169.254.169.254/latest/meta-data/
Información Disponible
| Endpoint | Información |
|---|---|
/instance-id | ID de la instancia |
/instance-type | Tipo (t3.micro, etc.) |
/ami-id | ID de la AMI |
/local-ipv4 | IP privada |
/public-ipv4 | IP pública |
/placement/availability-zone | Zona de disponibilidad |
Ejemplo de Uso
# Desde la instancia EC2
curl http://169.254.169.254/latest/meta-data/instance-id
# Resultado: i-0123456789abcdef0
curl http://169.254.169.254/latest/meta-data/instance-type
# Resultado: t3.micro
Utilidad
Los metadatos son útiles para:
- Scripts de configuración automática
- Aplicaciones que necesitan conocer su entorno
- Recuperación de credenciales IAM temporales
Resumen
| Concepto | Descripción |
|---|---|
| EC2 | Servicio de máquinas virtuales de AWS |
| Instancia | Un servidor virtual individual |
| AMI | Imagen de sistema (SO + software) |
| Tipo | Configuración CPU/RAM |
| On-Demand | Pago por uso, flexible |
| Reserved | Compromiso a largo plazo, ahorros |
| Spot | Capacidad no utilizada, muy económico pero interrumpible |
Quiz de Validación
- ¿Qué es una instancia EC2?
- ¿Cuál es la diferencia entre los estados "Stopped" y "Terminated"?
- ¿Qué modelo de precios ofrece la mayor flexibilidad?
- ¿Qué modelo ofrece los mayores ahorros con riesgo de interrupción?
- ¿Cuáles son los 6 componentes principales de una instancia EC2?
- ¿Para qué sirven los metadatos de instancia?
Próxima sección: Regiones y Zonas de Disponibilidad