Tipos de Instancias EC2
Comprender los Tipos de Instancias
El tipo de instancia determina los recursos de hardware (CPU, RAM, red, almacenamiento) disponibles para su servidor virtual. ¡AWS ofrece más de 500 tipos de instancias!
┌─────────────────────────────────────────────────────────────┐
│ NOMENCLATURA DE INSTANCIAS │
├─────────────────────────────────────────────────────────────┤
│ │
│ t3.large │
│ │ │ │
│ │ └── Tamaño (nano, micro, small, │
│ │ medium, large, xlarge, 2xlarge) │
│ │ │
│ └── Familia + Generación │
│ (t=burstable, 3=3ra generación) │
│ │
│ Ejemplos: │
│ • t3.micro = Burstable, 3ra gen, muy pequeño │
│ • m5.xlarge = Propósito general, 5ta gen, extra grande │
│ • c6i.2xlarge = Optimizada para cómputo, 6ta gen Intel │
│ • r5.4xlarge = Optimizada para memoria, 5ta gen │
│ │
└─────────────────────────────────────────────────────────────┘
Las Familias de Instancias
Visión General
┌─────────────────────────────────────────────────────────────┐
│ FAMILIAS DE INSTANCIAS EC2 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 🎯 GENERAL PURPOSE (T, M) │
│ Equilibrio CPU/RAM, uso general │
│ │
│ ⚡ COMPUTE OPTIMIZED (C) │
│ Más CPU, cálculo intensivo │
│ │
│ 🧠 MEMORY OPTIMIZED (R, X) │
│ Más RAM, bases de datos │
│ │
│ 💾 STORAGE OPTIMIZED (I, D, H) │
│ I/O alto, big data │
│ │
│ 🎮 ACCELERATED COMPUTING (P, G, Inf) │
│ GPU, machine learning │
│ │
└─────────────────────────────────────────────────────────────┘
Familia T - Burstable (Uso General)
┌─────────────────────────────────────────────────────────────┐
│ FAMILIA T (Burstable) │
├─────────────────────────────────────────────────────────────┤
│ │
│ Características: │
│ • Capacidad de "burst" más allá del baseline │
│ • Acumula créditos de CPU cuando está inactiva │
│ • Económica para cargas variables │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ CPU Usage │ │
│ │ │ │
│ │ 100%| ████ │ │
│ │ | ████ Burst (usa créditos) │ │
│ │ 40%|──────────████─────────────── Baseline │ │
│ │ | ████ ████ │ │
│ │ 0%| ████ ████ │ │
│ │ └──────────────────────────────────► Tiempo │ │
│ │ Acumula Usa Acumula │ │
│ │ créditos créditos créditos │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ Casos de uso: │
│ ✅ Servidores web con tráfico variable │
│ ✅ Entornos de desarrollo │
│ ✅ Pequeñas bases de datos │
│ ✅ Microservicios ligeros │
│ │
│ ❌ Evitar si la carga de CPU constante > baseline │
│ │
└─────────────────────────────────────────────────────────────┘
Tipos T Comunes:
| Tipo | vCPU | RAM | Baseline CPU | Precio/h (us-east-1) |
|---|---|---|---|---|
| t3.nano | 2 | 0.5 GiB | 5% | $0.0052 |
| t3.micro | 2 | 1 GiB | 10% | $0.0104 |
| t3.small | 2 | 2 GiB | 20% | $0.0208 |
| t3.medium | 2 | 4 GiB | 20% | $0.0416 |
| t3.large | 2 | 8 GiB | 30% | $0.0832 |
Familia M - Propósito General
┌─────────────────────────────────────────────────────────────┐
│ FAMILIA M (General Purpose) │
├─────────────────────────────────────────────────────────────┤
│ │
│ Características: │
│ • Equilibrio CPU/RAM │
│ • Sin burst (rendimiento constante) │
│ • Workloads estables │
│ │
│ Ratio: ~4 GiB RAM por vCPU │
│ │
│ Casos de uso: │
│ ✅ Aplicaciones empresariales │
│ ✅ Servidores de aplicaciones │
│ ✅ Backends empresariales │
│ ✅ Servidores de juegos │
│ ✅ Bases de datos medianas │
│ │
└─────────────────────────────────────────────────────────────┘
Tipos M Comunes:
| Tipo | vCPU | RAM | Precio/h |
|---|---|---|---|
| m5.large | 2 | 8 GiB | $0.096 |
| m5.xlarge | 4 | 16 GiB | $0.192 |
| m5.2xlarge | 8 | 32 GiB | $0.384 |
| m6i.large | 2 | 8 GiB | $0.096 |
Familia C - Optimizada para Cómputo
┌─────────────────────────────────────────────────────────────┐
│ FAMILIA C (Compute Optimized) │
├─────────────────────────────────────────────────────────────┤
│ │
│ Características: │
│ • Ratio CPU/RAM alto │
│ • Procesadores de alta frecuencia │
│ • Ideal para cálculo intensivo │
│ │
│ Ratio: ~2 GiB RAM por vCPU │
│ │
│ Casos de uso: │
│ ✅ Procesamiento por lotes (batch) │
│ ✅ Codificación de video │
│ ✅ Servidores de juegos de alto rendimiento │
│ ✅ Modelado científico │
│ ✅ Machine learning (inferencia) │
│ │
└─────────────────────────────────────────────────────────────┘
Tipos C Comunes:
| Tipo | vCPU | RAM | Precio/h |
|---|---|---|---|
| c5.large | 2 | 4 GiB | $0.085 |
| c5.xlarge | 4 | 8 GiB | $0.170 |
| c6i.2xlarge | 8 | 16 GiB | $0.340 |
Familia R - Optimizada para Memoria
┌─────────────────────────────────────────────────────────────┐
│ FAMILIA R (Memory Optimized) │
├─────────────────────────────────────────────────────────────┤
│ │
│ Características: │
│ • Mucha RAM │
│ • Ideal para datos en memoria │
│ • Bases de datos de alto rendimiento │
│ │
│ Ratio: ~8 GiB RAM por vCPU │
│ │
│ Casos de uso: │
│ ✅ Bases de datos relacionales │
│ ✅ Cache distribuido (Redis, Memcached) │
│ ✅ Análisis en tiempo real │
│ ✅ Apache Spark │
│ ✅ SAP HANA │
│ │
└─────────────────────────────────────────────────────────────┘
Tipos R Comunes:
| Tipo | vCPU | RAM | Precio/h |
|---|---|---|---|
| r5.large | 2 | 16 GiB | $0.126 |
| r5.xlarge | 4 | 32 GiB | $0.252 |
| r5.2xlarge | 8 | 64 GiB | $0.504 |
Tabla de Selección Rápida
┌─────────────────────────────────────────────────────────────┐
│ GUÍA DE SELECCIÓN DE INSTANCIA │
├─────────────────────────────────────────────────────────────┤
│ │
│ Su necesidad → Familia recomendada │
│ ────────────────────────────────────────────────────── │
│ │
│ 💡 Presupuesto ajustado, carga variable → T3 (burstable) │
│ 🏢 Aplicación estándar → M5/M6i │
│ ⚡ Cómputo CPU intensivo → C5/C6i │
│ 🧠 Base de datos, cache → R5/R6i │
│ 💾 Big Data, data warehouse → I3/D2 │
│ 🎮 Machine Learning, GPU → P4/G4 │
│ │
│ Tamaño inicial recomendado: │
│ • Dev/Test : .micro o .small │
│ • Producción : .large o .xlarge │
│ • Escale si es necesario │
│ │
└─────────────────────────────────────────────────────────────┘
Procesadores y Generaciones
Sufijos de Generación
| Sufijo | Significado |
|---|---|
| (nada) | Intel |
| a | AMD (a menudo más barato) |
| g | AWS Graviton (ARM, económico) |
| i | Intel última generación |
| d | Almacenamiento NVMe local |
| n | Red mejorada |
Ejemplos:
m5.large= Intelm5a.large= AMD (10-20% más barato)m6g.large= Graviton (40% más barato, ARM)m5d.large= Con almacenamiento NVMe local
AWS Graviton
┌─────────────────────────────────────────────────────────────┐
│ AWS GRAVITON │
├─────────────────────────────────────────────────────────────┤
│ │
│ Procesadores ARM diseñados por AWS │
│ │
│ Ventajas: │
│ ✅ Hasta 40% más barato que Intel │
│ ✅ Mejor relación rendimiento/precio │
│ ✅ Eficiencia energética │
│ │
│ Limitaciones: │
│ ⚠️ Las aplicaciones deben soportar ARM │
│ ⚠️ Algunos softwares no son compatibles │
│ │
│ Compatible: │
│ ✅ Linux, contenedores, Node.js, Python, Java │
│ ❌ Windows, algunos softwares legacy │
│ │
└─────────────────────────────────────────────────────────────┘
Ejercicio Práctico: Elegir el Tipo Correcto
Escenario 1: Sitio Web WordPress
Contexto:
- Sitio vitrina PyME
- 500 visitantes/día
- Picos ocasionales (promociones)
- Presupuesto limitado
Análisis:
- Carga variable → Burstable
- Bajo tráfico → Tipo pequeño
- Presupuesto → Económico
✅ Recomendación: t3.micro o t3.small
Justificación: Los créditos burst cubren los picos,
costo mínimo para carga baja
Escenario 2: Base de Datos PostgreSQL
Contexto:
- Aplicación empresarial
- 50 usuarios simultáneos
- Base de 100 GB
- Consultas complejas
Análisis:
- Necesidad de RAM para cache → Memory
- Carga constante → Sin burst
- Producción → Rendimiento estable
✅ Recomendación: r5.large o r5.xlarge
Justificación: 16-32 GB RAM para cache PostgreSQL,
rendimiento constante
Escenario 3: Servidor de Juego Minecraft
Contexto:
- 20 jugadores máximo
- Mundo con mods
- Alta reactividad
Análisis:
- CPU intensivo → Compute
- Mods = RAM → Medio
- Reactividad → Alta frecuencia de CPU
✅ Recomendación: c5.large o m5.large
Justificación: Buen equilibrio CPU/RAM,
alta frecuencia de CPU para la reactividad
Buenas Prácticas
1. Comenzar Pequeño
DEV → TEST → STAGING → PROD
t3.micro t3.small t3.medium m5.large
Monitoree las métricas y luego ajuste.
2. Usar las Métricas
CloudWatch Metrics a monitorear:
CPU Utilization
├── < 20% constantemente → Demasiado grande, reducir
├── 40-70% → Óptimo
└── > 80% constantemente → Demasiado pequeño, aumentar
Memory Utilization
├── < 50% → Tal vez demasiada RAM
└── > 80% → Riesgo de swap, aumentar
3. Considere Graviton
Si su aplicación es:
✅ Linux
✅ Contenerizada o interpretada (Python, Node, Java)
✅ Open source
→ ¡Pruebe las instancias Graviton (g) para ahorrar!
Resumen
| Familia | Característica | Caso de Uso |
|---|---|---|
| T | Burstable | Dev, sitios variables |
| M | Equilibrado | Aplicaciones generales |
| C | CPU fuerte | Cálculo, codificación |
| R | RAM fuerte | BDD, cache |
| I/D | Almacenamiento fuerte | Big Data |
| P/G | GPU | ML, gráficos |
Quiz de Validación
- ¿Qué significa "t3.large"?
- ¿Qué familia para una base de datos en memoria?
- ¿Qué es el "burst" en la familia T?
- ¿Qué sufijo indica un procesador AMD?
- ¿Por qué elegir Graviton?
- ¿Con qué tamaño comenzar para un nuevo proyecto?
Próxima sección: Autenticación y Pares de Claves