Saltar al contenido principal

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:

TipovCPURAMBaseline CPUPrecio/h (us-east-1)
t3.nano20.5 GiB5%$0.0052
t3.micro21 GiB10%$0.0104
t3.small22 GiB20%$0.0208
t3.medium24 GiB20%$0.0416
t3.large28 GiB30%$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:

TipovCPURAMPrecio/h
m5.large28 GiB$0.096
m5.xlarge416 GiB$0.192
m5.2xlarge832 GiB$0.384
m6i.large28 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:

TipovCPURAMPrecio/h
c5.large24 GiB$0.085
c5.xlarge48 GiB$0.170
c6i.2xlarge816 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:

TipovCPURAMPrecio/h
r5.large216 GiB$0.126
r5.xlarge432 GiB$0.252
r5.2xlarge864 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​

SufijoSignificado
(nada)Intel
aAMD (a menudo más barato)
gAWS Graviton (ARM, económico)
iIntel última generación
dAlmacenamiento NVMe local
nRed mejorada

Ejemplos:

  • m5.large = Intel
  • m5a.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​

FamiliaCaracterísticaCaso de Uso
TBurstableDev, sitios variables
MEquilibradoAplicaciones generales
CCPU fuerteCálculo, codificación
RRAM fuerteBDD, cache
I/DAlmacenamiento fuerteBig Data
P/GGPUML, gráficos

Quiz de Validación​

  1. ¿Qué significa "t3.large"?
  2. ¿Qué familia para una base de datos en memoria?
  3. ¿Qué es el "burst" en la familia T?
  4. ¿Qué sufijo indica un procesador AMD?
  5. ¿Por qué elegir Graviton?
  6. ¿Con qué tamaño comenzar para un nuevo proyecto?

Próxima sección: Autenticación y Pares de Claves