Para una sola solicitud de 200 ms seguida de 345 segundos de inactividad, las funciones web de AWS Lambda pueden resultar en aproximadamente 1,700 veces la duración de la solicitud en tiempo de memoria facturado. Este hallazgo llevó a Easel.sh, una plataforma para ejecutar aplicaciones web, a abandonar el servicio en favor de construir su propia infraestructura de computación para obtener control sobre la asignación de recursos y los costos.

El problema de los cinco minutos de inactividad

Aunque las funciones web de AWS Lambda están diseñadas para escalar a cero, la plataforma factura la memoria consumida durante toda la vida de un entorno de ejecución. Easel.sh descubrió que estos entornos no terminan inmediatamente después de que finaliza una solicitud, sino que permanecen activos durante 5 a 7 minutos.

En experimentos realizados en seis entornos representativos, los períodos de inactividad medidos se situaron entre 313 y 411 segundos. Debido a que no existe un tiempo de espera inactivo configurable para acortar estas ventanas, el costo de la memoria permanece activo incluso cuando la aplicación no está realizando ningún trabajo.

Un gráfico que muestra los períodos de inactividad para seis entornos diferentes después de su última solicitud completada.
Easel.sh midió períodos de inactividad entre 313 y 411 segundos en seis entornos representativos.www.easel.sh

Esta figura ilustra los períodos de inactividad específicos descubiertos por Easel.sh durante sus pruebas de las funciones web de AWS Lambda.

Periodos de inactividad tras la última solicitud (Segundos): Environment 1 313s; Environment 2 355s; Environment 3 358s; Environment 4 391s; Environment 5 410s; Environment 6 411s
Periodos de inactividad tras la última solicitud (Segundos)easel.sh

Gráfico elaborado por HN Digest a partir de cifras de easel.sh; los valores se muestran como en la fuente.

Impacto económico en cargas de trabajo de bajo tráfico

La estructura de facturación plantea un desafío específico para aplicaciones con tráfico impredecible. Para un flujo constante de solicitudes, el costo de la memoria inactiva se distribuye entre muchas interacciones; sin embargo, para aplicaciones que reciben solo unas pocas solicitudes al día, el costo de una sola solicitud puede estar dominado por el período de inactividad posterior.

Easel.sh señaló que la memoria representó aproximadamente el 88% de los costos de computación y solicitud calculados en sus pruebas. Para una plataforma que soporta miles de despliegues independientes, estos cargos acumulados por inactividad crean un perfil económico diferente al del tráfico sostenido de alto volumen.

Compensaciones de rendimiento e infraestructura

Para resolver el problema de facturación, Easel.sh trasladó la ejecución de aplicaciones a servidores que operan ellos mismos, utilizando el Lambda tradicional solo para desbordamientos. Este movimiento les permite compartir capacidad entre múltiples aplicaciones en una sola máquina, eliminando la tarifa de inactividad por entorno.

Un diagrama que muestra las solicitudes entrando al borde de Easel.sh y siendo enrutadas a una infraestructura de computación compartida.
La infraestructura de Easel.sh enruta las solicitudes a la computación compartida, utilizando AWS Lambda solo para desbordamientos.www.easel.sh

Este diagrama explica el cambio arquitectónico hacia la capacidad compartida para mitigar los costos por tiempo de inactividad.

Las pruebas iniciales mostraron que esta infraestructura personalizada entregó tiempos medianos de solicitudes en caliente entre 1.5 y 3 veces más rápidos en diversas cargas de trabajo, incluyendo APIs JSON y renderizado del lado del servidor. Además, el host personalizado logró arranques en frío 3.5 veces más rápidos después de un período de inactividad de 12 minutos en comparación con las funciones web de AWS Lambda.

Un gráfico de barras que compara el tiempo mediano hasta el primer byte para solicitudes en caliente en diferentes plataformas.
Pruebas que muestran tiempos medianos de solicitudes en caliente entre 1.5 y 3 veces más rápidos para la infraestructura personalizada de Easel.sh.www.easel.sh

Este gráfico proporciona los datos para las mejoras de rendimiento observadas en escenarios de solicitudes en caliente.

Un gráfico que compara los tiempos de arranque en frío para la primera solicitud después de un período de inactividad de 12 minutos.
El host personalizado de Easel.sh logró arranques en frío 3.5 veces más rápidos en comparación con las funciones web de AWS Lambda.www.easel.sh

Esta visualización respalda la afirmación sobre los arranques en frío significativamente más rápidos en la infraestructura de operación propia.

Limitaciones de los hallazgos

Los datos de rendimiento proporcionados por Easel.sh se basan en una sola región (us-east-1) y una aplicación específica de Next.js 16. La empresa señaló que estos son resultados tempranos y no constituyen un estudio de rendimiento integral en múltiples regiones ni una prueba de rendimiento de rendimiento sostenido.

Si bien el cambio a la computación de operación propia proporciona un mejor control de costos y rendimiento en estas pruebas, introduce la responsabilidad de gestionar la capacidad, manejar fallos y garantizar una distribución eficiente de recursos en un conjunto diverso de aplicaciones de usuario.

Qué dicen los lectores de Hacker News

  • Experiencia: Un comentarista que midió el comportamiento informó que, si bien el tiempo de inactividad puede acortarse saliendo manualmente del proceso, AWS registra esto como un error de tiempo de ejecución, lo que lo hace poco fiable para su uso en producción. comentario ↗
  • Escéptico: Varios comentaristas sugirieron que el costo podría amortizarse en cargas sostenidas porque los contenedores se reutilizan, lo que significa que la facturación por inactividad podría no afectar significativamente a las aplicaciones de alto tráfico. comentario ↗
  • Escéptico: Otro comentarista señaló que el artículo indica que este comportamiento ya está documentado por AWS, lo que sugiere que el problema podría ser menos sorprendente de lo que implica el titular. comentario ↗

Resumen de opiniones del hilo de Hacker News; no son hechos verificados. Leer el debate completo ↗