Architectures de jeux d'instructions Lambda (ARM/x86) - AWS Lambda

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Architectures de jeux d'instructions Lambda (ARM/x86)

L'architecture de l'ensemble des instructions d'une fonction Lambda détermine le type de processeur d'ordinateur que Lambda utilise pour exécuter la fonction. Lambda permet de choisir parmi plusieurs architectures de l'ensemble des instructions :

  • arm64 : architecture ARM 64 bits, pour le processeur Graviton2 AWS.

  • x86_64 : architecture 64 bits x86, pour les processeurs x86.

Note

L'architecture arm64 est disponible dans la plupart des Régions AWS. Pour plus d’informations, consultez Tarification d’AWS Lambda. Dans le tableau des prix de la mémoire, choisissez l'onglet Arm Price (Prix d'Arm), puis ouvrez la liste déroulante Region (Région) pour voir quels Régions AWS prennent en charge arm64 avec Lambda.

Pour voir un exemple de création d'une fonction avec l'architecture arm64, consultez Fonctions AWS Lambda alimentées par le processeur Graviton2 AWS.

Avantages liés à l'utilisation de l'architecture arm64

Les fonctions Lambda qui utilisent l'architecture arm64 (processeur Graviton2 AWS) peuvent atteindre un prix et des performances nettement supérieurs à ceux de la fonction équivalente exécutée sur l'architecture x86_64. Envisagez d'utiliser arm64 pour les applications de calcul intensif telles que le calcul haute performance, le codage vidéo et les applications de simulation.

Le processeur Graviton2 utilise le cœur Neoverse N1 et prend en charge Armv8.2 (y compris les extensions CRC et cryptographiques), ainsi que plusieurs autres extensions architecturales.

Graviton2 réduit le temps de lecture de la mémoire en fournissant un cache L2 plus important par vCPU, ce qui permet d'obtenir une meilleure performance de latence des backends Web et mobiles, des microservices et des systèmes de traitement de données. Graviton2 offre également des performances de chiffrement améliorées et prend en charge les ensembles des instructions qui améliorent la latence de l'inférence Machine Learning basée sur CPU.

Pour plus d'informations sur Graviton2 AWS, consultez Processeur Graviton AWS.

Exigences pour la migration vers l'architecture arm64

Lorsque vous sélectionnez une fonction Lambda à migrer vers l'architecture arm64, pour que la migration soit fluide, assurez-vous que la fonction répond aux exigences suivantes :

  • La fonction utilise actuellement une exécution Lambda Amazon Linux 2.

  • Le package de déploiement ne contient que des composants open source et le code source que vous contrôlez, ce qui vous permet d'effectuer les mises à jour nécessaires à la migration.

  • Si le code de la fonction inclut des dépendances tierces, chaque bibliothèque ou package fournit une version arm64.

Compatibilité des codes de fonction avec l'architecture arm64

Le code de la fonction Lambda doit être compatible avec l'architecture de l'ensemble des instructions de la fonction. Avant de migrer une fonction vers l'architecture arm64, veuillez noter les points suivants concernant le code de fonction actuel :

  • Si vous avez ajouté le code de la fonction à l'aide de l'éditeur de code intégré, le code s'exécute probablement sur l'une des architectures sans modification.

  • Si vous avez chargé le code de la fonction, vous devez charger un nouveau code compatible avec l'architecture cible.

  • Si la fonction utilise des couches, vous devez vérifier chaque couche afin de vous assurer qu'elle est compatible avec la nouvelle architecture. Si une couche n'est pas compatible, modifiez la fonction, afin de remplacer la version actuelle de la couche par une version de couche compatible.

  • Si la fonction utilise des extensions Lambda, vous devez vérifier chaque extension, afin de vous assurer de sa compatibilité avec la nouvelle architecture.

  • Si votre fonction utilise un type de package de déploiement de l'image de conteneur, vous devez créer une nouvelle image de conteneur compatible avec l'architecture de la fonction.

Comment migrer vers l'architecture arm64

Pour migrer une fonction Lambda vers l'architecture arm64, nous recommandons de procéder comme suit :

  1. Créez la liste des dépendances de l'application ou de la charge de travail. Les dépendances courantes comprennent :

    • Toutes les bibliothèques et les packages utilisés par la fonction.

    • Les outils que vous utilisez pour créer, déployer et tester la fonction, tels que les compilateurs, les suites de tests, les pipelines d'intégration continue et de livraison continue (CI/CD), les outils d'approvisionnement et les scripts.

    • Les extensions Lambda et les outils tiers que vous utilisez pour contrôler la fonction en production.

  2. Pour chacune des dépendances, vérifiez la version, puis vérifiez si les versions arm64 sont disponibles.

  3. Créez un environnement pour migrer l'application.

  4. Amorcez l'application.

  5. Testez et déboguez l'application.

  6. Testez la performance de la fonction arm64. Comparez la performance avec celle de la version x86_64.

  7. Mettez à jour le pipeline d'infrastructure pour prendre en charge les fonctions Lambda arm64.

  8. Établissez le déploiement vers la production.

    Par exemple, utilisez la configuration du routage d'alias pour fractionner le trafic entre les versions x86 et arm64 de la fonction et comparez les performances et la latence.

Pour plus d'informations sur la création d'un environnement de code pour l'architecture arm64, y compris des informations spécifiques au langage pour Java, Go, .NET et Python, consultez le référentiel Getting started with AWS Graviton. GitHub

Configuration de l'architecture de l'ensemble des instructions

Vous pouvez configurer l'architecture de l'ensemble des instructions pour les fonctions Lambda nouvelles et existantes à l'aide de la console Lambda, des kits SDK AWS, d'AWS Command Line Interface (AWS CLI) ou d'AWS CloudFormation. Procédez comme suit pour modifier l'architecture de l'ensemble des instructions d'une fonction Lambda existante à partir de la console.

  1. Ouvrez la page Functions (Fonctions) de la console Lambda.

  2. Choisissez le nom de la fonction pour laquelle vous voulez configurer l'architecture de l'ensemble des instructions.

  3. Dans l'onglet principal Code, pour la section Paramètres d'exécution, choisissez Modifier.

  4. Sous Architecture, choisissez l'architecture de l'ensemble des instructions que votre fonction doit utiliser.

  5. Choisissez Enregistrer.

Note

Tous les environnements d'exécution Amazon Linux 2 prennent en charge les architectures de processeurs x86_64 et ARM.

Les exécutions qui n'utilisent pas Amazon Linux 2, tels que Go 1.x, ne prennent pas en charge l'architecture arm64. Pour utiliser l'architecture arm64 avec Go 1.x, vous pouvez exécuter votre fonction dans une exécution provided.al2. Pour plus d'informations, consultez les instructions de déploiement des packages .zip et des images de conteneurs.