Konfigurace AWS Lambda pro produkci

Nasazování aplikací na AWS

Dunieski Otano

Amazon Web Services Solutions Architect

V testech to fungovalo

  • Funkce prošla všemi testy
  • V produkci ale vyprší čas nebo se throttluje
  • Kód byl v pořádku; konfigurace ne

Serverless funkce, která prošla testováním, ale v produkci má problémy – upravují se hodnoty paměti a timeoutu

Nasazování aplikací na AWS

Klíčová konfigurace Lambda pro produkci

Logo Lambda uprostřed se čtyřmi produkčními konfiguračními bloky: paměť s CPU škálováním, timeout s hodinami, dočasné úložiště a souběžnost zobrazující paralelní instance

  • Paměť: škáluje také CPU a síť
  • Timeout: max. počet sekund, než je funkce ukončena
  • Dočasné úložiště: prostor v /tmp
  • Souběžnost: počet současně běžících instancí
Nasazování aplikací na AWS

Velikost paměti a její vliv na CPU

  • Více paměti = proporcionálně více CPU
  • CPU-náročná funkce běží rychleji s více pamětí
  • Kratší doba běhu může znamenat nižší cenu
  • Správnou velikost najdeš testováním, ne odhadem

Graf paměti vs. ceny: doba běhu s rostoucí pamětí prudce klesá a pak se vyrovná, celkové náklady tvoří tvar U s vyznačeným optimálním bodem uprostřed

Nasazování aplikací na AWS

Souběžnost: rezervovaná vs. provisionovaná


Rezervovaná souběžnost

  • Omezuje maximální počet souběžných spuštění
  • Chrání navazující systémy a ostatní funkce

Provisionovaná souběžnost

  • Předehřívá instance, takže nedochází k cold startu
  • Vhodná pro funkce citlivé na latenci, přístupné uživatelům
Nasazování aplikací na AWS

Balíčkování konfigurace a sdíleného kódu

  • Proměnné prostředí: konfigurace pro každé prostředí zvlášť
  • Vrstvy: sdílení kódu a závislostí mezi funkcemi
  • Rozšíření: běží vedle funkce jako nástroje
  • Konfiguraci drž mimo deployment balíček

Možnosti balíčkování Lambda: proměnné prostředí s externí konfigurací, vrstvy sdílející knihovny napříč funkcemi a rozšíření běžící vedle handleru pro monitoring nebo správu tajemství

Nasazování aplikací na AWS

Připojení Lambda k VPC

Lambda připojená k privátnímu VPC přes ENI v privátních podsítích, bezpečnostní skupina řídí odchozí přístup a NAT gateway zajišťuje připojení k internetu

  • Připoj Lambda k privátním podsítím pro interní zdroje
  • Lambda vytváří ENI ve tvém VPC
  • Bezpečnostní skupiny řídí, kam má přístup
  • Pro přístup ven potřebuje NAT nebo VPC endpoint
Nasazování aplikací na AWS

Zpracování chyb pomocí destinations a DLQ

  • Asynchronní volání se při chybě automaticky opakují
  • Lambda Destinations: směrování onSuccess a onFailure
  • Fronta nedoručených zpráv: zachycuje události, které se nikdy nezdaří
  • Neúspěšná událost nesmí nikdy zaniknout bez povšimnutí

Zpracování asynchronních chyb Lambda: smyčka opakování vedoucí do Lambda Destinations s větvemi onSuccess a onFailure a fronta nedoručených zpráv zachycující události po vyčerpání všech pokusů

Nasazování aplikací na AWS

Pojďme cvičit!

Nasazování aplikací na AWS

Preparing Video For Download...