Amazon API Gateway
Networking Cloud Practitioner Solutions Architect Associate Developer Associate

Amazon API Gateway

Amazon API Gateway

Twórz, publikuj i zarządzaj API na dowolną skalę. REST, HTTP i WebSocket API z wbudowanym throttlingiem, autoryzacją i monitoringiem.

Amazon API Gateway to w pełni zarządzany serwis do tworzenia, publikowania i zarządzania API. Działa jako "frontowe drzwi" dla Twoich aplikacji - przyjmuje requesty od klientów, autoryzuje je, przekształca i kieruje do odpowiednich backendów: Lambda, EC2, ECS czy dowolnego endpointu HTTP.

API Gateway obsługuje setki tysięcy zapytań na sekundę bez konieczności zarządzania serwerami. W połączeniu z AWS Lambda tworzy w pełni serverless backend - od API do logiki biznesowej, bez ani jednej instancji EC2.

Czy wiesz, ze...

API Gateway automatycznie generuje SDK klienckie (JavaScript, iOS, Android, Java) dla Twojego REST API. Wystarczy kliknąć "Generate SDK" w konsoli, a dostaniesz gotową bibliotekę do wywołania Twojego API.

Pro Tip

Jeśli nie potrzebujesz zaawansowanych funkcji REST API (cache, transformacje VTL, walidacja), wybierz HTTP API - zaoszczędzisz do 71% na kosztach. HTTP API ma też niższy latency i natywne wsparcie dla JWT autoryzacji.

Uwaga

Uwazaj na koszty API Gateway przy duzej skali. Przy 100M requestow/miesiac REST API kosztuje $350. Rozważ ALB ($0.008/LCU-h) dla wewnetrznych API lub scenariuszy z duzym ruchem. Dla WebSocket API Gateway to jedyna zarzadzana opcja na AWS.

Amazon API Gateway to w pelni zarzadzany serwis do tworzenia, publikowania i zarzadzania API w dowolnej skali. Obsluguje REST API, HTTP API i WebSocket API. Dziala jako "drzwi wejsciowe" do backendu - przyjmuje requesty, autoryzuje, transformuje i kieruje do Lambda, ECS, HTTP endpointow lub innych serwisow AWS.

1

Tworzenie API - wybor typu

REST API to pelna funkcjonalnosc: transformacje, walidacja, cache, usage plans, API keys. HTTP API to lzejsza i tansza alternatywa (do 70% taniej) z automatycznym deploymentem, CORS i integracja JWT - idealna dla wiekszosci serverless API. WebSocket API obsluguje polaczenia dwukierunkowe (chat, notyfikacje real-time). Wybieraj HTTP API jako domyslny, REST API tylko gdy potrzebujesz zaawansowanych funkcji.

2

Definiowanie zasobow i tras

W REST API definiujesz zasoby hierarchicznie: /users, /users/{id}, /users/{id}/orders. Kazdy zasob ma metody (GET, POST, PUT, DELETE). W HTTP API definiujesz trasy (routes) z parametrami sciezki i metoda. Mozesz importowac definicje z OpenAPI 3.0 (Swagger) - API Gateway wygeneruje zasoby, metody i modele automatycznie.

3

Konfiguracja integracji z backendem

Lambda proxy integration (najczestszy wzorzec) przekazuje caly request do Lambda i zwraca jej odpowiedz bez transformacji. HTTP proxy kieruje do dowolnego HTTP endpointu. AWS Service integration pozwala bezposrednio wywolywac serwisy AWS (np. wrzucic wiadomosc do SQS) bez Lambda posrednika - oszczedzasz na invocations. VPC Link laczy API Gateway z zasobami w prywatnym VPC (ALB, NLB, ECS).

4

Dodawanie autoryzacji

Lambda Authorizer (custom) - Twoja Lambda weryfikuje token i zwraca IAM policy (wynik mozna cache na 300s-3600s). Cognito Authorizer automatycznie waliduje tokeny JWT z Cognito User Pool. IAM Authorization uzywa SigV4 - idealna dla komunikacji miedzy serwisami AWS. HTTP API wspiera natywnie JWT authorizer (dowolny OIDC provider). Kazda metoda moze miec inny authorizer.

5

Deployment na stage

API wymaga deploymentu na stage (np. dev, staging, prod). Kazdy stage ma wlasny URL: https://api-id.execute-api.region.amazonaws.com/stage. Stage variables pozwalaja parametryzowac konfiguracje (np. inna Lambda dla dev i prod). Canary deployment kieruje procent ruchu na nowa wersje. HTTP API ma automatyczny deployment - kazda zmiana jest od razu aktywna.

6

Konfiguracja custom domain

Zamiast dlugiego URL execute-api, mapujesz wlasna domene (api.cloudmaniak.pl). Wymaga certyfikatu ACM (us-east-1 dla edge, regionalny dla regional). Edge-optimized endpoint uzywa CloudFront (nizsza latencja globalnie), Regional endpoint jest lepszy gdy klienci sa w tym samym regionie. Mozesz mapowac rozne stage na sciezki: api.example.com/v1, api.example.com/v2.

API Gateway to brama do Twojego backendu - jej konfiguracja bezposrednio wplywa na wydajnosc, koszty i bezpieczenstwo API. Oto najwazniejsze wskazowki z produkcyjnych wdrozen.

HTTP API vs REST API - porownanie kosztow

HTTP API kosztuje 1.00 USD za milion requestow (pierwsze 300M), REST API - 3.50 USD za milion. Przy 10M requestow miesiecznie to roznica 25 USD vs 35 USD. HTTP API wspiera Lambda proxy, HTTP proxy, JWT authorizer, CORS, auto-deploy. Brakuje mu: cache, request validation, WAF integration, usage plans, API keys. Jesli nie potrzebujesz tych funkcji - HTTP API to oczywisty wybor.

Poczatkujacy

Caching - redukcja wywolan backendu

REST API oferuje wbudowany cache (0.5 GB - 237 GB) od 0.02 USD/h. Cache TTL od 0 do 3600 sekund. Dla GET /products, ktory nie zmienia sie czesto, ustaw TTL na 300s - zredukujesz invocations Lambda o 80-90%. Klucz cache to pelny URL z query stringiem. Mozesz invalidowac cache per endpoint: Cache-Control: max-age=0. HTTP API nie ma wbudowanego cache - uzyj CloudFront.

Zaawansowany

Throttling - chron backend przed przeciazeniem

Domyslny limit to 10,000 requestow/s i burst 5,000 per API per region. Ustaw nizszy limit per method/stage zeby chronic Lambda (np. POST /orders: 100 req/s). Usage plans pozwalaja przydzielic rozne limity per API key - np. plan Free: 1000 req/dzien, plan Pro: 100,000 req/dzien. Przekroczenie limitu zwraca HTTP 429 Too Many Requests. Klient powinien implementowac exponential backoff.

Poczatkujacy

Request validation - odrzucaj bledne requesty wczesnie

REST API moze walidowac body, query parameters i headers przed wywolaniem backendu. Definiujesz JSON Schema modele i przypisujesz je do metod. Bledny request dostaje 400 Bad Request bez wywolania Lambda - oszczedzasz invocations i latency. Walidacja body sprawdza typy, required fields, patterns. HTTP API nie wspiera walidacji - musisz walidowac w Lambda.

Poczatkujacy

API Keys vs Cognito - rozne poziomy autoryzacji

API Keys NIE sa mechanizmem autoryzacji - sluza do identyfikacji klienta i kontroli throttlingu (usage plans). Nie uzywaj ich jako jedynej ochrony API. Do autoryzacji uzywaj: Cognito (aplikacje z uzytkownikami), Lambda Authorizer (niestandardowa logika, np. weryfikacja tokenu z zewnetrznego IdP) lub IAM (komunikacja service-to-service). Mozesz laczyc API Key z Cognito dla pelnej kontroli.

Zaawansowany

Direct service integration - pomin Lambda

Zamiast Lambda jako proxy do SQS, DynamoDB czy Step Functions, uzyj bezposredniej integracji AWS Service. API Gateway moze wrzucic wiadomosc do SQS, zapisac do DynamoDB lub uruchomic Step Function bez Lambda posrednika. Eliminujesz cold start, zmniejszasz latency o 50-100ms i oszczedzasz na Lambda invocations. Wymaga konfiguracji VTL (Velocity Template Language) mapping templates w REST API.

Zaawansowany

Screenshoty z AWS Console

Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z Amazon API Gateway bezposrednio w konsoli AWS.

Do czego sluzy Amazon API Gateway?

01

Serverless REST API

Stwórz REST API zintegrowane z Lambda - każdy endpoint to osobna funkcja. Zero serwerów, płacisz tylko za requesty.

02

Backend dla aplikacji mobilnych

Jedno API Gateway obsługuje requesty z iOS, Android i web. Wbudowana autoryzacja przez Cognito i API keys.

03

Aplikacje real-time (WebSocket)

Buduj czaty, powiadomienia push i dashboardy live z dwukierunkową komunikacją WebSocket.

04

Fasada dla mikroserwisów

Jedno API Gateway jako single entry point dla wielu mikroserwisów. Routing na podstawie ścieżki, nagłówków czy parametrów.

Co musisz wiedziec?

REST API

Pełnofunkcyjne API z walidacją requestów, transformacją, cache i generowaniem SDK. Droższe, ale najbogatsze w funkcje.

HTTP API

Lżejsza i tańsza wersja REST API - do 71% taniej. Idealna dla prostych proxy do Lambda/HTTP bez zaawansowanych transformacji.

WebSocket API

API z dwukierunkową komunikacją w czasie rzeczywistym. Klienci utrzymują stałe połączenie, serwer może pushować dane bez odpytywania.

Stage

Wdrożona wersja API (np. dev, staging, prod). Każdy stage ma własny URL, zmienne i konfigurację throttlingu.

Throttling

Ograniczanie liczby requestów na sekundę. Chroni backend przed przeciążeniem. Domyślny limit: 10 000 req/s na region.

Authorizer

Mechanizm autoryzacji requestów. Wspiera Lambda Authorizer (custom logic), Cognito User Pools i JWT (dla HTTP API).

Architektura serverless API z API Gateway

API Gateway jako brama wejsciowa do serverless backendu z autoryzacja Cognito i wieloma targetami integracji.

Klient (Web / Mobile) Aplikacja frontendowa wysylajaca requesty HTTP/HTTPS do API
JWT Token
Amazon Cognito
Amazon Cognito Autoryzacja JWT - weryfikuje token uzytkownika przed przekazaniem do backendu
Integracja
API Gateway
API Gateway Brama API z throttlingiem, walidacja, cache i routingiem do backendu
AWS Lambda
AWS Lambda Logika biznesowa - przetwarzanie requestow, operacje CRUD, transformacje danych
ECS / HTTP Backend
ECS / HTTP Backend Kontenery lub zewnetrzny serwer HTTP dla ciezszych workloadow przez VPC Link
CloudWatch
CloudWatch Logi dostepu, metryki latency, bledy 4xx/5xx, alarmy na anomalie
HTTP API jest do 70% tansze niz REST API - wybieraj je jako domyslne dla nowych projektow
Direct service integration (np. API GW -> SQS) eliminuje Lambda i redukuje latency o 50-100ms
Throttling na poziomie metody chroni backend - ustaw limity per endpoint, nie tylko globalne

Porownanie REST API vs HTTP API

Cecha HTTP API REST API
Latencja ~60% nizsza Wyzsza
Koszt $1.00/mln req $3.50/mln req
WebSocket Nie Tak
Caching Nie Tak (0.5-237 GB)
WAF integration Nie Tak
Custom domain Tak Tak
Authorizers JWT, Lambda IAM, Cognito, Lambda
Najlepszy dla Lambda backends, mikroserwisy Pelna kontrola, caching, WAF

Ile kosztuje Amazon API Gateway?

REST API

Opłata za milion requestów plus opcjonalny cache. Zawiera walidację, transformacje i SDK.

$3.50 za milion requestów (pierwsze 333 mln)

HTTP API

Tańsza opcja - opłata za milion requestów. Do 71% taniej niż REST API.

$1.00 za milion requestów (pierwsze 300 mln)

WebSocket API

Opłata za wysłane wiadomości i minuty połączenia.

$1.00/mln wiadomości + $0.25/mln minut połączenia

Cache

Opcjonalny cache odpowiedzi API. Zmniejsza liczbę wywołań backendu i poprawia latency.

0.5 GB cache: $0.02/godz. (~$14/mies.)

Przyklady AWS CLI

Utwórz REST API

Tworzy nowe REST API z opisem

aws apigateway create-rest-api \
 --name "Moje API" \
 --description "API produkcyjne dla aplikacji mobilnej" \
 --endpoint-configuration types=REGIONAL

Utwórz HTTP API

Tworzy HTTP API zintegrowane z funkcją Lambda

aws apigatewayv2 create-api \
 --name "Moje HTTP API" \
 --protocol-type HTTP \
 --target arn:aws:lambda:eu-central-1:123456789012:function:mojaFunkcja

Wdróż API na stage

Tworzy deployment i stage produkcyjny dla REST API

aws apigateway create-deployment \
 --rest-api-id abc123def \
 --stage-name prod \
 --stage-description "Produkcja"

Sprawdź statystyki API

Pobiera metryki requestów z CloudWatch dla danego API

aws cloudwatch get-metric-statistics \
 --namespace AWS/ApiGateway \
 --metric-name Count \
 --dimensions Name=ApiName,Value="Moje API" \
 --start-time 2024-01-01T00:00:00Z \
 --end-time 2024-01-02T00:00:00Z \
 --period 3600 --statistics Sum

Quiz: Amazon API Gateway

Sprawdz czy dobrze rozumiesz podstawy. Kliknij odpowiedz — feedback pojawi sie od razu.

Twoj wynik: 0 / 4

1. Które API w API Gateway jest najtańsze dla prostego proxy do Lambda?

2. Co to jest Stage w API Gateway?

3. Jaki jest domyślny limit throttlingu API Gateway na region?

4. Które API Gateway wspiera komunikację dwukierunkową w czasie rzeczywistym?

Chcesz poznac Amazon API Gateway w praktyce?

Darmowy kurs "AWS od podstaw" pokazuje jak uzywac Amazon API Gateway krok po kroku. Teoria + praktyka od zera.

Zacznij darmowy kurs Wszystkie serwisy