Optimisation des performances et des ressources

Déployer des applications sur AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Lente et coûteuse

  • L'appli ralenti lors des pointes 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 à la fois lente et coûteuse, pointant vers l'optimisation

Déployer des applications sur AWS

Concurrence : coût vs démarrage à froid


Réservée : plafonner et protéger

  • Plafonne et garantit la capacité d'une fonction
  • Contrôle le moins cher, mais n'élimine pas les démarrages à froid

Approvisionnée : payer pour la « chaleur »

  • Garde des instances préchauffées, donc pas de démarrage à froid
  • 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 selon la mémoire : 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 de la mémoire x durée
  • Le point le moins cher est souvent au milieu
  • Dressez un profil à plusieurs tailles, puis choisissez
Déployer des applications sur AWS

Mise en cache au niveau applicatif

  • Réutiliser le travail dans le contexte d'exécution
  • Une Lambda « chaude » conserve les variables globales entre appels
  • Mettre en cache config, clients et recherches fréquentes
  • ElastiCache pour un cache partagé entre instances

Mise en cache du contexte d'exécution Lambda : objet client global réutilisé entre appels à chaud, et grappe ElastiCache partageant les 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 aux emplacements périphériques
  • Servir les requêtes répétées sans toucher l'arrière-plan
  • Les clés de cache peuvent inclure en-têtes, chaînes de requête, témoins
  • Le contenu statique et en cache passe à l'échelle sans frais

Mise en cache CloudFront en périphérie : globe avec emplacements périphériques servant des réponses en cache à des utilisateurs proches sans toucher l'arrière-plan, avec configuration de clé de cache montrant en-têtes et chaînes de requête

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 contenu 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

Réunir les optimisations

  • Dimensionner la mémoire avec la courbe durée-coût
  • Ajouter la concurrence approvisionnée seulement où la latence compte
  • Mettre en cache aux couches périphérie, appli et données
  • Mesurer, changer un élément, mesurer encore

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

Déployer des applications sur AWS

Passons à la pratique !

Déployer des applications sur AWS

Preparing Video For Download...