- Publié le
Qu’est-ce qu’AWS Lambda ? Le calcul serverless pour les applications
- Auteurs
Qu’est-ce qu’AWS Lambda ? Le calcul serverless pour les applications
Exécuter du code backend implique traditionnellement de provisionner des serveurs, d’adapter les ressources à la charge et de gérer la disponibilité. Avec AWS Lambda, vous pouvez exécuter du code sans gérer d’infrastructure, en payant uniquement ce que vous utilisez.
Qu’est-ce qu’AWS Lambda ?
AWS Lambda est un service de calcul serverless d’Amazon Web Services. Au lieu d’exécuter des applications sur des serveurs dédiés, vous écrivez des fonctions qui s’exécutent en réponse à des événements tels que :
- Des requêtes HTTP via Amazon API Gateway
- Des téléversements de fichiers dans Amazon S3
- Des mises à jour de bases de données dans Amazon DynamoDB
- Des tâches planifiées (tâches cron) via Amazon EventBridge ou Amazon CloudWatch Events
Votre code s’exécute dans des conteneurs éphémères entièrement gérés par AWS. Vous fournissez simplement le code et la configuration de la fonction. Lambda s’occupe du reste.
Pourquoi utiliser AWS Lambda ?
- Aucune gestion de serveurs → Aucun provisionnement, correctif ou ajustement de capacité des serveurs à effectuer.
- Mise à l’échelle automatique → Exécute instantanément autant d’instances que nécessaire, d’une requête à des milliers par seconde.
- Paiement à l’usage → Seuls le temps de calcul en millisecondes et les requêtes sont facturés, pas les périodes d’inactivité.
- Prise en charge de plusieurs langages et environnements → Node.js, Python, Java, Go, Ruby, .NET et environnements d’exécution personnalisés.
- Intégration facile → Fonctionne avec Amazon S3, Amazon DynamoDB, Amazon SNS, Amazon API Gateway et les autres services AWS.
- Haute disponibilité intégrée → S’exécute dans plusieurs zones de disponibilité pour assurer la tolérance aux pannes.
Cas d’utilisation courants
- API web → Associez Lambda à Amazon API Gateway pour créer des API REST ou GraphQL serverless.
- Traitement de fichiers → Traitez automatiquement des images, vidéos ou documents après leur téléversement dans Amazon S3.
- Tâches planifiées → Remplacez les serveurs cron par Amazon CloudWatch Events ou Amazon EventBridge pour exécuter des tâches périodiques.
- Chatbots et microservices → Exécutez à grande échelle une logique backend légère et événementielle avec des services comme Amazon SNS ou Amazon SQS.
AWS Lambda et les serveurs traditionnels
- Serveurs traditionnels → Nécessitent du provisionnement, de la supervision et une adaptation aux pics de charge avec des services comme Amazon EC2.
- AWS Lambda → Entièrement géré, ajuste automatiquement sa capacité et facture uniquement le temps d’exécution.
Limites et points à considérer
- Démarrages à froid → Les fonctions qui n’ont pas été appelées récemment peuvent subir un bref délai, appelé « démarrage à froid », lorsque AWS lance un nouveau conteneur.
- Délais d’exécution → Chaque appel dispose d’une durée maximale d’exécution, actuellement 15 minutes. Les tâches longues peuvent nécessiter un autre service comme Amazon ECS ou Amazon EC2.
- Limites de mémoire et de CPU → La mémoire allouée est plafonnée à quelques Go, actuellement 10 Go, avec une puissance CPU proportionnelle à la mémoire. Les calculs lourds peuvent atteindre ces limites.
- Stockage éphémère → Le stockage
/tmpest limité à 512 Mo par défaut et extensible à 10 Go. Les gros fichiers temporaires nécessitent donc un stockage externe comme Amazon S3 ou Amazon EFS. - Dépendance au fournisseur → Une intégration poussée aux services AWS peut compliquer la migration vers un autre fournisseur cloud.
- Contraintes réseau → L’accès aux ressources d’un VPC complexifie la configuration et peut augmenter la latence des démarrages à froid.
- Complexité du débogage → Le débogage local et le traçage peuvent être plus difficiles que dans un environnement serveur traditionnel.
Conclusion
AWS Lambda permet aux développeurs de créer des applications événementielles sans gérer de serveurs. Que vous ayez besoin d’un backend rapide pour une application web, d’un traitement de fichiers en temps réel ou d’un pipeline de données, Lambda fournit du calcul à la demande qui s’adapte automatiquement à la charge.