Performance- en resource-optimalisatie

Applicaties implementeren op AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Traag en duur

  • De app voelt traag bij piekverkeer
  • De Lambda-rekening schiet diezelfde maand omhoog
  • Afstellen maakt het sneller én goedkoper

Een snelheids- en kostmeter die aangeeft dat een functie zowel traag als duur is, wijzend op optimalisatie

Applicaties implementeren op AWS

Concurrency voor kosten vs cold start


Reserved: begrenzen en beschermen

  • Begrenst en garandeert capaciteit voor een functie
  • Goedkoopste controle, maar helpt niet tegen cold starts

Provisioned: betalen voor warmte

  • Houdt instances voorverwarmd, dus geen cold start
  • Kost meer; gebruik alleen waar latency echt telt
Applicaties implementeren op AWS

Juiste geheugenmaat via de duur-kostencurve

Duurte-tijdsduurcurve bij meer geheugen: duurte daalt en vlakt af, totale kosten vormen een U met de goedkoopste optimale geheugengrootte gemarkeerd

  • Meer geheugen = meer CPU = kortere duur
  • Kosten = geheugenprijs x duur
  • Het goedkoopste punt ligt vaak in het midden
  • Profiel op meerdere groottes en kies dan
Applicaties implementeren op AWS

Caching op applicatieniveau

  • Hergebruik werk binnen de execution context
  • Een warme Lambda behoudt globals tussen oproepen
  • Cache config, clients en hot lookups
  • ElastiCache voor een gedeelde cache over instances

Lambda-executioncontextcaching: globaal clientobject hergebruikt over warme oproepen, en ElastiCache-cluster deelt hot data over meerdere functie-instances

Applicaties implementeren op AWS

CloudFront-caching aan de edge

  • CloudFront: cache responses op edge-locaties
  • Bedien herhaalverzoeken zonder de backend te raken
  • Cachekeys kunnen headers, query strings, cookies bevatten
  • Statische en cachebare content schaalt gratis

CloudFront edge-caching: wereldbol met edge-locaties die gecachte responses dichtbij gebruikers serveren zonder de backend te raken, met cachekeyconfiguratie met headers en query strings

Applicaties implementeren op AWS

De juiste cachelaag kiezen

Drie gestapelde cachelagen: CloudFront aan de edge voor statische, breed gedeelde content, in-memory per-instance cache voor hot objects, en ElastiCache of DAX voor gedeelde high-frequency reads

  • Edge (CloudFront): statische, breed gedeelde content
  • Applicatie (in-memory): per-instance hot objects
  • Data (ElastiCache/DAX): gedeelde hot reads
  • Stapel ze; elke laag verlaagt andere kosten
Applicaties implementeren op AWS

Optimalisatie combineren

  • Kies geheugen via de duur-kostencurve
  • Voeg provisioned concurrency alleen toe waar latency telt
  • Cache op de edge-, app- en datalaag
  • Meten, één ding aanpassen, weer meten

Optimalisatiesamenvatting: duur-kostencurve voor geheugenbepaling, provisioned concurrency-beslissing, drie cachelagen-diagram en de iteratieve cyclus meten-veranderen-meten

Applicaties implementeren op AWS

Laten we oefenen!

Applicaties implementeren op AWS

Preparing Video For Download...