Configurare AWS Lambda per la produzione
Distribuire applicazioni su AWS
Dunieski Otano
Amazon Web Services Solutions Architect
In test funzionava
La funzione ha superato tutti i test
In produzione va in timeout e subisce throttling
Il codice era ok; la configurazione no
Configurazioni Lambda critiche in produzione
Memory
: scala anche CPU e rete
Timeout
: secondi massimi prima che la funzione venga interrotta
Ephemeral storage
: spazio temporaneo in /tmp
Concurrency
: quante istanze in parallelo
Dimensionamento memoria e legame con la CPU
Più memoria =
più CPU in proporzione
Una funzione CPU-bound può andare più veloce con più memoria
Durata minore può significare
costo più basso
Dimensiona con test, non a intuito
Concurrency: reserved vs provisioned
Concurrency riservata
Limita le esecuzioni simultanee massime
Protegge sistemi a valle e altre funzioni
Concurrency provisionata
Pre-riscalda le istanze, niente cold start
Per funzioni con bassa latenza, lato utente
Packaging della configurazione e del codice condiviso
Environment variables
: configurazione per ambiente
Layers
: condividi codice e dipendenze tra funzioni
Extensions
: eseguono a fianco della funzione per strumenti
Tieni la config fuori dal pacchetto di deployment
Collegare Lambda a una VPC
Collega Lambda a
subnet private
per risorse interne
Lambda crea
ENI
nella tua VPC
I
security group
controllano cosa può raggiungere
Serve un NAT o un endpoint VPC per l'accesso esterno
Gestire i fail con Destinations e DLQ
Le invocazioni asincrone
ritentano automaticamente
in caso di errore
Lambda Destinations
: instrada onSuccess e onFailure
Dead-letter queue
: cattura eventi che non riescono mai
Non perdere mai silenziosamente un evento fallito
Esercitiamoci!
Distribuire applicazioni su AWS
Preparing Video For Download...