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.
Almacenamiento de aplicaciones .NET en contenedores
Descripción general de
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 los costos de sus aplicaciones .NET y, al mismo tiempo, tener una infraestructura escalable y fiable.
Impacto del costo
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 las aplicaciones pequeñas o sencillas, es posible que los contenedores no supongan un ahorro de costos significativo en comparación con las estrategias de infraestructura tradicionales, ya que la sobrecarga que supone gestionar los contenedores y los servicios asociados puede, de hecho, aumentar los costos. Sin embargo, en el caso de aplicaciones más grandes o complejas, el uso de contenedores puede suponer un ahorro de costos, ya que mejora la utilización de los recursos y reduce la cantidad de instancias necesarias.
Le recomendamos que tenga en cuenta las siguientes consideraciones al utilizar contenedores para ahorrar costos:
-
Tamaño y complejidad de las aplicaciones: las aplicaciones más grandes y complejas son más adecuadas para el almacenamiento en contenedores porque suelen requerir más recursos y pueden beneficiarse más de un mejor uso de dichos recursos.
-
Cantidad de aplicaciones: cuantas más aplicaciones deba implementar su organización, mayor será el ahorro de costos que se logrará al almacenar en contenedores.
-
Tráfico y demanda: las aplicaciones que experimentan una demanda y un tráfico elevados pueden beneficiarse de la escalabilidad y la elasticidad que ofrecen los contenedores. Esto puede generar ahorros de costos.
Las diferentes arquitecturas y sistemas operativos influyen en los costos de los contenedores. Si utiliza contenedores de Windows, es posible que los costos no disminuyan debido a aspectos relativos al uso de licencias. Los costos asociados al uso de licencias son más bajos o incluso 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, ejecutadas durante 12 horas cada una, con 4 V CPUs 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
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 estar en funcionamiento durante 12 horas al día y no consumir recursos fuera de ese horario. Sin embargo, en el caso de Amazon ECS, debe controlar la capacidad informática 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.
Recomendaciones de optimización de costos
Uso de 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 ahorrar aproximadamente un 45 por ciento en los costos de procesamiento si ejecuta .NET Core en EC2 Linux en lugar de ejecutar .NET Framework en EC2 Windows. Puede obtener un ahorro adicional del 40 por ciento si utiliza la arquitectura ARM (AWS Graviton) en lugar de la x86.
Si planea poner en marcha contenedores basados en Linux para las aplicaciones de .NET Framework existentes, debe migrar estas aplicaciones a versiones modernas y multiplataforma de .NET (por ejemplo, .NET 6.0
Otra ventaja de migrar a versiones modernas de .NET Framework (es decir, evitar .NET Framework) es que hay más oportunidades de modernización disponibles. 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 para analizar posibles oportunidades de modernización.
Ventajas de Savings Plans
Los contenedores pueden ser útiles para aprovechar Savings Plans para computación
Es importante entender que los planes de Savings Plans para computación se aplican primero al uso que le permita ahorrar más. Por ejemplo, si tiene en funcionamiento una instancia t3.medium de Linux en us-east-2 y una instancia t3.medium de Windows idéntica, la instancia de Linux recibe primero el beneficio de Savings Plans. Esto se debe a que la instancia de Linux tiene un potencial de ahorro del 50 %, mientras que la misma instancia de Windows tiene un potencial de ahorro del 35 %. Si dispone de otros recursos aptos para los Savings Plans Cuenta de AWS, como Amazon EC2 o Lambda, no es necesario que los planes de ahorro se apliquen 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.
Dimensionamiento correcto de las tareas de Fargate
Es importante asegurarse de que las tareas de Fargate tengan el tamaño correcto para lograr la mayor optimización posible de los costos. Con frecuencia, los desarrolladores no disponen de toda la información de uso necesaria a la hora de definir 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 funcionan en Fargate para comprender cómo funciona la configuración de una tarea específica en diferentes escenarios de uso. Puede utilizar los resultados de las pruebas de carga, la vCPU, la asignación de memoria de las tareas y las políticas de escalado automático para dar con el equilibrio adecuado entre rendimiento y costo.
En el siguiente diagrama, se muestra cómo Compute Optimizer genera recomendaciones de tamaño para 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
Recursos adicionales
-
Cost Optimization Checklist for Amazon ECS and AWS Fargate
(publicación del blog de contenedores de AWS ) -
Optimización teórica de costes mediante Amazon ECS tipo de lanzamiento: Fargate vs
. EC2 (entrada del blog de AWS Containers) -
Asistente de portabilidad para .NET
(AWS documentación) -
Las pruebas de carga distribuidas están AWS
activas (biblioteca de AWS soluciones) -
AWS Compute Optimizer lanza el soporte para los servicios de Amazon ECS en AWS Fargate
(entrada del blog AWS Cloud Financial Management)