AWS Lambda - usługa typu serverless
AWS Lambda to usługa typu serverless, która pozwala na uruchamianie kodu bez konieczności konfigurowania i administrowania środowiskiem serwerowym.
Czym w ogóle jest serverless?
Usługa serverless najczęściej odnosi się do bezserwerowych aplikacji. Bezserwerowe aplikacje to te, które nie wymagają zarządzania oraz opieki administracyjnej nad serwerami. W praktyce oznacza to, że możesz skupić się na logice biznesowej swojej aplikacji lub jej rozwoju, bez martwienia się o warstwę serwerową i związaną z nią dodatkowymi obowiązkami, takimi jak zarządzanie infrastrukturą, aktualizacje, obsługa administracyjna, skalowanie, dostępność, etc. Usługi bezserwerowe (serverless) nie wymagają dodatkowych obowiązków administracyjnych.
Aby usługa lub platforma zostały uznane za serverless, powinny spełniać następujące kryteria:
- brak zarządzania serwerem
- elastyczne skalowanie
- wysoka dostępność
- brak niewykorzystanych mocy produkcyjnych
AWS Lambda
AWS Lambda to typ „bezserwerowej funkcji jako usługi” (tzw. FaaS). FaaS stanowi jedno z podejść w budowaniu systemów obliczeniowych sterowanych zdarzeniami. Funkcje AWS Lambda mogą zostać wywołane różnego rodzaju zdarzeniami (tzw. event driven), które mają miejsce w AWS (to na barkach AWS spoczywa odpowiedzialność za ich uruchomienie, skalowanie i działanie) . W momencie, gdy istnieje wiele jednoczesnych zdarzeń, na które należy odpowiedzieć, AWS Lambda w prosty sposób równolegle uruchamia więcej kopii funkcji. Funkcje Lambdy skalują się automatycznie wraz z wielkością obciążenia.
AWS Lambda z założenia ma uruchamiać kod, stworzony w jakimkolwiek języku obsługiwanym przez AWS Lambda. Samo środowisko uruchomieniowe AWS Lambda oparte jest na Amazon Linux AMI. AWS Lambda działa w modelu pay-as-you-go -czyli płacimy tylko za to, z czego faktycznie korzystamy. Opłaty są naliczane na podstawie liczby żądań dotyczących funkcji i czasu trwania (czasu potrzebnego do wykonania kodu). Oficjalny kalkulator finansowy dla AWS Lambda można znaleźć tutaj.