View a markdown version of this page

Uso de instancias y contenedores Graviton - 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.

Uso de instancias y contenedores Graviton

Descripción general de

AWS Las instancias Graviton funcionan con procesadores ARM diseñados para ofrecer la mejor AWS relación precio-rendimiento para las cargas de trabajo en la nube que se ejecutan en Amazon Elastic Compute Cloud (Amazon EC2), incluidos los contenedores que se ejecutan en ellas. AWS Actualmente hay tres generaciones de Graviton disponibles para su uso en Amazon EC2. Esta guía se centra en el uso de Graviton 2 y 3 con aplicaciones .NET, ya que supone un importante ahorro de costos si usa las versiones más recientes de Graviton. Tenga en cuenta que las instancias Graviton solo funcionan en el sistema operativo Linux. Como resultado, las instancias Graviton son una buena opción para .NET en Linux, pero no son una opción para el sistema operativo Windows ni para las aplicaciones heredadas de .NET Framework.

Graviton 3 es un 60 % más eficiente que las instancias de EC2 comparables, con un rendimiento hasta un 40 % mejor. Esta guía se centra en los beneficios económicos del uso de Graviton, pero es importante tener en cuenta que Graviton ofrece otras dos ventajas: la mejora del rendimiento y una mayor sostenibilidad ambiental.

Impacto del costo

Puede ahorrar hasta un 45 % si empieza a usar Graviton. Tras refactorizar cualquier aplicación heredada de .NET Framework para convertirla a una versión moderna de .NET, podrá utilizar instancias Graviton. La migración a Graviton es una técnica eficaz de optimización de costos para los desarrolladores de .NET.

El ejemplo de la siguiente tabla muestra las posibles mejoras de rendimiento que se pueden lograr al migrar a las instancias Graviton.

Gráfico de rendimiento de Graviton

Para obtener un desglose completo y una explicación del enfoque de evaluación comparativa utilizado para crear los resultados del diagrama anterior, consulte Potenciar .NET 5 con AWS Graviton2: Benchmarks in the Compute Blog. AWS

Una de las razones de la mejora en la eficiencia es que el término vCPU tiene significados distintos en x86 y en Graviton. En la arquitectura x86, una vCPU es un núcleo lógico que se logra mediante hipersubprocesamiento. En Graviton, una vCPU equivale a un núcleo físico que permite que la vCPU se comprometa plenamente con la carga de trabajo.

El resultado con Graviton2 es una relación precio-rendimiento un 40 % superior a la de las instancias x86 o x64 comparables. Graviton3 ofrece lo siguiente en comparación con Graviton2:

  • Un perfil de rendimiento mejorado con un rendimiento hasta un 25 % mejor.

  • Hasta el doble de rendimiento en operaciones de coma flotante.

  • Un rendimiento el doble de rápido en cargas de trabajo criptográficas.

  • Un rendimiento tres veces mejor en tareas de machine learning.

Además, Graviton3 es la primera instancia en la nube que incluye memoria. DDR5

En las tablas siguientes se muestra una comparación del ahorro de costos logrado al usar instancias basadas en Graviton y al usar instancias equivalentes basadas en x86.

En esta tabla se muestra que el uso de Graviton supone un 19,20 % de ahorro.

Tipo de instancia Arquitectura vCPU Memoria (GB) Costo por hora (bajo demanda)
t4g.xlarge ARM 4 16 0,1344$
t3.xlarge x86 4 16 0,1664$

En esta tabla se muestra que el uso de Graviton supone un 14,99 % de ahorro.

Tipo de instancia Arquitectura vCPU Memoria (GB) Costo por hora (bajo demanda)
c7g.4xlarge ARM 16 32 0,5781$
c6i.4xlarge x86 16 32 0,6800$

Es importante probar el perfil de rendimiento de la aplicación si planea usar Graviton. Graviton no reemplaza la necesidad de aplicar buenas prácticas de desarrollo de software. Puede utilizar las pruebas para comprobar si está aprovechando al máximo sus recursos de computación subyacentes.

Recomendaciones de optimización de costos

Hay varias formas de aprovechar los procesadores o instancias Graviton. En esta sección, se explican los cambios necesarios para pasar de utilizar una máquina con arquitectura x86 a instancias Graviton (ARM).

Cambio de la configuración del tiempo de ejecución en Lambda

Le recomendamos que modifique la configuración del tiempo de ejecución. AWS Lambda Para obtener más información, consulte Modificación del entorno de tiempo de ejecución en la documentación de Lambda. Dado que .NET es un lenguaje compilado, debe seguir un proceso de compilación para que funcione. Para ver un ejemplo de cómo hacerlo, consulte. NET en Graviton in GitHub.

Contenedores

En el caso de una carga de trabajo almacenada en un contenedor, cree una imagen de contenedor multiarquitectura. Para ello, especifique varias arquitecturas en el comando de compilación de Docker. Por ejemplo:

docker buildx build -t "myImageName:latest" --platform linux/amd64,linux/arm64 --push .

También puedes usar una herramienta como la que te ayude AWS Cloud Development Kit (AWS CDK) a organizar la construcción. Para ver ejemplos de Docker, consulte Building Multi-Arch Images for Arm and x86 with Docker Desktops en la documentación de Docker.

Amazon EC2

Para migrar a ARM desde x86 o x64, debe centrarse en la arquitectura ARM en el paso de compilación. En Visual Studio, puede crear una ARM64 CPU. Para obtener instrucciones, consulte To configure a project to target Arm64 and other platforms en la documentación de Microsoft.

Si utiliza la CLI de .NET, obtendrá una compilación válida para Graviton al poner en marcha la compilación en una máquina ARM. Para ver una demostración, vea Acelerar el rendimiento de .NET 6 con Arm64 en AWS Graviton2 o más. YouTube Los problemas de dependencia provocarán errores en el tiempo de compilación que luego se podrán solucionar de forma individual. Mientras haya bibliotecas ARM para cualquier dependencia, la transición debería ser relativamente sencilla.

Recursos adicionales