Optimisation des performances et des ressources

Déployer des applications sur AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Lent et coûteux

  • L'application ralentit lors des pics de trafic
  • La facture Lambda grimpe le même mois
  • Un réglage la rend plus rapide et moins chère

Jauge vitesse/coût montrant une fonction lente et coûteuse, pointant vers l'optimisation

Déployer des applications sur AWS

Concurrence : coût vs cold start


Réservée : plafonner et protéger

  • Plafonne et garantit la capacité d'une fonction
  • Contrôle le moins cher, mais n'agit pas sur les cold starts

Provisionnée : payer pour la chaleur

  • Garde des instances préchauffées, donc pas de cold start
  • Coûte plus cher ; à utiliser seulement si la latence compte vraiment
Déployer des applications sur AWS

Dimensionner la mémoire avec la courbe durée–coût

Courbe durée/coût quand la mémoire augmente : la durée chute puis se stabilise ; le coût total forme un U avec la mémoire optimale la moins chère mise en évidence

  • Plus de mémoire = plus de CPU = durée plus courte
  • Coût = prix mémoire × durée
  • Le point le moins cher est souvent au milieu
  • Profilez à plusieurs tailles, puis choisissez
Déployer des applications sur AWS

Cache au niveau applicatif

  • Réutiliser le travail dans le contexte d'exécution
  • Une Lambda « chaude » garde les globaux entre invocations
  • Mettre en cache config, clients et accès fréquents
  • ElastiCache pour un cache partagé entre instances

Mise en cache du contexte d'exécution Lambda : objet client global réutilisé entre invocations chaudes, et cluster ElastiCache partageant des données fréquentes entre plusieurs instances de fonction

Déployer des applications sur AWS

Mise en cache CloudFront en périphérie

  • CloudFront : mettre en cache les réponses en périphérie
  • Servir les requêtes répétées sans solliciter le backend
  • Les clés de cache peuvent inclure headers, query strings, cookies
  • Le contenu statique et cachable passe à l'échelle sans coût

Mise en cache CloudFront en périphérie : globe avec points de présence servant des réponses en cache aux utilisateurs proches sans atteindre le backend, avec configuration de clé de cache montrant headers et query strings

Déployer des applications sur AWS

Choisir la bonne couche de cache

Trois couches de cache empilées : CloudFront en périphérie pour le statique largement partagé, cache en mémoire par instance pour les objets « chauds », et ElastiCache ou DAX pour des lectures partagées à haute fréquence

  • Périphérie (CloudFront) : contenu statique largement partagé
  • Application (en mémoire) : objets « chauds » par instance
  • Données (ElastiCache/DAX) : lectures « chaudes » partagées
  • Superposez-les ; chacune réduit un coût différent
Déployer des applications sur AWS

Assembler l'optimisation

  • Dimensionnez la mémoire via la courbe durée–coût
  • Ajoutez la concurrence provisionnée seulement si la latence compte
  • Mettez en cache aux couches périphérie, app et données
  • Mesurez, changez un élément, mesurez à nouveau

Résumé de l'optimisation : courbe durée–coût pour la mémoire, décision sur la concurrence provisionnée, schéma des trois couches de cache, et cycle mesurer–changer–mesurer

Déployer des applications sur AWS

Passons à la pratique !

Déployer des applications sur AWS

Preparing Video For Download...