{"id":37937,"date":"2019-10-31T22:20:41","date_gmt":"2019-10-31T19:20:41","guid":{"rendered":"https:\/\/prohoster.info\/blog\/detalnyj-razbor-aws-lambda\/"},"modified":"2019-10-31T22:20:41","modified_gmt":"2019-10-31T19:20:41","slug":"detalnyj-razbor-aws-lambda","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/detalnyj-razbor-aws-lambda","title":{"rendered":"Szczeg\u00f3\u0142owa analiza AWS Lambda","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><em>T\u0142umaczenie artyku\u0142u przygotowano specjalnie dla student\u00f3w kursu <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/dOuF\/\">\u201eUs\u0142ugi chmurowe\u201c<\/a><\/noindex>. Zastanawiasz si\u0119 nad rozwojem w tym kierunku? Zobacz warsztat Egora Zuewa (TeamLeada w firmie InBit) <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/L2NX\/\">\u201eUs\u0142uga AWS EC2\u201c<\/a><\/noindex> i do\u0142\u0105cz do najbli\u017cszej grupy kursu: start 26 wrze\u015bnia. <\/em><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Szczeg\u00f3\u0142owa analiza AWS Lambda\" src=\"\/wp-content\/uploads\/2019\/09\/cbf78e6c6d04f9beec2d99f8891bf7d9.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Coraz wi\u0119cej os\u00f3b przechodzi na AWS Lambda ze wzgl\u0119du na skalowalno\u015b\u0107, wydajno\u015b\u0107, oszcz\u0119dno\u015bci oraz mo\u017cliwo\u015b\u0107 przetwarzania milion\u00f3w, a nawet bilion\u00f3w zapyta\u0144 miesi\u0119cznie. Nie ma potrzeby zarz\u0105dzania infrastruktur\u0105, na kt\u00f3rej dzia\u0142a us\u0142uga. Automatyczne skalowanie pozwala obs\u0142ugiwa\u0107 tysi\u0105ce r\u00f3wnoczesnych zapyta\u0144 na sekund\u0119. Uwa\u017cam, \u017ce AWS Lambda mo\u017cna z powodzeniem nazwa\u0107 jedn\u0105 z najpopularniejszych us\u0142ug AWS.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><\/p>\n<h2 id=\"aws-lambda\">AWS Lambda<\/h2>\n<p><\/p>\n<p>AWS Lambda to wydarzeniowo-zorientowana us\u0142uga bezserwerowych oblicze\u0144, kt\u00f3ra umo\u017cliwia uruchamianie kodu bez konieczno\u015bci przydzielania i zarz\u0105dzania serwerami oraz uzupe\u0142nia inne us\u0142ugi AWS w oparciu o logik\u0119 u\u017cytkownika. Lambda automatycznie reaguje na r\u00f3\u017cne wydarzenia (tzw. wyzwalacze), na przyk\u0142ad na \u017c\u0105dania HTTP przez Amazon API Gateway, zmiany danych w koszach Amazon S3 lub tabelach Amazon DynamoDB; mo\u017cna r\u00f3wnie\u017c uruchomi\u0107 sw\u00f3j kod przez wywo\u0142ania API, u\u017cywaj\u0105c AWS SDK i przej\u015b\u0107 mi\u0119dzy stanami w AWS Step Functions.<\/p>\n<p><\/p>\n<p>Lambda uruchamia kod na wysoko dost\u0119pnej infrastrukturze obliczeniowej i w pe\u0142ni odpowiada za administracj\u0119 poni\u017cszej platformy, w tym za konserwacj\u0119 serwer\u00f3w i systemu operacyjnego, przydzielanie zasob\u00f3w, automatyczne skalowanie, monitorowanie kodu i prowadzenie dziennik\u00f3w. Oznacza to, \u017ce wystarczy za\u0142adowa\u0107 sw\u00f3j kod i skonfigurowa\u0107, jak i kiedy ma by\u0107 uruchamiany. Us\u0142uga zatroszczy si\u0119 o jego uruchomienie i zapewni wysok\u0105 dost\u0119pno\u015b\u0107 twojej aplikacji.<\/p>\n<p><\/p>\n<h2 id=\"kogda-perehodit-na-lambda\">Kiedy przej\u015b\u0107 na Lambda?<\/h2>\n<p><\/p>\n<p>AWS Lambda to wygodna platforma obliczeniowa, odpowiednia do wielu scenariuszy zastosowa\u0144, oczywi\u015bcie pod warunkiem, \u017ce j\u0119zyk i \u015brodowisko uruchomieniowe twojego kodu s\u0105 wspierane przez us\u0142ug\u0119. Je\u015bli chcesz skupi\u0107 si\u0119 na kodzie i logice biznesowej, powierzaj\u0105c administracj\u0119 serwerami, przydzielanie zasob\u00f3w i skalowanie zewn\u0119trznemu dostawcy za rozs\u0105dne pieni\u0105dze, zdecydowanie warto przej\u015b\u0107 na AWS Lambda.<\/p>\n<p><\/p>\n<p>Lambda doskonale nadaje si\u0119 do tworzenia interfejs\u00f3w programistycznych, a je\u015bli korzysta\u0107 z us\u0142ugi razem z API Gateway, mo\u017cna znacznie obni\u017cy\u0107 koszty i szybciej wprowadzi\u0107 na rynek. S\u0105 r\u00f3\u017cne sposoby wykorzystania funkcji Lambda i warianty organizacji architektury bezserwerowej \u2014 ka\u017cdy mo\u017ce wybra\u0107 co\u015b odpowiedniego w zale\u017cno\u015bci od postawionego celu.<\/p>\n<p><\/p>\n<p>Lambda umo\u017cliwia wykonywanie szerokiego wachlarza zada\u0144. Dzi\u0119ki wsparciu CloudWatch mo\u017cna tworzy\u0107 zadania zaplanowane oraz automatyzowa\u0107 poszczeg\u00f3lne procesy. Nie ma \u017cadnych ogranicze\u0144 co do charakteru i intensywno\u015bci korzystania z us\u0142ugi (brane pod uwag\u0119 s\u0105 zu\u017cycie pami\u0119ci i czas), i nic nie stoi na przeszkodzie, by systematycznie pracowa\u0107 nad pe\u0142noprawnym mikroserwisem opartym na Lambda.<\/p>\n<p><\/p>\n<p>Mo\u017cna tutaj tworzy\u0107 dzia\u0142ania zorientowane na us\u0142ugi, kt\u00f3re nie s\u0105 wykonywane przez ca\u0142y czas. Typowym przyk\u0142adem jest skalowanie obraz\u00f3w. Nawet w przypadku system\u00f3w rozproszonych funkcje Lambda nie trac\u0105 na znaczeniu.<\/p>\n<p><\/p>\n<p>Zatem, je\u015bli nie chcesz zajmowa\u0107 si\u0119 alokacj\u0105 i administracj\u0105 zasob\u00f3w obliczeniowych \u2014 wypr\u00f3buj AWS Lambda; je\u015bli nie potrzebujesz ci\u0119\u017ckich, zasobo\u017cernych oblicze\u0144 \u2014 r\u00f3wnie\u017c wypr\u00f3buj AWS Lambda; je\u015bli tw\u00f3j kod jest wykonywany okresowo \u2014 dok\u0142adnie, warto spr\u00f3bowa\u0107 AWS Lambda.<\/p>\n<p><\/p>\n<h2 id=\"bezopasnost\">Bezpiecze\u0144stwo<\/h2>\n<p><\/p>\n<p>Jak dot\u0105d nie ma zastrze\u017ce\u0144 co do bezpiecze\u0144stwa. Z drugiej strony, poniewa\u017c wiele wewn\u0119trznych proces\u00f3w i aspekt\u00f3w realizacji tego modelu jest ukrytych przed u\u017cytkownikiem zarz\u0105dzanego \u015brodowiska uruchomieniowego AWS Lambda, niekt\u00f3re og\u00f3lnie przyj\u0119te zasady bezpiecze\u0144stwa w chmurze trac\u0105 swoj\u0105 aktualno\u015b\u0107.<\/p>\n<p><\/p>\n<p>Jak wi\u0119kszo\u015b\u0107 us\u0142ug AWS, Lambda jest \u015bwiadczona na zasadzie wsp\u00f3lnej odpowiedzialno\u015bci AWS i klienta w zakresie bezpiecze\u0144stwa oraz zgodno\u015bci z przepisami. Ta zasada redukuje obci\u0105\u017cenie operacyjne dla klienta, poniewa\u017c AWS przejmuje zadania obs\u0142ugi, administracji i monitorowania komponent\u00f3w us\u0142ugi \u2014 od systemu operacyjnego hosta i poziomu wirtualizacji po fizyczne bezpiecze\u0144stwo obiekt\u00f3w infrastruktury. <\/p>\n<p><\/p>\n<p>M\u00f3wi\u0105c konkretnie o AWS Lambda, AWS odpowiada za zarz\u0105dzanie infrastruktur\u0105, powi\u0105zanymi podstawowymi us\u0142ugami, systemem operacyjnym i platform\u0105 aplikacyjn\u0105. Podczas gdy klient ponosi odpowiedzialno\u015b\u0107 za bezpiecze\u0144stwo swojego kodu, przechowywanie danych wra\u017cliwych, kontrol\u0119 dost\u0119pu do nich oraz do us\u0142ugi i zasob\u00f3w Lambda (Identity and Access Management, IAM), w tym w ramach u\u017cywanych funkcji.<\/p>\n<p><\/p>\n<p>Na poni\u017cszym schemacie przedstawiona jest model wsp\u00f3lnej odpowiedzialno\u015bci, stosowany do AWS Lambda. Sfera odpowiedzialno\u015bci AWS jest zaznaczona na pomara\u0144czowo, a odpowiedzialno\u015b\u0107 klienta - na niebiesko. Jak wida\u0107, AWS przejmuje wi\u0119ksz\u0105 odpowiedzialno\u015b\u0107 za aplikacje wdra\u017cane na tej us\u0142udze.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Szczeg\u00f3\u0142owa analiza AWS Lambda\" src=\"\/wp-content\/uploads\/2019\/09\/d1f324929e3b03d454a0cd9842844cb4.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><em>Model wsp\u00f3lnej odpowiedzialno\u015bci, stosowany do AWS Lambda<\/em><\/p>\n<p><\/p>\n<h3 id=\"sreda-vypolneniya-lambda\">\u015arodowisko uruchomieniowe Lambda<\/h3>\n<p><\/p>\n<p>G\u0142\u00f3wn\u0105 zalet\u0105 Lambda jest to, \u017ce realizuj\u0105c funkcj\u0119 w twoim imieniu, us\u0142uga sama przydziela niezb\u0119dne zasoby. Nie musisz traci\u0107 czasu i wysi\u0142ku na zarz\u0105dzanie systemami i mo\u017cesz skupi\u0107 si\u0119 na logice biznesowej oraz pisaniu kodu.<\/p>\n<p><\/p>\n<p>Us\u0142uga Lambda dzieli si\u0119 na dwie p\u0142aszczyzny. Pierwsza to p\u0142aszczyzna zarz\u0105dzania. Zgodnie z definicj\u0105 na Wikipedii, p\u0142aszczyzna zarz\u0105dzania (control plane) jest cz\u0119\u015bci\u0105 sieci odpowiedzialn\u0105 za transport sygna\u0142\u00f3w i routowanie. Jest to g\u0142\u00f3wny komponent podejmuj\u0105cy globalne decyzje o alokacji, utrzymaniu i rozdzielaniu obci\u0105\u017ce\u0144. Ponadto, p\u0142aszczyzna zarz\u0105dzania pe\u0142ni rol\u0119 topologii sieciowej dostawcy rozwi\u0105zania, odpowiadaj\u0105cej za routowanie i zarz\u0105dzanie ruchem.<\/p>\n<p><\/p>\n<p>Druga p\u0142aszczyzna to p\u0142aszczyzna danych. Podobnie jak p\u0142aszczyzna zarz\u0105dzania, ma swoje zadania. P\u0142aszczyzna zarz\u0105dzania udost\u0119pnia API do zarz\u0105dzania funkcjami (CreateFunction, UpdateFunctionCode) oraz kontroluje interakcj\u0119 Lambda z innymi us\u0142ugami AWS. P\u0142aszczyzna danych zarz\u0105dza API wywo\u0142a\u0144 (Invoke API), kt\u00f3re uruchamia funkcje Lambda. Po wywo\u0142aniu funkcji p\u0142aszczyzna zarz\u0105dzania przydziela lub wybiera istniej\u0105ce, wcze\u015bniej przygotowane dla tej funkcji \u015brodowisko uruchomieniowe, a nast\u0119pnie wykonuje kod.<\/p>\n<p><\/p>\n<p>AWS Lambda obs\u0142uguje wiele j\u0119zyk\u00f3w programowania, w tym Java 8, Python 3.7, Go, NodeJS 8, .NET Core 2 i inne, poprzez odpowiednie \u015brodowiska wykonawcze. AWS regularnie je aktualizuje, wydaje poprawki zabezpiecze\u0144 i realizuje inne operacje konserwacyjne tych \u015brodowisk. Lambda pozwala na u\u017cywanie innych j\u0119zyk\u00f3w, pod warunkiem, \u017ce samodzielnie wdro\u017cysz odpowiednie \u015brodowisko wykonawcze. W takim przypadku b\u0119dziesz odpowiedzialny za jego konserwacj\u0119, w tym za monitorowanie bezpiecze\u0144stwa.<\/p>\n<p><\/p>\n<p><strong>Jak to wszystko dzia\u0142a i jak us\u0142uga b\u0119dzie wykonywa\u0107 Twoje funkcje?<\/strong><\/p>\n<p><\/p>\n<p>Ka\u017cda funkcja dzia\u0142a w jednym lub kilku dedykowanych \u015brodowiskach, kt\u00f3re istniej\u0105 jedynie w czasie \u017cycia tej funkcji, a nast\u0119pnie s\u0105 niszczone. W ka\u017cdym \u015brodowisku jednocze\u015bnie wykonywane jest tylko jedno wywo\u0142anie, ale jest ono wielokrotnie wykorzystywane, gdy wyst\u0119puje wiele sekwencyjnych wywo\u0142a\u0144 tej samej funkcji. Wszystkie \u015brodowiska wykonawcze dzia\u0142aj\u0105 na wirtualnych maszynach z wirtualizacj\u0105 sprz\u0119tow\u0105 \u2014 tzw. microVM. Ka\u017cda microVM jest przypisywana do konkretnego konta AWS i mo\u017ce by\u0107 wielokrotnie u\u017cywana przez \u015brodowiska do wykonywania r\u00f3\u017cnych funkcji w tym koncie. MicroVM s\u0105 pakowane w modu\u0142y sprz\u0119towe platformy Lambda Worker, kt\u00f3ra jest w\u0142asno\u015bci\u0105 i jest zarz\u0105dzana przez AWS. To samo \u015brodowisko wykonawcze nie mo\u017ce by\u0107 u\u017cywane przez r\u00f3\u017cne funkcje, tak jak microVM s\u0105 unikalne dla r\u00f3\u017cnych kont AWS.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Szczeg\u00f3\u0142owa analiza AWS Lambda\" src=\"\/wp-content\/uploads\/2019\/09\/9c4fd7aeaf3b582aed5fa8a6a876c315.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><em>Model izolacji w AWS Lambda<\/em><\/p>\n<p><\/p>\n<p>Izolacja \u015brodowisk wykonawczych realizowana jest za pomoc\u0105 kilku mechanizm\u00f3w. Na najwy\u017cszym poziomie ka\u017cda ze \u015brodowisk posiada oddzielne kopie nast\u0119puj\u0105cych komponent\u00f3w:<\/p>\n<p><\/p>\n<ul>\n<li>Kod funkcji<\/li>\n<li>Wszystkie warstwy Lambda wybrane dla funkcji<\/li>\n<li>\u015arodowisko wykonawcze funkcji<\/li>\n<li>Minimalna przestrze\u0144 u\u017cytkownika oparta na Amazon Linux<\/li>\n<\/ul>\n<p><\/p>\n<p>Do izolacji r\u00f3\u017cnych \u015brodowisk wykonawczych stosowane s\u0105 nast\u0119puj\u0105ce mechanizmy:<\/p>\n<p><\/p>\n<ul>\n<li>cgroups \u2014 ograniczenie dost\u0119pu do zasob\u00f3w CPU, pami\u0119ci, przepustowo\u015bci pami\u0119ci masowej i sieci dla ka\u017cdej ze \u015brodowisk wykonawczych;<\/li>\n<li>namespaces \u2014 grupowanie ID proces\u00f3w, ID u\u017cytkownik\u00f3w, interfejs\u00f3w sieciowych i innych zasob\u00f3w, kt\u00f3rymi zarz\u0105dza j\u0105dro Linux. Ka\u017cde \u015brodowisko wykonawcze dzia\u0142a w swoim w\u0142asnym przestrzeni nazw;<\/li>\n<li>seccomp-bpf \u2014 ograniczenie wywo\u0142a\u0144 systemowych, kt\u00f3re mo\u017cna u\u017cywa\u0107 w \u015brodowisku wykonawczym;<\/li>\n<li>iptables i tabele routingu \u2014 izolacja \u015brodowisk wykonawczych mi\u0119dzy sob\u0105;<\/li>\n<li>chroot \u2014 zapewnienie ograniczonego dost\u0119pu do ni\u017cszego systemu plik\u00f3w.<\/li>\n<\/ul>\n<p><\/p>\n<p>W po\u0142\u0105czeniu z w\u0142asno\u015bciowymi technologiami izolacji AWS, wymienione mechanizmy gwarantuj\u0105 solidny podzia\u0142 \u015brodowisk uruchomieniowych. Izolowane w ten spos\u00f3b \u015brodowiska nie mog\u0105 uzyskiwa\u0107 dost\u0119pu do danych innych \u015brodowisk ani ich zmienia\u0107.<\/p>\n<p><\/p>\n<p>Chocia\u017c kilka \u015brodowisk uruchomieniowych jednego konta AWS mo\u017ce dzia\u0142a\u0107 na jednej microVM, w \u017cadnym wypadku microVM nie mog\u0105 by\u0107 wsp\u00f3\u0142dzielone przez r\u00f3\u017cne konta AWS. Do izolacji microVM w AWS Lambda wykorzystywane s\u0105 tylko dwa mechanizmy: instancje EC2 i Firecracker. Izolacja go\u015bci (guest isolation) w Lambda na podstawie instancji EC2 stosowana jest od 2015 roku. Firecracker to nowy hipernadzorca o otwartym kodzie \u017ar\u00f3d\u0142owym, zaprojektowany specjalnie przez AWS do bezserwerowych obci\u0105\u017ce\u0144, wprowadzony w 2018 roku. Fizyczny sprz\u0119t, na kt\u00f3rym dzia\u0142aj\u0105 microVM, jest wsp\u00f3\u0142dzielony mi\u0119dzy obci\u0105\u017cenia r\u00f3\u017cnych kont.<\/p>\n<p><\/p>\n<h3 id=\"sohranenie-sred-i-sostoyaniy-processov\">Zachowywanie \u015brodowisk i stan\u00f3w proces\u00f3w<\/h3>\n<p><\/p>\n<p>Chocia\u017c \u015brodowiska uruchomieniowe Lambda s\u0105 unikalne dla r\u00f3\u017cnych funkcji, mo\u017cna w nich ponownie wywo\u0142a\u0107 t\u0119 sam\u0105 funkcj\u0119, co oznacza, \u017ce \u015brodowisko uruchomieniowe mo\u017ce istnie\u0107 przez kilka godzin, zanim zostanie zniszczone.<\/p>\n<p><\/p>\n<p>W ka\u017cdej \u015brodowisku uruchomieniowym Lambda znajduje si\u0119 tak\u017ce system plik\u00f3w z zezwoleniem na zapis, dost\u0119pny przez katalog \/tmp. Nie mo\u017cna uzyskiwa\u0107 dost\u0119pu do jego zawarto\u015bci z innych \u015brodowisk uruchomieniowych. Je\u015bli chodzi o zachowanie stan\u00f3w proces\u00f3w, pliki zapisane w \/tmp istniej\u0105 przez ca\u0142y cykl \u017cycia \u015brodowiska uruchomieniowego. Dzi\u0119ki temu mo\u017cliwe jest akumulowanie wynik\u00f3w kilku wywo\u0142a\u0144, co jest szczeg\u00f3lnie przydatne w przypadku kosztownych operacji, takich jak \u0142adowanie modeli uczenia maszynowego.<\/p>\n<p><\/p>\n<h2 id=\"peredacha-dannyh-vyzovov\">Przesy\u0142anie danych wywo\u0142a\u0144<\/h2>\n<p><\/p>\n<p>Interfejs Invoke API mo\u017cna wykorzysta\u0107 w dw\u00f3ch trybach: trybie zdarze\u0144 i trybie '\u017c\u0105danie \u2014 odpowied\u017a'. W trybie zdarze\u0144 wywo\u0142anie jest dodawane do kolejki do p\u00f3\u017aniejszego wykonania. W trybie '\u017c\u0105danie \u2014 odpowied\u017a' funkcja jest wywo\u0142ywana natychmiast z dostarczonym \u0142adunkiem u\u017cytecznym, po czym zwracana jest odpowied\u017a. W obu przypadkach funkcja jest wykonywana w \u015brodowisku Lambda, ale z r\u00f3\u017cnymi \u015bcie\u017ckami \u0142adunku u\u017cytecznego.<\/p>\n<p><\/p>\n<p>Podczas wywo\u0142a\u0144 typu \u201e\u017c\u0105danie \u2014 odpowied\u017a\u201d \u0142adunek trafia od API przetwarzania \u017c\u0105da\u0144 (API Caller), takiego jak AWS API Gateway lub AWS SDK, do load balancera, a nast\u0119pnie do us\u0142ugi wywo\u0142ywania funkcji Lambda (Invoke Service). Ta ostatnia okre\u015bla odpowiednie \u015brodowisko do wykonania funkcji i przekazuje tam \u0142adunek, aby zako\u0144czy\u0107 wywo\u0142anie. Load balancer otrzymuje ruch z zabezpieczeniem TLS przez Internet. Ruch wewn\u0105trz us\u0142ugi Lambda \u2014 po load balancerze \u2014 przechodzi przez wewn\u0119trzny VPC w danym regionie AWS.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Szczeg\u00f3\u0142owa analiza AWS Lambda\" src=\"\/wp-content\/uploads\/2019\/09\/57f97517597f51d83890869b8385074a.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><em>Model przetwarzania wywo\u0142a\u0144 AWS Lambda: tryb \u201e\u017c\u0105danie \u2014 odpowied\u017a\u201d<\/em><\/p>\n<p><\/p>\n<p>Wywo\u0142ania oparte na zdarzeniach mog\u0105 by\u0107 wykonywane natychmiastowo lub dodawane do kolejki. W niekt\u00f3rych przypadkach kolejka jest realizowana za pomoc\u0105 us\u0142ugi Amazon SQS (Amazon Simple Queue Service), kt\u00f3ra przekazuje wywo\u0142ania do us\u0142ugi wywo\u0142ywania funkcji Lambda za pomoc\u0105 wewn\u0119trznego procesu pollingowego (poller). Przekazywany ruch jest zabezpieczony TLS, przy czym niewielkie dodatkowe szyfrowanie danych przechowywanych w Amazon SQS nie jest przewidziane. <\/p>\n<p><\/p>\n<p>Wywo\u0142ania oparte na zdarzeniach nie zwracaj\u0105 odpowiedzi \u2014 wszelkie informacje zwrotne Lambda Worker s\u0105 po prostu ignorowane. Wywo\u0142ania oparte na zdarzeniach z Amazon S3, Amazon SNS, CloudWatch i innych \u017ar\u00f3de\u0142 s\u0105 przetwarzane przez us\u0142ug\u0119 Lambda w trybie zdarze\u0144. Wywo\u0142ania z potok\u00f3w Amazon Kinesis i DynamoDB, wywo\u0142ania kolejek SQS, load balancera aplikacji oraz API Gateway s\u0105 przetwarzane w trybie \u201e\u017c\u0105danie \u2014 odpowied\u017a\u201d.<\/p>\n<p><\/p>\n<h3 id=\"monitoring\">Monitoring<\/h3>\n<p><\/p>\n<p>Mo\u017cesz monitorowa\u0107 i audytowa\u0107 funkcje Lambda za pomoc\u0105 r\u00f3\u017cnych mechanizm\u00f3w i us\u0142ug AWS, w tym nast\u0119puj\u0105cych.<\/p>\n<p><\/p>\n<p><strong>Amazon CloudWatch<\/strong><br \/>\nZbiera r\u00f3\u017cne dane statystyczne, takie jak liczba \u017c\u0105da\u0144, czas trwania realizacji \u017c\u0105da\u0144 oraz liczba \u017c\u0105da\u0144 zako\u0144czonych b\u0142\u0119dem.<\/p>\n<p><\/p>\n<p><strong>Amazon CloudTrail<\/strong><br \/>\nUmo\u017cliwia prowadzenie dziennik\u00f3w, ci\u0105g\u0142y monitoring oraz tymczasowe gromadzenie informacji o aktywno\u015bci w koncie zwi\u0105zanej z Twoj\u0105 infrastruktur\u0105 AWS. B\u0119dziesz mia\u0142 pe\u0142n\u0105 chronologi\u0119 dzia\u0142a\u0144 dokonanych za pomoc\u0105 konsoli AWS Management Console, AWS SDK, narz\u0119dzi wiersza polece\u0144 i innych us\u0142ug AWS.<\/p>\n<p><\/p>\n<p><strong>AWS X-Ray<\/strong><br \/>\nZapewnia pe\u0142n\u0105 widoczno\u015b\u0107 wszystkich etap\u00f3w przetwarzania \u017c\u0105da\u0144 w Twojej aplikacji na podstawie mapy jej wewn\u0119trznych komponent\u00f3w. Umo\u017cliwia analizowanie aplikacji w trakcie rozwoju oraz w \u015brodowisku produkcyjnym.<\/p>\n<p><\/p>\n<p><strong>AWS Config<\/strong><br \/>\nB\u0119dziesz m\u00f3g\u0142 \u015bledzi\u0107 zmiany konfiguracji funkcji Lambda (w tym ich usuni\u0119cie) oraz \u015brodowiska uruchomieniowego, tagi, nazwy handler\u00f3w, rozmiar kodu, przydzia\u0142 pami\u0119ci, ustawienia czasu oczekiwania i parametry r\u00f3wnoleg\u0142o\u015bci, a tak\u017ce rol\u0119 wykonawcz\u0105 Lambda IAM, podsieci i przypisanie grup zabezpiecze\u0144.<\/p>\n<p><\/p>\n<h3 id=\"zaklyuchenie\">Podsumowanie<\/h3>\n<p><\/p>\n<p>AWS Lambda oferuje pot\u0119\u017cny zestaw narz\u0119dzi do tworzenia bezpiecznych i skalowalnych aplikacji. Wiele metod zapewniania bezpiecze\u0144stwa i zgodno\u015bci w AWS Lambda jest podobnych do tych stosowanych w innych us\u0142ugach AWS, chocia\u017c s\u0105 wyj\u0105tki. Na marzec 2019 roku Lambda spe\u0142nia wymagania SOC 1, SOC 2, SOC 3, PCI DSS, ustawy USA o zgodno\u015bci i odpowiedzialno\u015bci w zakresie ochrony zdrowia (HIPAA) oraz innych przepis\u00f3w. Dlatego, gdy my\u015blisz o wdro\u017ceniu nowej aplikacji, rozwa\u017c us\u0142ug\u0119 AWS Lambda \u2014 by\u0107 mo\u017ce jest idealna dla Twojego zadania.<\/p>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/466519\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00ab\u041e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b\u00bb. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438? \u0421\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043c\u0430\u0441\u0442\u0435\u0440-\u043a\u043b\u0430\u0441\u0441 \u0415\u0433\u043e\u0440\u0430 \u0417\u0443\u0435\u0432\u0430 (TeamLead \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 InBit) \u00abAWS EC2 \u0441\u0435\u0440\u0432\u0438\u0441\u00bb \u0438 \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0439\u0442\u0435\u0441\u044c \u043a \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 \u043a\u0443\u0440\u0441\u0430: \u0441\u0442\u0430\u0440\u0442 26 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f. \u0412\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043b\u044e\u0434\u0435\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044f\u0442 \u043d\u0430 AWS Lambda \u0440\u0430\u0434\u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u0438, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0438 \u0434\u0430\u0436\u0435 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u043c\u0435\u0441\u044f\u0446. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28468,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37937","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00ab\u041e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b\u00bb. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438?\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/detalnyj-razbor-aws-lambda\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0414\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u0431\u043e\u0440 AWS Lambda | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00ab\u041e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b\u00bb. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438?\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/detalnyj-razbor-aws-lambda\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:20:41+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:20:41+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Szczeg\u00f3\u0142owa analiza AWS Lambda | ProHoster","description":"T\u0142umaczenie artyku\u0142u przygotowano specjalnie dla student\u00f3w kursu \u201eUs\u0142ugi chmurowe\u201d. Interesuje Ci\u0119 rozw\u00f3j w tym kierunku?","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/detalnyj-razbor-aws-lambda","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0414\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u0431\u043e\u0440 AWS Lambda | ProHoster","og:description":"\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00ab\u041e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b\u00bb. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438?","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/detalnyj-razbor-aws-lambda","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:20:41+00:00","article:modified_time":"2019-10-31T19:20:41+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37937","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 19:50:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:18:22","updated":"2026-01-23 19:50:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/37937","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=37937"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/37937\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/28468"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=37937"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=37937"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=37937"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}