Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Considere la opción sin servidor. NET
Información general
La informática sin servidor se ha convertido en un enfoque popular para crear e implementar aplicaciones. Esto se debe principalmente a la escalabilidad y la agilidad que ofrece el enfoque sin servidor a la hora de crear una arquitectura moderna. Sin embargo, es importante tener en cuenta el impacto en los costes de la informática sin servidor en algunos escenarios.
Lambda es una plataforma informática sin servidor que permite a los desarrolladores ejecutar código sin necesidad de servidores dedicados. Lambda es una opción particularmente atractiva para. NETdesarrolladores que buscan reducir los costos de infraestructura. Con Lambda,. NETlos desarrolladores pueden desarrollar e implementar aplicaciones que sean altamente escalables y potencialmente rentables. Al utilizar un enfoque sin servidores, los desarrolladores ya no aprovisionan servidores para gestionar las solicitudes de aplicaciones. En su lugar, los desarrolladores pueden crear funciones que se ejecuten bajo demanda. Esto hace que un enfoque sin servidor sea más escalable, administrable y potencialmente más rentable que ejecutar, administrar y escalar máquinas virtuales. Como resultado, solo paga por los recursos utilizados por la aplicación, sin tener que preocuparse por los recursos infrautilizados o los costos de mantenimiento del servidor.
Los desarrolladores pueden utilizar plataformas modernas y multiplataforma. NETversiones para crear aplicaciones sin servidor que sean rápidas, eficientes y rentables. El. NETLas versiones principales y más recientes son un marco gratuito y de código abierto que se adapta mejor a la ejecución en plataformas sin servidor que las anteriores. NETVersiones de framework. Esto permite a los desarrolladores reducir el tiempo de desarrollo y aumentar el rendimiento de las aplicaciones. Moderna. NETtambién es compatible con una variedad de lenguajes de programación, incluidos C# y F#. Por este motivo, es una opción atractiva para los desarrolladores que buscan crear arquitecturas modernas en la nube.
En esta sección se explica cómo puede ahorrar costes mediante el uso de Lambda como opción sin servidor. Puede optimizar aún más los costos ajustando los perfiles de ejecución de sus funciones Lambda, ajustando el tamaño correcto de la asignación de memoria de sus funciones Lambda, utilizando Native AOT
Impacto en los costos
La medida en que pueda reducir los costes depende de varios factores, como el número de ejecuciones que ejecutarán las funciones sin servidor, además de la cantidad de memoria asignada y la duración de cada función. AWS Lambda ofrece una capa gratuita, que incluye un millón de solicitudes gratuitas al mes y 400 000 GB por segundo de tiempo de procesamiento al mes. Puede reducir considerablemente los costes mensuales de las cargas de trabajo que se encuentren dentro o alrededor de estos límites de la capa gratuita.
También puede haber costes adicionales al utilizar un balanceador de carga con funciones Lambda como objetivo. Esto se calcula como la cantidad de datos procesados por el balanceador de carga para los objetivos Lambda.
Recomendaciones de optimización de costes
Ajuste el tamaño correcto de sus funciones Lambda
El dimensionamiento correcto es una práctica esencial para la optimización de costos en. NETfunciones Lambda basadas en funciones. Este proceso implica identificar la configuración de memoria óptima que equilibre el rendimiento con la rentabilidad, sin necesidad de cambiar el código.
Al configurar la memoria para una función Lambda, que va desde 128 MB hasta 10 240 MB, también se ajusta la cantidad de v CPU disponible durante la invocación. Esto permite que las aplicaciones CPU vinculadas a la memoria o a la memoria accedan a recursos adicionales durante la ejecución, lo que se traduce en una posible reducción de la duración de la invocación y del coste total.
Sin embargo, identifique la configuración óptima para usted. NETLas funciones Lambda basadas en funciones Lambda pueden ser un proceso manual que requiere mucho tiempo, especialmente si los cambios son frecuentes. La herramienta AWS Lambda
de ajuste de potencia
Por ejemplo, aumentar la memoria para un. NETLa función Lambda basada en Lambda puede mejorar el tiempo total de invocación y reducir los costes sin afectar al rendimiento. La configuración de memoria óptima para una función puede variar. La herramienta AWS Lambda de ajuste de potencia puede ayudar a identificar la configuración más rentable para cada función.
En el siguiente gráfico de ejemplo, el tiempo total de invocación mejora a medida que aumenta la memoria de esta función Lambda. Esto se traduce en una reducción del coste total de la ejecución sin que ello afecte al rendimiento original de la función. Para esta función, la configuración de memoria óptima para la función es de 512 MB, ya que aquí es donde la utilización de los recursos es más eficiente teniendo en cuenta el coste total de cada invocación. Esto varía según la función y, al usar la herramienta en sus funciones Lambda, puede identificar si se benefician del tamaño correcto.
Le recomendamos que complete este ejercicio con regularidad, como parte de cualquier prueba de integración cuando se publiquen nuevas actualizaciones. Si se actualiza con poca frecuencia, realice este ejercicio periódicamente para asegurarse de que las funciones estén ajustadas y tengan el tamaño adecuado. Una vez que haya identificado la configuración de memoria adecuada para las funciones de Lambda, puede añadir el tamaño correcto a sus procesos. La herramienta AWS Lambda Power Tuning genera resultados programáticos que los flujos de trabajo de CI/CD pueden utilizar durante la publicación del código nuevo. Esto le permite automatizar la configuración de la memoria.
Puede descargar la herramienta AWS Lambda
Power Tuning
Lambda también es compatible con la tecnología nativaAOT, lo que permite. NETaplicaciones que se deben precompilar. Esto puede ayudar a reducir los costos al reducir los tiempos de ejecución de. NETfunciones. Para obtener más información sobre la creación de AOT funciones nativas, consulte. NETfunciones con AOT compilación nativa en la documentación de Lambda.
Evite el tiempo de espera por inactividad
La duración de la función Lambda es una dimensión que se utiliza para calcular la facturación. Cuando el código de función realiza una llamada de bloqueo, se le facturará el tiempo que espere para recibir una respuesta. Este tiempo de espera puede aumentar cuando las funciones de Lambda están encadenadas o una función actúa como orquestadora de otras funciones. Si tiene flujos de trabajo como operaciones por lotes o sistemas de entrega de pedidos, esto añade una sobrecarga de administración. Además, es posible que no sea posible completar toda la lógica del flujo de trabajo y la gestión de errores dentro del tiempo de espera máximo de Lambda de 15 minutos.
En lugar de utilizar esta lógica en el código de la función, le recomendamos que rediseñe la solución para utilizarla AWS Step Functions
Pase a las funciones basadas en la gravedad
Las funciones Lambda impulsadas por los procesadores Graviton2 de próxima generación ya están disponibles de forma general. Las funciones de Graviton2, que utilizan una arquitectura de procesador ARM basada en un procesador, están diseñadas para ofrecer un rendimiento hasta un 19 por ciento mejor a un costo un 20 por ciento menor para una variedad de cargas de trabajo sin servidor. Con una latencia más baja y un mejor rendimiento, las funciones impulsadas por los procesadores Graviton2 son ideales para impulsar aplicaciones esenciales sin servidor.
La migración a funciones Lambda basadas en Graviton puede ser una opción rentable para. NETdesarrolladores que buscan optimizar sus costes de Lambda. Las funciones basadas en Graviton utilizan procesadores ARM basados en lugar de los procesadores x86 tradicionales. Esto puede suponer un importante ahorro de costes sin sacrificar el rendimiento.
Si bien pasar a funciones basadas en Gravitón tiene varias ventajas, también hay varios desafíos y consideraciones que le recomendamos que tenga en cuenta. Por ejemplo, las funciones basadas en Graviton requieren el uso de Amazon Linux 2, que puede no ser compatible con todas. NETaplicaciones. Además, es posible que haya problemas de compatibilidad con bibliotecas o dependencias de terceros que no sean compatibles con los procesadores ARM basados en procesadores.
Si estás corriendo. NETSi desea aprovechar las ventajas de la tecnología sin servidor con Lambda, puede considerar la posibilidad de migrar las aplicaciones a una versión moderna. NETmediante el asistente de portabilidad para. NET
En la siguiente tabla se comparan los resultados de las arquitecturas x86 y ARM /Graviton2 de una función que calcula números primos.
La función utiliza un único hilo. La duración más baja para ambas arquitecturas se indica cuando la memoria está configurada con 1,8 GB. Por encima de eso, las funciones Lambda tienen acceso a más de 1 vCPU, pero en este caso, la función no puede utilizar la potencia adicional. Por la misma razón, los costes se mantienen estables con una memoria de hasta 1,8 GB. Con más memoria, los costes aumentan porque esta carga de trabajo no supone ningún beneficio de rendimiento adicional. Es evidente que el procesador Graviton2 proporciona un mejor rendimiento y unos costes más bajos para esta función que requiere un uso intensivo de recursos informáticos.
Para configurar su función de modo que utilice un procesador ARM basado en un procesador con Graviton, haga lo siguiente:
-
Inicie sesión en la AWS Management Console consola Lambda
y ábrala. -
Seleccione Crear función.
-
En Function name (Nombre de función), escriba un nombre.
-
Para Runtime, elija. NET6 (C#/ PowerShell).
-
En Arquitectura, seleccione arm64.
-
Realice las configuraciones adicionales que necesite y, a continuación, elija Crear función.
Recursos adicionales de
-
Optimización de los AWS Lambda costes y el rendimiento mediante AWS Compute Optimizer
(AWS Compute Blog) -
Optimización de AWS Lambda los costes: primera parte
(blog AWS sobre informática) -
Optimización de AWS Lambda los costes: segunda parte
(blog AWS sobre informática) -
Construir sin servidor. NETaplicaciones sobre el AWS Lambda uso. NET
7 (blog de AWS informática)