AWS Lambda voor productie configureren

Applicaties implementeren op AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Het werkte in test

  • De functie haalde alle tests
  • In productie treedt time-out op en wordt gethrottled
  • De code was goed; de configuratie niet

Een serverless-functie die testen doorstond maar in productie moeite heeft, terwijl geheugen- en time-outknoppen worden afgesteld

Applicaties implementeren op AWS

Lambda-configuratie die telt in productie

Centraal Lambda-logo met vier uitwaaierende productieconfiguraties: Memory met CPU-schaal, Timeout met klok, Ephemeral Storage en Concurrency met parallelle instanties

  • Memory: schaalt ook CPU en netwerk
  • Timeout: max. seconden tot de functie wordt beëindigd
  • Ephemeral storage: tijdelijke ruimte in /tmp
  • Concurrency: hoeveel tegelijk draaien
Applicaties implementeren op AWS

Geheugen sizing en de CPU-koppeling

  • Meer geheugen = evenredig meer CPU
  • Een CPU-gebonden functie draait sneller met meer geheugen
  • Kortere duur kan lagere kosten betekenen
  • Kies de juiste grootte door te testen, niet te gokken

Geheugen-vs-kosten: duur daalt sterk bij meer geheugen en vlakt af; totale kosten vormen een U met het goedkoopste punt in het midden gemarkeerd

Applicaties implementeren op AWS

Concurrency: gereserveerd vs voorzien


Gereserveerde concurrency

  • Zet een limiet op gelijktijdige executions
  • Beschermt downstream-systemen en andere functies

Voorzien concurrency

  • Verwarmt instanties voor, geen cold start
  • Voor latentiegevoelige, user-facing functies
Applicaties implementeren op AWS

Configuratie en gedeelde code verpakken

  • Omgevingsvariabelen: per-omgeving configuratie
  • Layers: deel code en afhankelijkheden tussen functies
  • Extensies: draaien naast de functie voor tools
  • Houd config buiten het deploymentpakket

Lambda-packagingopties: omgevingsvariabelen met externe config, layers die bibliotheken delen tussen functies, en extensies naast de handler voor monitoring of secrets

Applicaties implementeren op AWS

Lambda koppelen aan een VPC

Lambda verbonden met een private VPC via ENI's in private subnets, security group die uitgaand verkeer beheert, en een NAT-gateway voor internettoegang

  • Koppel Lambda aan private subnets voor interne resources
  • Lambda maakt ENI's in je VPC
  • Security groups bepalen wat het kan bereiken
  • Heeft een NAT of VPC-endpoint nodig voor extern bereik
Applicaties implementeren op AWS

Fouten afhandelen met destinations en DLQ's

  • Asynchrone invokes her proberen automatisch bij falen
  • Lambda Destinations: routeer onSuccess en onFailure
  • Dead-letter queue: vang events die nooit slagen
  • Laat een mislukte event nooit stil vallen

Lambda async-fouthandling: retry-lus naar Lambda Destinations met onSuccess- en onFailure-takken, en een dead-letter queue die events opvangt na alle retries

Applicaties implementeren op AWS

Laten we oefenen!

Applicaties implementeren op AWS

Preparing Video For Download...