Contenedorizar. NETaplicaciones - AWS Guía prescriptiva

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.

Contenedorizar. NETaplicaciones

Información general

Los contenedores son una forma ligera y eficiente de empaquetar e implementar aplicaciones de forma coherente y reproducible. En esta sección se explica cómo puede utilizar AWS Fargate un servicio de contenedores sin servidor para reducir sus costes. NETaplicaciones y, al mismo tiempo, proporciona una infraestructura escalable y confiable.

Impacto en los costos

Algunos factores que influyen en la eficacia del uso de contenedores para ahorrar costos incluyen el tamaño y la complejidad de la aplicación, la cantidad de aplicaciones que deben implementarse y el nivel de tráfico y demanda de las aplicaciones. En el caso de aplicaciones pequeñas o sencillas, es posible que los contenedores no supongan un ahorro de costes significativo en comparación con los enfoques de infraestructura tradicionales, ya que la sobrecarga que supone gestionar los contenedores y los servicios asociados puede, de hecho, aumentar los costes. Sin embargo, para aplicaciones más grandes o complejas, el uso de contenedores puede suponer un ahorro de costes al mejorar la utilización de los recursos y reducir la cantidad de instancias necesarias.

Le recomendamos que tenga en cuenta lo siguiente cuando utilice contenedores para ahorrar costes:

  • Tamaño y complejidad de las aplicaciones: las aplicaciones más grandes y complejas son más adecuadas para la contenedorización porque suelen requerir más recursos y pueden beneficiarse más de una mejor utilización de los recursos.

  • Cantidad de aplicaciones: cuantas más aplicaciones deba implementar su organización, mayor será el ahorro de costos que se logrará mediante la contenedorización.

  • Tráfico y demanda: las aplicaciones que experimentan un tráfico y una demanda elevados pueden beneficiarse de la escalabilidad y la elasticidad que ofrecen los contenedores. Esto puede suponer un ahorro de costes.

Las diferentes arquitecturas y sistemas operativos afectan a los costos de los contenedores. Si utiliza contenedores de Windows, es posible que los costos no disminuyan debido a consideraciones de licencia. Los costos de licencia son más bajos o inexistentes con los contenedores de Linux. AWS Fargate En el siguiente gráfico se utiliza una configuración básica de la región EE.UU. Este (Ohio) con los siguientes ajustes: 30 tareas al mes, ejecutándose durante 12 horas cada una con 4 vCPUs y 8 GB de memoria asignados.

Puede elegir entre dos plataformas informáticas principales para ejecutar sus contenedores AWS: hosts de contenedores EC2 basados y sin servidor o AWS Fargate. Si utiliza Amazon Elastic Container Service (AmazonECS) en lugar de Fargate, debe mantener el procesamiento (instancias) en ejecución para permitir que el motor de ubicación cree instancias de los contenedores cuando sea necesario. Si usa Fargate en su lugar, solo se aprovisiona la capacidad de cómputo necesaria.

En el siguiente gráfico se muestra la diferencia entre contenedores equivalentes que utilizan Fargate y Amazon. EC2 Gracias a la flexibilidad de Fargate, las tareas de una aplicación pueden ejecutarse 12 horas al día, sin utilizarlas fuera del horario laboral. Sin embargo, en el caso de AmazonECS, debe controlar la capacidad de cómputo mediante un grupo de EC2 instancias de Auto Scaling. Esto puede hacer que la capacidad funcione las 24 horas del día, lo que, en última instancia, puede aumentar los costos.

Fargate: costos mensuales frente EC2 a costos mensuales

Recomendaciones de optimización de costes

Utilice contenedores de Linux en lugar de Windows

Puede lograr ahorros significativos si utiliza contenedores de Linux en lugar de contenedores de Windows. Por ejemplo, puede lograr un ahorro de aproximadamente un 45 por ciento en los costes de procesamiento si utiliza el. NETCore en EC2 Linux en lugar de ejecutar el. NETFramework en EC2 Windows. Puede obtener un ahorro adicional del 40 por ciento si utiliza la ARM arquitectura (AWS Graviton) en lugar de x86.

Si planea ejecutar contenedores basados en Linux para los existentes. NETPara las aplicaciones marco, debe portarlas a versiones modernas y multiplataforma de. NET(como. NET6.0) para utilizar contenedores de Linux. Una consideración importante es sopesar el costo de la refactorización en comparación con el ahorro de costos que se obtiene al reducir el costo de los contenedores de Linux. Para obtener más información sobre cómo migrar sus aplicaciones a la versión moderna. NET, consulte Porting Assistant para. NETen la AWS documentación.

Otro beneficio de pasar a lo moderno. NET(es decir, lejos del. NETEl marco) es que estén disponibles oportunidades de modernización adicionales. Por ejemplo, puede considerar la posibilidad de rediseñar la arquitectura de su aplicación para convertirla en una arquitectura basada en microservicios que sea más escalable, ágil y rentable.

El siguiente diagrama ilustra el proceso de toma de decisiones para explorar las oportunidades de modernización.

Cambiar la plataforma del árbol de decisiones

Aproveche los Savings Plans

Los contenedores pueden ayudarte a aprovechar Compute Savings Plans para reducir los costos de Fargate. El modelo de descuento flexible ofrece los mismos descuentos que las instancias reservadas convertibles. Los precios de Fargate se basan en los recursos de memoria CPU y v utilizados desde el momento en que empiezas a descargar la imagen del contenedor hasta que finaliza la ECS tarea de Amazon (redondeados al segundo más cercano). Los Savings Plans for Fargate ofrecen ahorros de hasta un 50 por ciento en el uso de Fargate a cambio del compromiso de usar una cantidad específica de uso informático (medida en dólares por hora) durante un período de uno o tres años. Puede usarlo como ayuda AWS Cost Explorerpara elegir un Savings Plan.

Es importante entender que los Compute Savings Plans se aplican primero al uso que te permita ahorrar más. Por ejemplo, si ejecuta una instancia Linux t3.medium us-east-2 y una instancia t3.medium de Windows idéntica, la instancia Linux recibe primero el beneficio del Savings Plan. Esto se debe a que la instancia de Linux tiene un potencial de ahorro del 50 por ciento, mientras que la misma instancia de Windows tiene un potencial de ahorro del 35 por ciento. Si tiene otros recursos aptos para el Savings Plan Cuenta de AWS, como Amazon EC2 o Lambda, no es necesario que su Savings Plan se aplique primero a Fargate. Para obtener más información, consulta Cómo se aplican los Savings Plans a tu AWS uso en la documentación de Savings Plans y en la EC2 sección Optimizar el gasto para Windows en Amazon de esta guía.

Tareas Fargate del tamaño correcto

Es importante asegurarse de que las tareas de Fargate tengan el tamaño correcto para lograr el máximo grado de optimización de costos. Con frecuencia, los desarrolladores no disponen de toda la información de uso necesaria a la hora de determinar inicialmente las configuraciones de las tareas de Fargate utilizadas en sus aplicaciones. Esto puede provocar un aprovisionamiento excesivo de tareas y, posteriormente, generar gastos innecesarios. Para evitarlo, le recomendamos que cargue las aplicaciones de prueba que se ejecutan en Fargate para comprender cómo funciona la configuración de una tarea específica en diferentes escenarios de uso. Puede usar los resultados de las pruebas de carga, vCPU, la asignación de memoria de las tareas y las políticas de autoescalado para encontrar el equilibrio adecuado entre rendimiento y costo.

En el siguiente diagrama, se muestra cómo Compute Optimizer genera recomendaciones para el tamaño óptimo de la tarea y el contenedor.

Recomendaciones de Compute Optimizer para el tamaño de la tarea y el contenedor

Un enfoque consiste en utilizar una herramienta de pruebas de carga, como la que se describe en Distributed Load Testing on AWS, para establecer una línea base para v CPU y la utilización de la memoria. Después de ejecutar la prueba de carga para simular una carga de aplicación típica, puede ajustar la configuración v CPU y de memoria para la tarea hasta alcanzar la utilización de referencia.

Recursos adicionales de