Caractéristiques d'AWS Lambda

Pourquoi choisir AWS Lambda ?

AWS Lambda est un service de calcul sans serveur qui exécute votre code en réponse à des événements et gère automatiquement les ressources de calcul sous-jacentes en votre nom. Ces événements peuvent inclure des changements d'état ou une mise à jour, comme un utilisateur plaçant un élément dans un panier sur un site web de e-commerce. Vous pouvez utiliser AWS Lambda pour étendre les autres services AWS avec une logique personnalisée ou créer vos propres services backend qui fonctionnent en bénéficiant de la mise à l’échelle, des performances et de la sécurité AWS. AWS Lambda exécute automatiquement un code en réponse à plusieurs événements, tels que les requêtes HTTP via Amazon API Gateway, les modifications d’objets dans des compartiments Amazon Simple Storage Service (Amazon S3), les mises à jour de tables dans Amazon DynamoDB et les transitions d’états dans AWS Step Functions.

Lambda exécute votre code sur une infrastructure de calcul à haute disponibilité et s'occupe de toute l'administration de vos ressources de calcul. Cette tâche comprend la maintenance des serveurs et des systèmes d'exploitation, l'approvisionnement en capacité et la scalabilité automatique, le déploiement du code et des correctifs de sécurité, ainsi que la surveillance et la journalisation du code. Il vous suffit de fournir le code.

Fonctions clés du produit

AWS Lambda vous permet d'ajouter une logique personnalisée aux ressources AWS telles que les compartiments Amazon S3 et les tables Amazon DynamoDB, ce qui facilite l'application du calcul aux données lorsqu'elles sont saisies ou se déplacent dans le cloud.

Il est facile de démarrer avec AWS Lambda. Vous créez d'abord votre fonction en chargeant votre code (ou en le créant directement dans la console Lambda) et en choisissant la mémoire, le délai et le rôle AWS Identity and Access Management (IAM). Ensuite, vous spécifiez la ressource AWS pour déclencher la fonction, qui peut être un compartiment Amazon S3, une table Amazon DynamoDB ou un flux Amazon Kinesis. Lorsque la ressource change, Lambda exécute votre fonction en lançant et en gérant les ressources de calcul selon les besoins pour suivre les demandes entrantes.

Vous pouvez utiliser AWS Lambda pour créer des services backend d’applications, qui sont déclenchés à la demande à l'aide de l'interface de programme d’applications (API) Lambda ou de points de terminaison d’API personnalisés créés à l'aide d'Amazon API Gateway. Lambda traite les événements personnalisés au lieu de les administrer sur le client, en vous permettant d’éviter les variantes de plateformes client, réduire la consommation de la batterie et faciliter les mises à jour.

Avec AWS Lambda, inutile d'apprendre un nouveau langage, outil ou cadre. Vous pouvez utiliser n'importe quelle bibliothèque tierce et même des bibliothèques natives. Vous pouvez également empaqueter n'importe quel code (cadres, SDK, bibliothèques et bien plus encore) en tant que couche Lambda, et gérer et partager facilement celui-ci dans plusieurs fonctions. Lambda prend en charge le code issu de Java, Go, PowerShell, Node.js, C#, Python et Ruby et fournit une API d'environnement d'exécution vous permettant d'utiliser n'importe quels langages de programmation supplémentaires pour éditer vos fonctions.

AWS Lambda gère toute l'infrastructure pour exécuter votre code sur une infrastructure hautement disponible et tolérante aux pannes, ce qui vous permet de vous concentrer sur la création de services backend différenciés. En utilisant Lambda, vous n'avez jamais à mettre à jour le système d'exploitation (OS) sous-jacent lors de la publication d'un correctif ni à vous soucier du redimensionnement ou de l'ajout de nouveaux serveurs lorsque votre utilisation s'accroît. AWS Lambda déploie votre code, assure l'administration, de la maintenance et des correctifs de sécurité en toute transparence et fournit une journalisation intégrée et une surveillance via Amazon CloudWatch.

AWS Lambda maintient la capacité de calcul dans plusieurs zones de disponibilité (AZ) au sein de chaque région AWS. Vous bénéficiez ainsi d'une protection renforcée pour votre code face aux défaillances d'ordinateurs ou de l'ensemble de votre centre de données. AWS Lambda et les fonctions s'exécutant sur le service offrent des performances opérationnelles prévisibles et fiables. AWS Lambda est conçu pour fournir une haute disponibilité, à la fois pour le service lui-même et pour les fonctions qu'il gère. Il n'y a ni fenêtres de maintenance ni arrêts programmés.

AWS Lambda prend en charge l’empaquetage et le déploiement de fonctions sous forme d'images de conteneur, ce qui permet aux clients de créer facilement des applications basées sur Lambda à l'aide d'outils, de flux et de dépendances d'image de conteneur familiers. Les clients bénéficient également de la simplicité opérationnelle de Lambda, de la scalabilité automatique avec des temps de démarrage inférieurs à la seconde, de la haute disponibilité, de son modèle de facturation à l'usage et des intégrations natives avec plus de 200 services AWS et applications de logiciel-service (SaaS). Les entreprises clientes peuvent utiliser un ensemble cohérent d'outils avec leurs applications Lambda et applications de conteneurs simplifiant ainsi les exigences de gouvernance centrale telles que l'analyse de sécurité et la signature d'images.

AWS Lambda appelle votre code uniquement lorsque cela est nécessaire et se met à l’échelle automatiquement pour prendre en charge la fréquence des demandes entrantes sans configuration manuelle. Il n'existe aucune limite quant au nombre de demandes que votre code peut gérer. AWS Lambda exécute généralement votre code dans les quelques millisecondes qui suivent un événement. Étant donné que Lambda se met à l’échelle automatiquement, les performances restent constamment élevées lorsque la fréquence des événements augmente. Puisque votre code est sans état, Lambda peut démarrer autant d'instances que nécessaire sans longs délais de déploiement et de configuration.

Utilisez le proxy Amazon RDS pour tirer parti des groupes de connexions entièrement gérés pour les bases de données relationnelles. RDS Proxy gère efficacement des milliers de connexions simultanées à des bases de données relationnelles, ce qui facilite la création d'applications sans serveur hautement évolutives, sécurisées et basées sur Lambda qui interagissent avec des bases de données relationnelles. RDS Proxy offre actuellement un support pour MySQL et Aurora. Vous pouvez utiliser RDS Proxy pour vos applications sans serveur via la console Amazon RDS ou la console AWS Lambda.

En ayant recours à la simultanéité allouée, vous contrôlez mieux la performance de votre application sans serveur. Lorsqu'elle est activée, la simultanéité allouée conserve les fonctions initialisées et hyperprêtes à réagir en millisecondes à deux chiffres. La simultanéité allouée est idéale pour toute application AWS Lambda nécessitant un plus grand contrôle sur le temps de démarrage des fonctions. Configurez et ajustez facilement la concurrence nécessaire à votre application. Augmentez, diminuez ou arrêtez complètement le système en fonction de la demande. Tirez parti de la simultanéité allouée pour obtenir des performances constantes pour les applications sensibles à la latence sans modifier votre code ni gérer les ressources de calcul.

Grâce à Amazon Elastic File System (EFS) pour AWS Lambda, vous pouvez lire, écrire et conserver de larges volumes de données en toute sécurité, à une faible latence et à n'importe quelle échelle. Vous n'avez pas à écrire de code, ni à télécharger des données vers un stockage temporaire afin de les traitées. Cela vous permet de gagner du temps et simplifie le code, pour que vous puissiez vous concentrer sur votre logique métier. EFS for Lambda est idéal pour toute une série de cas d'utilisation, notamment le traitement ou la sauvegarde de grandes quantités de données, et le chargement de grands fichiers ou modèles de référence. Vous pouvez également partager des fichiers entre des instances sans serveur ou des applications basées sur des conteneurs, et même exécuter une inférence de machine learning (ML) en utilisant EFS for AWS Lambda.

Grâce à Lambda@Edge, AWS Lambda peut exécuter votre code dans des emplacements AWS mondiaux en réponse aux événements Amazon CloudFront, tels que les demandes de contenu adressées aux serveurs et utilisateurs d'origine ou provenant de ceux-ci. Vous pouvez ainsi fournir plus facilement du contenu plus riche et personnalisé à vos utilisateurs finaux, le tout avec une faible latence. 

Créez des flux AWS Step Functions pour coordonner plusieurs fonctions AWS Lambda pour des tâches complexes ou de longue durée. Step Functions vous permet de définir des flux pour déclencher une collection de fonctions Lambda grâce à des étapes séquentielles, parallèles, de filiale et de gestion des erreurs. Avec Step Functions et Lambda, vous pouvez créer des processus à états et au long cours pour les applications et les backends.

Le kit de développement logiciel (SDK) intégré à AWS Lambda s'intègre à AWS Identity and Access Management (IAM) pour garantir un accès sécurisé du code aux autres services AWS. Par défaut, AWS Lambda exécute votre code dans Amazon Virtual Private Cloud (VPC). Si vous le souhaitez, vous pouvez configurer l'accès aux ressources AWS Lambda derrière votre propre VPC afin d'exploiter les groupes de sécurité personnalisés et les listes de contrôle d'accès au réseau. Ainsi, la fonction Lambda peut accéder de manière sécurisée à vos ressources au sein d'un VPC. AWS Lambda est conforme à SOC, HIPAA, PCI et ISO. Pour en savoir plus sur la préparation à la conformité et à la certification Lambda, consultez l'intégralité des services concernés.

La signature de code pour AWS Lambda vous permet de vérifier que seul le code non modifié provenant de développeurs approuvés est déployé dans vos fonctions Lambda. Il vous suffit de créer des artefacts de code signé numériquement et de configurer vos fonctions Lambda pour vérifier les signatures lors du déploiement. Elle augmente la rapidité et l'agilité du développement de votre application, même au sein de grandes équipes, tout en appliquant des normes de sécurité élevées.

Avec AWS Lambda, vous payez la durée d'exécution plutôt que par unité de serveur. Lorsque vous utilisez les fonctions Lambda, vous ne payez que les demandes traitées et le temps de calcul requis pour exécuter votre code. La facturation est mesurée par incréments d'une milliseconde, ce qui permet une scalabilité automatique, facile et rentable, de quelques demandes par jour à des milliers par seconde. Grâce à la simultanéité allouée, vous payez pour le montant de la simultanéité que vous configurez et la durée de sa configuration. Lorsque la simultanéité allouée est activée et que votre fonction est exécutée, vous payez également pour les demandes et la durée d'exécution. Pour en savoir plus sur la tarification, consultez la page de la tarification d'AWS Lambda.

Choisissez la taille de mémoire que vous souhaitez allouer à vos fonctions, et AWS Lambda alloue proportionnellement le traitement CPU, la bande passante réseau et les Entrées/Sorties (I/O) du disque.

Les extensions AWS Lambda permettent une intégration facile avec vos outils préférés de surveillance, d'observabilité, de sécurité et de gouvernance. Lambda appelle votre fonction dans un environnement d'exécution, qui assure une exécution sécurisée et isolée où le code de votre fonction est exécuté. Les extensions Lambda s'exécutent dans l'environnement d'exécution de Lambda, aux côtés de votre code de fonction. Les extensions Lambda peuvent utiliser l'API AWS Lambda Telemetry pour capturer des informations de diagnostic précises, telles que des journaux, des métriques et des traces, directement à partir de Lambda, et les envoyer à la destination de votre choix. Vous pouvez également utiliser des extensions pour intégrer vos agents de sécurité préférés à Lambda, le tout sans surcharge opérationnelle et avec un impact minimal sur les performances de vos fonctions.

Les fonctions AWS Lambda qui s'exécutent sur Graviton2, à l'aide de l'architecture de processeurs basée sur Arm et conçue par AWS, fournissent jusqu'à 34 % de rapport prix/performances en plus par rapport aux fonctions qui s'exécutent sur des processeurs x86. Cela s'applique à une variété d'applications sans serveur, par exemple les backends web et mobiles, les données et le traitement de flux. Avec une latence réduite, jusqu'à 19 % de performances en plus, 20 % de réduction des coûts et le meilleur ratio puissance/efficacité actuellement disponible chez AWS, les fonctions Graviton2 peuvent servir à alimenter les applications sans serveur stratégiques.

AWS Lambda fournit des fonctionnalités de surveillance intégrées en capturant et en envoyant automatiquement des journaux, des mesures et des traces aux services de surveillance et d'observabilité AWS tels qu'Amazon CloudWatch et AWS X-Ray. Lambda propose également des fonctionnalités de surveillance avancées telles que Live Tail qui vous permet de visualiser et d'analyser les journaux en temps réel, des contrôles de journalisation avancés qui vous permettent de capturer des journaux de manière native au format structuré JSON, de contrôler le filtrage au niveau des journaux sans modifier le code et de personnaliser le groupe de journaux CloudWatch auquel Lambda envoie les journaux. Avec Application Signals, Lambda propose un outil de surveillance des performances des applications (APM) prêt à l'emploi pour suivre le débit, la disponibilité, la latence, les défaillances et les erreurs dans vos applications sans serveur. Lambda Insights capture automatiquement des mesures détaillées, notamment l'utilisation de la mémoire, du processeur et du réseau, offrant ainsi des informations plus détaillées sur les performances de votre fonction Lambda. En outre, Lambda permet une intégration fluide avec des outils de surveillance tiers via les extensions Lambda, ce qui facilite l'utilisation de vos outils préférés pour surveiller et dépanner vos applications sans serveur.