AWS Lambda aneb rok s lambdou

Radim Štěpaník

Jak šel čas

Událost

Funkce

  • http request
  • scheduler
  • nová zpráva ve frontě
  • soubor byl smazán z uložiště 
  • nová notifikace v kanálu

 

  • funkce
  • na vstupu objekt
    popisující událost

Serverless architektury

Kde všude můžeme provozovat?

Jaký programovací jazyk?

AWS Lambda

ECS

  • služba na orchestraci kontejnerů v AWS
  • řízení dostupných zdrojů - CPU/RAM
  • zero time deployment
  • spouštění úloh
  • spouštění cronových úloh
  • služby
  • monitorování
  • logování
  • propojení škálování
  • elastic load balancer
  • automatické škálování

Kde to fyzicky běží

  • VPSky
  • důležité vzít správný image
  • obsahují aws ecs container agent -> spojení s clusterem
  • spojení se správným clusterem jen ve spouštěcím scriptu ecsconfig - ECS_CLUSTER a hotovo
  • při vytvoření instance zakládám i s ssh klíčem - je možné se připojit přímo k dané instanci
  • u každé EC2 je nutné v rámci bezpečnosti nastavit security groups

EC2

Kde to fyzicky běží

  • v cloudu - serverless technologie
  • poměrně nesmyslný pricing
  • je to super na scheduled task -> nemusím se starat o to jestli na to mam dost zdrojů
  • nutné mít speciální druh tasku - aswpc
  • automatické

Fargate

Kde to fyzicky běží

  • u fargate prostě nic neřeším
    • neřeším porty, agenta
    • spustím a jedu, nastavuji jen zdroje - cpu + RAM
  • u ec2
    • řeším update agenta  - už jsem musel updatovat
    • řeším prostě fyzické problémy na strojích
    • downtime
    • chyby
  • rozdíl Fargate je asi tak 4x dražší fakt raketa

Cluster ve Fargate vs EC2

  • definice spouštěné úlohy
  • podobné docker-compose.yml
    • je možné spouštět jeden a více kontejnerů
  • nastavení jednotlivých kontejnerů
    • environment proměnné
    • omezení na CPU a paměť
    • mapování portů (pokud jsme v awspc - fargate - jen otevřené porty)
    • overide spouštěcí command
    • working directory
    • nastavení logování do cloudwatch

Task definition

Odkud kontejnery brát?

  • aws managed docker container registry
  • omezení na počet images - nutné odmazat
  • jednoduchuhé použití zabezpečený přístup

ECR

  • jakýkoliv cloud provider - aws, azure, google etc
  • jakýkoliv programovaví jazyk
  • především centrální místo jak spravovat serverless
    infrastrukturu

 

Serverless framework

Showcase!!!

Image optimizer architecture

IO - pricing

  • 1.5 mil obrázků za měsíc
  • za co platíme:
    • $3.3 za lambdu
    • $1.5 za api requesty
    • $3.5 za frontu - 10 mil. zpráv
    • $9 za S3 - uložiště 
    • celkem - $18