Ilustración de servidor en la nube que explica las familias de instancias EC2 de AWS y la optimización de costos
Tecnología

Cómo elegir el tipo de instancia EC2 de AWS: guía práctica 2026

Daylongs ·
#AWS #EC2 #costos de nube #Graviton #Savings Plans #instancias Spot #infraestructura #DevOps

En corto: casi todas las cargas de trabajo deberían empezar en una instancia de la familia t o m y pasar a c, r o g solo cuando aparece un cuello de botella real. AWS EC2 lista cientos de tipos de instancia, pero en la práctica tocas apenas un puñado de familias en el día a día. No te obsesiones con elegir el tipo perfecto de entrada. Empieza pequeño, mira tus métricas en CloudWatch y muévete hacia el recurso que de verdad se te agota. En mi caso, lanzo todo servicio nuevo en t4g (Graviton), lo observo un mes y después decido.

Después de pagar personalmente varios años de estas facturas, te lo digo claro: los errores caros casi nunca vienen de no conocer las familias. Vienen de elegir un tipo una vez y olvidar que existe. Abajo repaso las letras de familia, cómo elegir según la carga, y las tres palancas que de verdad mueven la factura: Savings Plans, Spot y Graviton.

¿En qué se diferencian las familias? (t, m, c, r, i, g)

Un nombre como m7g.large se lee así: familia (propósito) + generación + g de Graviton (arm) + tamaño. Aprende a leer la letra y ya llevas la mitad.

FamiliaCaráctervCPU:memoriaUso típico
tBurstable, propósito general1:2–1:4Servidores web, APIs, dev/test, servicios chicos con picos
mPropósito general equilibrado1:4Web apps de carga estable, backends medianos
cOptimizada para cómputo1:2Procesos por lotes, servidores de juegos, codificación, APIs de alto tráfico
rOptimizada para memoria1:8Cachés en memoria, bases de datos grandes, Redis/Elasticsearch
xMemoria extra grande1:16+SAP HANA, bases de datos en memoria enormes
iOptimizada para almacenamiento (NVMe)Bases de datos con mucho IO, procesamiento de logs
g / pGPUEntrenamiento/inferencia de ML, transcodificación de video

La relación lo es todo. La familia c te da relativamente más CPU; la r te da más memoria. Elige la familia que se incline hacia el recurso que tu app agota primero. Si ya elegiste proveedor de nube y quieres el panorama AWS vs GCP vs Azure, lo cubrí en la comparación de hosting en la nube; aquí me quedo dentro de AWS.

Burstable (t) vs. rendimiento fijo (m): ¿dónde está la trampa?

La familia t confunde justamente por esa palabra, burstable. Una instancia t corre a una base (digamos 20-40%) de sus vCPUs y acumula el resto como créditos de CPU. Cuando el tráfico sube, quema créditos para acercarse al 100%.

La trampa aparece cuando los créditos se acaban. Si no estás en modo Unlimited, se limita a la base, y se da la escena rara de un CPU al 40% con el servicio arrastrándose. La regla de decisión es simple:

  • El CPU sube y baja como sierra → gana la familia t.
  • El CPU se mantiene arriba del 60% de forma constante → gana la familia m (correr t en modo Unlimited todo el día sale más caro).

Entornos de desarrollo, herramientas internas, blogs y landing pages con tráfico irregular son un caso de libro para t. Intentar sostener una API de pagos siempre ocupada con una instancia t es el error clásico.

¿Qué elijo para mi carga de trabajo?

Así lo mapearía yo. Tómalo como punto de partida y ajusta tras dos semanas de métricas.

Carga de trabajoPrimera opciónPor qué
Servicio web / API nuevot4gBarato, burstable, fácil de migrar
Backend de carga establem7gEquilibrado, rendimiento predecible
Lotes / codificación / servidor de juegosc7gIntensivo en cómputo, importa por núcleo
Caché / búsqueda / BD grander7gMargen de memoria, evita OOM
Runners de CI / renderizadoc (Spot)Tolera interrupciones, muy paralelo
Inferencia de MLg (Spot/horario)Necesita GPU, desperdicio si está siempre prendida
BD de logs / series temporalesiRendimiento de NVMe local

Corre siempre la generación más nueva. m7 suele ganarle a m6 al mismo precio; t4g le gana a t3. Dejar launch templates viejos es la fuga silenciosa número uno. Si estás armando un equipo que necesita entender todo esto, vale la pena verificar si las bases están de verdad; entré en esa cuestión de habilidades en el artículo sobre el retorno de un bootcamp de programación.

¿Cambiar a Graviton (arm) de verdad lo hace más barato?

Sí, y hoy es la victoria más segura en optimización de costos de EC2. Graviton es el procesador arm propio de AWS, marcado con el sufijo g (t4g, m7g, c7g, r7g). Espera cerca de 20% mejor relación precio-rendimiento que el x86 equivalente. Cambiar una letra del tipo de instancia baja la factura: un almuerzo gratis, y eso es raro.

El único obstáculo es la compatibilidad de arquitectura. La mayoría de los intérpretes y runtimes (Node, Python, Go, Java, Ruby) y las imágenes Docker oficiales ya traen arm64. Verifica estas tres cosas:

  • ¿Tu imagen de contenedor construye una variante multiarquitectura linux/arm64?
  • ¿Tus extensiones nativas (paquetes de Python con extensiones en C, por ejemplo) traen wheels arm?
  • ¿Tus agentes comerciales de monitoreo/seguridad soportan arm?

Si pasas esas tres, la mayoría de las migraciones son tranquilas. Las herramientas de IA para programar reducen muchísimo el trabajo pesado de Dockerfiles multiarquitectura y scripts de migración; cuáles valen la pena en el día a día está en mi comparación de Cursor vs. Copilot.

¿Cuánto se ahorra? (Savings Plans, Spot, On-Demand)

El modelo de compra importa tanto como el tipo. La misma c7g puede costar 3-4 veces más o menos según cómo la compres.

Modelo de compraDescuentoFlexibilidadRiesgoIdeal para
On-DemandNinguno (base)MáximaNingunoCorto, irregular, pruebas
Compute Savings PlansGrande (1/3 años)Alta (cambias familia/región)Penalidad por subusoBase siempre encendida
EC2 Instance Savings PlansMayorBaja (familia fija)Menos flexibleNúcleo totalmente fijo
SpotHasta 70-90%BajaReclamo en 2 minTrabajo que tolera interrupciones

La estrategia real es por capas. Compromete tu base siempre encendida a un Savings Plan por el descuento, monta el tráfico variable en On-Demand, y llena el hueco tolerante a interrupciones con Spot. La Mixed Instances Policy de un Auto Scaling group te deja fijar por política la proporción On-Demand/Spot. Empieza conservador: comprométete quizá a un 70% de cobertura según la recomendación de Savings Plans en Cost Explorer, y ajusta después. En términos de LatAm y España, recuerda que la factura de AWS llega en dólares aunque tu presupuesto esté en pesos o euros, así que el tipo de cambio es parte del costo. Trata el gasto de nube como un costo operativo fijo en dólares y métele en la revisión financiera mensual, no solo en el canal de ingeniería.

¿Cuáles son los errores comunes? (un caso de fracaso)

Junto las minas típicas en una sola historia.

El caso: una startup que se asustó con la factura. Un equipo corría producción en cuatro m5.2xlarge On-Demand. El tráfico solo subía en horario laboral, pero las cuatro corrían toda la noche a un 15% de CPU promedio. Encima, sus runners de CI eran máquinas On-Demand aparte, siempre encendidas. Desglosado:

  1. Sobredimensionado — 15% de CPU significa que podían bajar dos tamaños. Compute Optimizer ya recomendaba m7g.large.
  2. Sin Spot — los runners de CI pueden reiniciarse si se interrumpen, y aun así quemaban dinero en On-Demand.
  3. Generación vieja, x86 por inercia — pasar de m5 (x86) a m7g (Graviton) ya ahorraba casi un 20%.
  4. Sin compromiso — una base encendida todo el año sin ningún Savings Plan asociado.

Corregir esos cuatro puntos bajó la factura mensual a menos de la mitad. Nada de magia, solo las bases: última generación, Graviton, tamaño correcto, comprometer la base, Spot para el excedente variable. Si tu equipo opera infraestructura en remoto, mete esta revisión de costos en una rutina periódica; la cadencia operativa que describí en la guía de trabajo remoto aplica directo.

Qué revisar cada mes

El tipo de instancia no es una decisión de configurar y olvidar. Esto reviso cada mes:

  • Recomendaciones de Compute Optimizer — la lista de sobre/subdimensionadas.
  • Cobertura y uso de Savings Plans — ¿hay algún compromiso ocioso?
  • Tasa de interrupción de Spot — si un tipo es reclamado seguido, amplía tus tipos candidatos.
  • Renovación de generación — cuando llega una nueva, mídela y evalúa el cambio.
  • Ubicación de región — ¿alguna carga insensible a latencia quedó atrapada en una región cara?

El gasto en infraestructura de nube termina pareciéndose mucho a gestionar una cartera. Fijas la base con un compromiso como quien mantiene una posición de largo plazo, y tomas la exposición variable con flexibilidad vía Spot. Esa mentalidad de asignación rima sorprendentemente bien con la lógica de cartera que expuse en la guía de inversión en acciones de IA.

En resumen: empieza pequeño, mira las métricas y acciona las tres palancas —Graviton, Savings Plans, Spot— en ese orden. Ese solo hábito cambia tu factura de EC2 más que cualquier otra cosa.

Este artículo tiene fines únicamente informativos y no recomienda ninguna arquitectura ni modelo de compra en particular. Los precios y especificaciones de AWS cambian con frecuencia, así que confirma siempre los costos reales en la página oficial de precios de AWS y en el Cost Explorer de tu propia cuenta.

¿Con qué tipo de instancia EC2 conviene empezar?

Si tienes dudas, empieza con una instancia de la familia t (t3 o t4g). La mayoría de los servidores web, APIs y entornos de desarrollo funcionan bien con instancias burstables. Si tu CPU se mantiene alta de forma constante, pasa a m; si es intensivo en cómputo, ve a c; si te quedas sin memoria, ve a r. Elegir una instancia grande desde el primer día es el desperdicio más común.

¿Qué significa realmente 'burstable' en las instancias de la familia t?

Una instancia t funciona a una fracción base de sus vCPUs la mayor parte del tiempo y acumula la capacidad no usada como créditos de CPU. Cuando la carga sube, quema créditos para llegar hasta el 100%. Cuando los créditos se agotan, se limita a la base. Para cargas siempre ocupadas es un mal negocio, y ahí la familia m encaja mejor.

¿Cambiar a Graviton (arm) realmente ahorra dinero?

Sí. Las instancias Graviton (t4g, m7g, c7g, r7g) suelen dar alrededor de un 20% mejor relación precio-rendimiento que la instancia x86 equivalente. La mayoría de los runtimes (Node, Python, Go, Java) y las imágenes de contenedor oficiales ya soportan arm64. Solo confirma que tus librerías nativas y tus agentes comerciales corran en arm.

¿Savings Plans o Instancias Reservadas: cuál es mejor?

Para la mayoría de los equipos, los Compute Savings Plans ganan en flexibilidad. Te comprometes a un monto por hora durante uno o tres años, y el descuento te sigue aunque cambies de familia, región o sistema operativo. A menos que tu infraestructura esté totalmente fija, revisa Savings Plans antes que las RI.

¿Cuándo es seguro usar instancias Spot?

Solo para trabajo que tolera interrupciones: procesos por lotes, runners de CI, renderizado, workers sin estado, parte de un node pool de Kubernetes. Spot puede ser 70-90% más barato que On-Demand, pero AWS puede reclamar la capacidad con un aviso de dos minutos, así que mantenlo lejos de bases de datos con estado y servidores de pago.

¿Cómo interpreto la relación vCPU-memoria?

Cada familia tiene una relación fija: c es aproximadamente 1:2, m es 1:4, r es 1:8. Observa en CloudWatch si tu aplicación agota primero la CPU o la memoria. Si estás en una familia con mucho del recurso que nunca usas, estás pagando por margen que no aprovechas.

¿Cuánto importa la generación de la instancia (t3 vs t4g, m6 vs m7)?

Las generaciones nuevas suelen dar más rendimiento al mismo precio. Salvo que tengas una razón específica, corre siempre la última generación. Dejar generaciones viejas congeladas en un Auto Scaling group o en un launch template es una fuga de costos silenciosa clásica.

¿Las regiones de AWS en LatAm cuestan más?

La región de São Paulo (sa-east-1) tiende a tener precios más altos que us-east-1 (Virginia). Para usuarios en México, Argentina o España, la latencia importa: puede convenir sa-east-1 o eu-west-1 (Irlanda) aunque cuesten un poco más. Mueve a la región más barata solo las cargas por lotes o de desarrollo que no dependen de la latencia.

Si uso Auto Scaling, ¿aún tengo que pensar en el tipo de instancia?

Sí. Auto Scaling automatiza cuántas, no cuáles. Si pones el tipo equivocado detrás de Auto Scaling, solo multiplicas el desperdicio. Ajusta primero el tipo y luego suma el escalado. Una Mixed Instances Policy te deja mezclar Spot en el grupo para grandes ahorros.

¿Cuándo necesito de verdad instancias GPU (familia g/p)?

Solo cuando el cómputo paralelo es el punto: entrenamiento de modelos, inferencia a gran escala, transcodificación de video. Son caras, así que dejarlas encendidas todo el día dispara la factura. Si solo necesitas inferencia, evalúa correr la familia g en Spot o en un horario que las prenda y apague.

¿Cómo sé si dimensioné mal una instancia?

Activa AWS Compute Optimizer y las recomendaciones de Rightsizing en Cost Explorer. Observa el uso de CPU, memoria y red durante al menos dos semanas, y baja de tamaño las instancias marcadas como sobredimensionadas de a un escalón. La mayoría de los primeros ahorros salen justo de ahí.

공유하기

관련 글