Dans le cadre d'une série d'annonces, présentant les nouveautés apportées à son infrastructure cloud AWS, depuis la semaine dernière, Amazon a annoncé mardi que AWS Lambda fait désormais passer la granularité de facturation pour la durée de la fonction Lambda de 100 ms à 1 ms. Le leader mondial des services de cloud computing estime que ce changement devrait permettre de réduire le prix de la plupart des fonctions Lambda, surtout pour les fonctions de courte durée. Leur durée de calcul sera facturée par incréments de 1 ms au lieu d'être arrondie à l'incrément de 100 ms le plus proche par appel.AWS Lambda est une plateforme d'informatique sans serveur, pilotée par des événements, fournie par Amazon dans le cadre de son offre cloud Amazon Web Services. Il s'agit d'un service informatique qui exécute un code en réponse à des événements et gère automatiquement les ressources informatiques requises par ce code. Il a été introduit en novembre 2014. L'objectif de AWS Lambda, par rapport à AWS EC2 (Elastic Compute Cloud), est de simplifier la construction d'applications à la demande plus petites, qui répondent aux événements et aux nouvelles informations.
AWS vise à lancer une instance Lambda dans les millisecondes suivant un événement. Node.js, Python, Java, Go, Ruby, et C# (via le noyau .NET) sont officiellement pris en charge depuis 2018. Un support d'exécution personnalisé a ensuite été ajouté à AWS Lambda, donnant aux développeurs la possibilité d'exécuter un Lambda dans le langage de leur choix. AWS Lambda supporte l'exécution sécurisée d'exécutables Linux natifs en faisant appel à un runtime pris en charge, tel que Node.js. Par exemple, le code Haskell peut être exécuté en Lambda. Mardi, AWS Lambda a annoncé l'arrivée de la tarification à la milliseconde, dont en voici quelques détails.
Fonction Lambda : qu'est-ce que c'est ?
Une fonction Lambda est un logiciel d'application qui s'exécute dans un conteneur de courte durée pour répondre à une demande ou un événement unique. Bien que l'utilisation du terme "fonction" puisse suggérer que le code doit être constitué d'une seule fonction, les fonctions Lambda sont des processus réguliers qui peuvent aussi, par exemple, engendrer des processus enfants. Elles doivent être conformes à une interface spécifique, mais peuvent aussi contenir un code arbitraire. Chaque fonction Lambda peut être "dimensionnée" en définissant le paramètre de taille mémoire maximale (Go) dans la console Lambda ou en utilisant l'API.
Cette valeur affecte également les parts de CPU allouées à la fonction lorsqu'elle est exécutée, mais d'une manière qui n'est pas actuellement divulguée par AWS. En outre, Lambda permet également de limiter la durée maximale d'exécution d'une fonction (en secondes), afin d'éviter que les fonctions en fugue ou en suspens n'entraînent une augmentation des coûts. Étant donné que les fonctions Lambda ne s'exécutent que lorsqu'une demande doit être traitée, elles n'entraînent des frais que lorsqu'elles sont utilisées.
Le modèle général de tarification adopté par les fournisseurs FaaS (Function as a Service) sans serveur est basé sur deux critères par appel de fonction :
- la taille maximale de la mémoire (Go) : il ne s'agit pas de la mémoire réellement utilisée par la fonction, mais plutôt du paramètre de taille maximale de la mémoire dans la configuration de la fonction Lambda. Si vous réduisez l'utilisation de la mémoire de votre fonction, mais que vous n'ajustez pas ce paramètre de configuration en conséquence, vous ne constaterez pas de réduction de coût par rapport à l'utilisation réduite de la mémoire ;
- le temps d'exécution de la fonction (secondes) : le temps réel d'horloge (murale) que l'appel de la fonction a pris pour s'exécuter. Si une fonction Lambda effectue un appel réseau sortant et reste inactive en attendant le résultat, le temps passé à être inactive est quand même compté dans le temps d'exécution de la fonction, c'est-à-dire que ce n'est pas une mesure de l'utilisation du CPU.
Pour chaque invocation de fonction, ces deux valeurs sont multipliées ensemble pour produire un nombre avec l'unité Go-sec (Go-secondes). Après avoir tenu compte d'une allocation mensuelle de Go-sec gratuite du niveau gratuit, le coût de calcul facturable est le total de Go-sec pour toutes les invocations de fonction, multiplié par un taux de Go-sec fixe. Ce taux fixe est actuellement de 0.00001667 dollar pour AWS Lambda.
AWS Lambda : comment fonctionne la tarification des fonctions ?
Pour beaucoup, l'introduction de la tarification à la milliseconde dans AWS Lambda est un changement majeur dans l'industrie qui modifie fondamentalement le coût de fonctionnement de nombreuses applications sans serveur. Comme mentionné ci-dessus, la tarification Lambda comporte deux dimensions : les demandes et la durée. Une demande est faite chaque fois qu'une fonction est appelée et elle est facturée 0,20 dollar par million de demandes, quelle que soit la taille de la fonction. La durée est calculée comme un facteur de temps et d'utilisation de la mémoire à 0,0000166667 dollar par Go-sec.
Il existe également une allocation gratuite "Free Tier" d'un million de requêtes et jusqu'à 400 000 Go/s de calcul chaque mois. C'est-à-dire que vous n'êtes pas facturé pour toute utilisation de Lambda inférieure à ce niveau. Toutefois, notez que, comme le Go-sec est une unité composite, il peut être difficile de raisonner à son sujet. Par exemple, chaque invocation peut devoir démarrer un runtime de langage et charger des bibliothèques tierces avant d'arriver au code utilisateur, ce qui augmente le runtime facturable de la fonction pour chaque invocation.
Avant l'annonce des changements mardi, la durée minimale de facturation était de 100 ms (millisecondes) et la durée facturable était toujours...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.