Dans cet article technique, nous allons voir comment transformer votre application Next.js en fonction AWS Lambda à l’aide de Serverless Framework. Vous bénéficierez d’une mise à l’échelle quasi instantanée, de coûts maîtrisés et d’une maintenance simplifiée.

prérequis

  • Node.js v16+ et NPM ou Yarn
  • Un compte AWS avec des droits IAM pour déployer des fonctions Lambda
  • Serverless Framework installé globalement : npm install -g serverless
  • Votre code Next.js (voir Technologie Next.js)
  • Configuration AWS CLI configurée (aws configure)

étape 1 : initialiser le projet next.js

// création d'un nouveau projet
npx create-next-app my-serverless-app
cd my-serverless-app

// installer le plugin serverless
npm install --save-dev serverless serverless-nextjs-plugin

étape 2 : configurer serverless framework

Créez un fichier serverless.yml à la racine :

service: my-next-serverless

provider:
  name: aws
  runtime: nodejs16.x
  region: eu-west-1
  memorySize: 512
  timeout: 10

plugins:
  - serverless-nextjs-plugin

functions:
  nextApp:
    handler: handler.render

Le plugin serverless-nextjs-plugin détecte automatiquement vos pages et génère les endpoints API/SSR.

étape 3 : déployer sur aws lambda

  1. Connexion AWS (profil par défaut) :
export AWS_PROFILE=default
  1. Déploiement :
serverless deploy --stage prod

Vous verrez en sortie l’URL de votre application serverless :

https://xyz123.execute-api.eu-west-1.amazonaws.com/prod

bonnes pratiques et optimisation

  • Gestion du cold start : passez memorySize à 512 Mo ou plus pour réduire la latence (cold start ~200 ms sur 512 Mo vs ~400 ms sur 128 Mo).
  • Mise en cache : utilisez CloudFront pour mettre en cache vos pages statiques et allèger Lambda.
  • Monitoring : activez les logs CloudWatch et créez des alarmes sur la durée d’exécution et le taux d’erreur.
  • CI/CD : intégrez serverless deploy dans GitHub Actions ou Jenkins pour un pipeline automatisé.

exemple de métriques observées

Configuration Cold start Coût mensuel estimé
128 Mo / timeout 10 s 380 ms ≈ 5 € pour 1 M d’invocations
512 Mo / timeout 10 s 210 ms ≈ 12 € pour 1 M d’invocations

conclusion

En quelques commandes, vous obtenez une application Next.js scalable et économique sur AWS. Pour aller plus loin, pilotez vos déploiements avec un pipeline CI/CD ou explorez nos offres de développement d’application web chez Novane. N’hésitez pas à nous contacter pour un accompagnement sur mesure.