services que pricing precios costos aws amazon-web-services amazon-ec2 aws-sdk aws-lambda

amazon-web-services - que - precios amazon lambda



Lambda solución de arranque en frío posible? (2)

¿Está programando una función lambda para que se llame cada 20 minutos con cloudwatch, la mejor manera de deshacerse de los tiempos de arranque en frío de lambda? (no se deshace por completo) ... ¿Va a ser caro o hay algo que me falta porque lo tengo configurado ahora y creo que está funcionando. Antes, mi tiempo de inicio en frío sería de 10 segundos y cada llamada subsiguiente se completaría en 80 ms. Ahora cada llamada, sin importar qué tan frecuente sea, alrededor de 80 ms. ¿Es este un buen método hasta que tu base de usuarios crezca, entonces puedes apagarlo? Mi segunda opción es simplemente usar beanstalk y tener un servidor funcionando las 24 horas, pero eso suena caro, así que no lo prefiero.


Hasta donde yo sé, esta es la única manera de mantener la función caliente en este momento. Puede ser costoso solo cuando tienes muchas de esas funciones.

Tendría que calcular cuánto paga por mantener sus funciones en funcionamiento teniendo en cuenta cuántas de ellas tiene, cuánto tiempo lleva ejecutarlas cada vez y cuánta memoria necesita.

Pero una vez cada 20 minutos es algo así como 2000 veces por mes, así que si usas, por ejemplo, 128MB y haces que terminen menos de 100ms, entonces podrías mantener muchas funciones vivas a intervalos de 20 minutos y aún estar por debajo del nivel libre: sería 20 segundos por mes por función. Ni siquiera necesita apagarlo después de obtener una carga mayor, ya que será irrelevante en este momento. Además, nunca puedes estar seguro de tener una carga uniforme todo el tiempo, así podrás mantener activo el código de latido de tu corazón incluso entonces.

Aunque creo que, dado que es tan económico mantener activa una función (especialmente si tienes un argumento especial que los hace regresar inmediatamente) y que la diferencia es tan grande (10 segundos frente a 80 ms), entonces casi todo el mundo lo hará no hay excusa para no hacerlo. En ese caso, espero que Amazon pelee esa práctica (haciéndola más difícil o más costosa de lo que es actualmente, lo que no sería una jugada inteligente) o que no sea necesaria en el futuro. Si la diferencia entre el arranque en caliente y en frío fuera de 100ms, entonces nadie se molestaría. Si son 10 segundos, todos deben evitarlo.

Siempre tendría que haber una diferencia entre ejecutar un código que se ejecutó hace un segundo y un código que se ejecutó hace un mes, porque tenerlos todos en la memoria RAM y estar listo para hacerlo desperdiciaría muchos recursos, pero no veo ningún código. razón por la cual esa diferencia no podría ser menos notoria o incluso tener algunos pasos más en lugar del inicio en caliente y en frío.


Puede mejorar el tiempo de arranque en frío asignando más memoria a su función Lambda. Con el valor predeterminado de 512MB, estoy viendo tiempos de arranque en frío de 8-10 segundos para funciones escritas en Java. Esto mejora a 2-3 segundos con 1536MB de memoria.

Amazon dice que lo que realmente importa es la asignación de CPU, pero no hay forma de cambiarlo directamente. La asignación de CPU aumenta proporcionalmente a la memoria.

Y si desea tiempos de arranque en frío cercanos a cero, mantener la función caliente es el camino a seguir, como se sugirió rsp.