AWS Lambda aneb rok s lambdou
Radim Štěpaník
CTO, Qest
https://github.com/kinapets
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
Aws lambda a IO
By Radim Štěpaník
Aws lambda a IO
- 844