Configuración y selección de la arquitectura del conjunto de instrucciones para una función de Lambda - AWS Lambda

Configuración y selección de la arquitectura del conjunto de instrucciones para una función de Lambda

La arquitectura del conjunto de instrucciones de una función de Lambda determina el tipo de procesador informático que Lambda utiliza para ejecutar la función. Lambda proporciona una variedad de arquitecturas del conjunto de instrucciones:

  • arm64: arquitectura ARM de 64 bits, para el procesador Graviton2 de AWS

  • x86_64: arquitectura x86 de 64 bits, para procesadores basados en x86

nota

La arquitectura arm64 está disponible en la mayoría de Regiones de AWS. Para más información, consulte Precios de AWS Lambda. En la tabla de precios de memoria, elija la pestaña ARM Price (Precio de ARM) y, a continuación, abra la lista desplegable Region (Región) para ver qué Regiones de AWS admiten arm64 con Lambda.

Para obtener un ejemplo de cómo crear una función con arquitectura arm64, consulte AWS Lambda Functions Powered by AWS Graviton2 Processor (Funciones de con tecnología de Graviton2 Processor).

Ventajas del uso de la arquitectura arm64

Las funciones de Lambda que utilizan arquitectura arm64 (Procesador Graviton2 de AWS) pueden lograr un precio y un rendimiento significativamente mejores que la función equivalente que se ejecuta en la arquitectura x86_64. Considere el uso de arm64 para aplicaciones de uso intensivo de informática, como la informática de alto rendimiento, la codificación de video y las cargas de trabajo de simulación.

La CPU Graviton2 utiliza el núcleo Neoverse N1 y admite Armv8.2 (incluidas las extensiones CRC y criptográficas) además de varias otras extensiones de arquitectura.

Graviton2 reduce el tiempo de lectura de la memoria mediante una caché L2 más grande por vCPU, lo que mejora el rendimiento de latencia de los backends web y móviles, los microservicios y los sistemas de procesamiento de datos. Graviton2 también proporciona un rendimiento de cifrado mejorado y admite conjuntos de instrucciones que mejoran la latencia de la inferencia de machine learning basada en CPU.

Para obtener más información acerca de Graviton2 de AWS, consulte Procesador Graviton de AWS.

Requisitos para migrar a la arquitectura arm64

Cuando selecciona una función de Lambda para migrar a la arquitectura arm64, para garantizar una migración fluida, asegúrese de que la función cumple los siguientes requisitos:

  • El paquete de implementación contiene solo componentes de código abierto y código fuente que usted controla, para que pueda realizar las actualizaciones necesarias para la migración.

  • Si el código de función incluye dependencias de terceros, cada biblioteca o paquete proporciona una versión de arm64.

Compatibilidad de código de función con la arquitectura arm64

El código de función de Lambda debe ser compatible con la arquitectura del conjunto de instrucciones de la función. Antes de migrar una función a una arquitectura arm64, tenga en cuenta los siguientes aspectos sobre el código de función actual:

  • Si agregó el código de función mediante el editor de código integrado, es probable que el código se ejecute en cualquiera de las arquitecturas sin modificaciones.

  • Si cargó su código de función, debe cargar un código nuevo que sea compatible con la arquitectura de destino.

  • Si la función utiliza capas, debe verificar cada capa para asegurarse de que sea compatible con la arquitectura nueva. Si una capa no es compatible, edite la función para reemplazar la versión de la capa actual por una versión de la capa compatible.

  • Si la función utiliza extensiones de Lambda, debe verificar cada extensión para asegurarse de que sea compatible con la arquitectura nueva.

  • Si la función utiliza un tipo de paquete de implementación de imágenes de contenedor, debe crear una imagen de contenedor nueva que sea compatible con la arquitectura de la función.

Cómo migrar a la arquitectura arm64

Para migrar una función de Lambda a la arquitectura arm64, le recomendamos que siga los pasos a continuación:

  1. Cree la lista de dependencias para su aplicación o carga de trabajo. Las dependencias frecuentes incluyen lo siguiente:

    • todas las bibliotecas y todos los paquetes que utiliza la función

    • las herramientas que utiliza para crear, implementar y probar la función, como los compiladores, los conjuntos de pruebas, las canalizaciones de integración continua y entrega continua (CI/CD), las herramientas de aprovisionamiento y los scripts

    • las extensiones de Lambda y las herramientas de terceros que utiliza para monitorear la función en producción

  2. Para cada una de las dependencias, verifique la versión y, luego, verifique si hay versiones arm64 disponibles.

  3. Cree un entorno para migrar su aplicación.

  4. Arranque la aplicación.

  5. Pruebe y depure la aplicación.

  6. Pruebe el rendimiento de la función arm64. Compare el rendimiento con la versión x86_64.

  7. Actualice la canalización de su infraestructura para admitir las funciones de Lambda de arm64.

  8. Organice la implementación en producción.

    Por ejemplo, utilice la configuración de enrutamiento de alias para dividir el tráfico entre las versiones x86 y arm64 de la función y comparar el rendimiento y la latencia.

Para obtener más información acerca de cómo crear un entorno de código para la arquitectura arm64, incluida información específica del lenguaje para Java, Go, .NET y Python, consulte el repositorio de GitHub Introducción a Graviton de AWS.

Configuración de la arquitectura del conjunto de instrucciones

Puede configurar la arquitectura del conjunto de instrucciones para las funciones de Lambda nuevas y existentes mediante la consola de Lambda, los AWS SDK, la AWS Command Line Interface (AWS CLI) o AWS CloudFormation. Siga estos pasos para cambiar la arquitectura del conjunto de instrucciones para una función de Lambda existente desde la consola.

  1. Abra la página de Funciones en la consola de Lambda.

  2. Elija el nombre de la función para la que desea configurar la arquitectura del conjunto de instrucciones.

  3. En la pestaña Código principal, en la sección Configuración del tiempo de ejecución, seleccione Editar.

  4. En Arquitectura, elija la arquitectura del conjunto de instrucciones que quiere que utilice la función.

  5. Seleccione Guardar.