Le serverless en bref

Le serverless ne signifie pas « sans serveur » mais « sans gestion de serveur ». Vous déployez du code, le cloud provider gère l’infrastructure, le scaling et la disponibilité.

Chez Lueur Externe, nous utilisons AWS Lambda pour les fonctions backend de nos projets, comme le handler de formulaire de contact de ce site.

AWS Lambda : les fondamentaux

Comment ça fonctionne

  1. Vous déployez une fonction (code + dépendances)
  2. Un événement déclenche la fonction (requête HTTP, message SQS, etc.)
  3. AWS provisionne un environnement d’exécution
  4. Votre code s’exécute
  5. L’environnement est libéré après inactivité

Exemple concret

// Handler de formulaire de contact
import { APIGatewayProxyEvent, APIGatewayProxyResult } from "aws-lambda";
import { SESClient, SendEmailCommand } from "@aws-sdk/client-ses";

const ses = new SESClient({ region: "eu-west-1" });

export async function handler(event: APIGatewayProxyEvent): Promise<APIGatewayProxyResult> {
  const body = JSON.parse(event.body || "{}");
  
  await ses.send(new SendEmailCommand({
    Source: "noreply@lueurexterne.com",
    Destination: { ToAddresses: ["contact@lueurexterne.com"] },
    Message: {
      Subject: { Data: `Contact: ${body.subject}` },
      Body: { Text: { Data: `De: ${body.name}\nEmail: ${body.email}\n\n${body.message}` } }
    }
  }));

  return {
    statusCode: 200,
    body: JSON.stringify({ success: true })
  };
}

Cas d’usage pour le web

  • Formulaires de contact : traitement et envoi d’emails
  • API backend : endpoints REST ou GraphQL
  • Traitement d’images : redimensionnement à la volée
  • Webhooks : réception et traitement d’événements
  • Tâches planifiées : cron jobs (monitoring SEO, génération de contenu)

Avantages

  • Pas de serveur à gérer : focus sur le code
  • Scaling automatique : de 0 à des milliers de requêtes simultanées
  • Paiement à l’usage : facturé par exécution (pas de coût au repos)
  • Haute disponibilité : multi-AZ par défaut

Limites

  • Cold start : latence au premier appel (100-500 ms)
  • Durée d’exécution : 15 minutes maximum
  • Taille du package : 250 Mo décompressé
  • État : fonctions stateless (pas de stockage local persistant)
  • Debugging : plus complexe qu’un serveur traditionnel

Coûts

AWS Lambda offre un free tier généreux :

  • 1 million de requêtes gratuites par mois
  • 400 000 Go-secondes de compute gratuit

Au-delà : 0,20 $ par million de requêtes + 0,0000166667 $ par Go-seconde.

Pour un site comme celui-ci, le coût Lambda est quasi nul.

Bonnes pratiques

  • Minimisez la taille du package (tree-shaking, dépendances légères)
  • Réutilisez les connexions (SDK clients en dehors du handler)
  • Utilisez des couches (layers) pour les dépendances partagées
  • Configurez la mémoire de manière optimale (128-512 Mo pour la plupart des cas)
  • Implémentez un retry avec backoff exponentiel

Lueur Externe conçoit des architectures serverless optimisées pour ses clients.

Conclusion

Le serverless est idéal pour les fonctions backend des sites web : formulaires, API, tâches planifiées. Il élimine la gestion d’infrastructure et réduit les coûts. Contactez Lueur Externe pour votre architecture serverless.