AWS App Runner
AWS App Runner
Najszybszy sposób na wdrożenie aplikacji webowej w AWS. Podaj kod źródłowy lub obraz kontenera - App Runner zajmie się resztą: build, deploy, TLS, scaling i monitoring.
AWS App Runner to w pełni zarządzany serwis, który pozwala wdrażać aplikacje webowe i API bezpośrednio z kodu źródłowego (GitHub) lub obrazu kontenera (ECR). Nie musisz konfigurować serwerów, load balancerów, certyfikatów SSL ani reguł auto-scalingu - App Runner robi to automatycznie.
Po wdrożeniu aplikacja otrzymuje publiczny HTTPS endpoint z certyfikatem TLS, automatycznie skaluje się od zera do potrzebnej liczby instancji i obsługuje rolling deployments. Możesz podłączyć własną domenę, skonfigurować VPC connector do łączenia z prywatnymi zasobami (RDS, ElastiCache) oraz monitorować aplikację przez wbudowane logi i metryki.
App Runner utrzymuje minimum 1 instancje (nie skaluje sie do zera), ale bezczynne instancje sa naliczane po nizszej stawce idle - dzieki temu koszt przy braku ruchu jest minimalny, a pierwsze zadanie nie wymaga cold startu. Gdy przyjdzie pierwsze żądanie, instancja jest uruchamiana automatycznie (cold start trwa kilka sekund).
Jeśli zależy Ci na niskim latency, ustaw minSize na co najmniej 1 w konfiguracji auto-scalingu. Dzięki temu zawsze będzie jedna "ciepła" instancja gotowa do obsługi żądań bez cold startu. Koszt idle instancji jest dużo niższy niż aktywnej.
AWS App Runner to w pelni zarzadzany serwis do szybkiego wdrazania aplikacji webowych i API bezposrednio z kodu zrodlowego lub obrazu kontenera. App Runner automatycznie buduje, deployuje, skaluje i zabezpiecza aplikacje - nie musisz konfigurowac infrastruktury, load balancerow ani certyfikatow SSL. To najprostszy sposob na uruchomienie aplikacji webowej w AWS, idealny gdy zalezy Ci na szybkosci wdrozenia bez poswiecania produkcyjnej jakosci.
Podlaczenie zrodla (ECR lub GitHub)
App Runner wspiera dwa zrodla: obraz kontenera z ECR (publiczny lub prywatny) i repozytorium kodu z GitHub. Dla ECR wskazujesz URI obrazu - App Runner deployuje go bezposrednio. Dla GitHub laczysz konto przez AWS Connector for GitHub, wybierasz repo i branch. Mozesz wlaczyc automatic deployments - kazdy push do brancha automatycznie triggeruje nowy deployment. Manual deployment wymaga recznego klikniecia lub wywolania API. Automatic deployments to odpowiednik prostego CI/CD bez pisania pipeline.
Konfiguracja buildu
Dla zrodla GitHub, App Runner automatycznie wykrywa runtime (Python, Node.js, Java, Go, .NET, Ruby, PHP) i buduje aplikacje. Konfiguracja buildu moze byc w pliku apprunner.yaml w repozytorium lub w konsoli. Definiujesz: komendy build (npm install, pip install), komendy start (npm start, gunicorn), port aplikacji i zmienne srodowiskowe. Dla bardziej zlozonych buildow (multi-stage, custom dependencies) lepiej zbudowac obraz Docker i uzyc ECR jako zrodla - daje to pelna kontrole nad srodowiskiem.
Konfiguracja instancji (CPU/Memory)
App Runner pozwala wybrac kombinacje CPU i pamieci dla instancji: od 0.25 vCPU / 0.5 GB RAM do 4 vCPU / 12 GB RAM. Kazda instancja obsluguje wiele rownoleglych requestow (konfigurowalny concurrency, domyslnie 100). Wiecej CPU jest potrzebne dla obliczen intensywnych (rendering, kompresja), wiecej RAM dla aplikacji z duzym stanem w pamieci (cache, duze payloady). Zacznij od 1 vCPU / 2 GB i dostosuj na podstawie metryk CPU/memory utilization w CloudWatch.
Deployment i wersjonowanie
Kazdy deployment tworzy nowa wersje aplikacji. App Runner wykonuje rolling deployment - nowa wersja jest uruchamiana obok starej, przechodzi health check, a dopiero po sukcesie ruch jest przekierowywany. Jezeli nowa wersja nie przejdzie health check, deployment jest oznaczany jako failed i stara wersja pozostaje aktywna. Rollback jest natychmiastowy - mozesz wrocic do poprzedniej wersji jednym kliknieciem. Historia deploymentow jest dostepna w konsoli z logami buildu i runtime.
Custom domain z automatycznym HTTPS
App Runner automatycznie generuje URL (np. xyz123.awsapprunner.com) z certyfikatem SSL. Mozesz dodac wlasna domene - App Runner automatycznie provisionuje i odnawia certyfikat SSL/TLS przez ACM. Konfiguracja: dodaj custom domain w konsoli, stworz rekordy CNAME i walidacyjne DNS u swojego rejestratora, poczekaj na walidacje certyfikatu (kilka minut). Wspiera subdomeny (api.example.com) i root domain (example.com). Mozesz podlaczyc wiele domen do jednego serwisu.
Auto scaling - automatyczne skalowanie
App Runner automatycznie skaluje liczbe instancji na podstawie ruchu. Konfiguracja auto scaling obejmuje: max concurrency (ile rownoleglych requestow na instancje, domyslnie 100), max size (maksymalna liczba instancji, domyslnie 25), min size (minimalna liczba instancji, domyslnie 1). Przy wzroscie ruchu App Runner dodaje instancje, przy spadku - redukuje. Min size 1 oznacza, ze zawsze jest co najmniej jedna instancja (brak cold start). Ustawienie min size na 0 nie jest mozliwe - App Runner nie skaluje do zera.
Praktyczne wskazowki z uzycia App Runner - od porownania z ECS i Lambda po integracje z zasobami VPC i strategie observability.
Kiedy App Runner vs ECS vs Lambda
App Runner wybieraj gdy: chcesz najszybciej wdrozyc aplikacje webowa bez zarzadzania infrastruktura, Twoja aplikacja to standardowy web server (HTTP), nie potrzebujesz zaawansowanej konfiguracji sieciowej. ECS wybieraj gdy: potrzebujesz pelnej kontroli nad networking, task placement, service mesh, sidecar containers lub masz zlozony deployment pipeline. Lambda wybieraj dla: event-driven functions, krotkich operacji (<15 min), aplikacji z nieprzewidywalnym ruchem i potrzeba skalowania do zera. App Runner to zloty srodek miedzy prostota Lambda a kontrola ECS.
PoczatkujacyVPC Connector dla prywatnych zasobow
Domyslnie App Runner dziala w zarzadzanym VPC AWS i nie ma dostepu do Twoich prywatnych zasobow (RDS, ElastiCache, prywatne API). VPC Connector umozliwia polaczenie App Runner z Twoim VPC - konfiguracja wymaga subnets i Security Groups. Po podlaczeniu aplikacja moze komunikowac sie z zasobami w VPC (bazy danych, cache, internal services). Pamietaj: ruch do VPC idzie przez ENI w Twoich subnetach, wiec potrzebujesz wystarczajacej liczby dostepnych adresow IP. Uzyj prywatnych subnetow z NAT Gateway dla dostepu do internetu.
PoczatkujacyAuto scaling - optymalna konfiguracja
Domyslny max concurrency 100 sprawdza sie dla wiekszosci web API. Obniz go (np. do 10-25) dla CPU-intensywnych endpointow (przetwarzanie obrazow, generowanie raportow) - zapobiega to przeciazeniu instancji. Zwieksz go (do 200) dla lekkich endpointow (health check, proste CRUD). Min size wieksze niz 1 eliminuje cold start podczas skalowania, ale zwieksza koszty (placisz za provisioned instances nawet bez ruchu). Monitoruj metryki ActiveInstances i RequestCount, aby dopasowac konfiguracje.
ZaawansowanyCustom domains z automatycznym HTTPS
App Runner automatycznie generuje i odnawia certyfikaty SSL dla custom domen. Po dodaniu domeny w konsoli otrzymujesz rekordy DNS do skonfigurowania. Proces walidacji trwa kilka minut. Wspierane sa subdomeny (api.example.com, www.example.com) i apex domain (example.com - wymaga rekordu ALIAS lub ANAME u rejestratora). Mozesz podlaczyc wiele domen do jednego serwisu. Stary URL *.awsapprunner.com nadal dziala - jesli chcesz go wylaczyc, nie ma na to natywnej opcji (rozwaaz WAF).
PoczatkujacyObservability z X-Ray i CloudWatch
App Runner natywnie integruje sie z CloudWatch (logi i metryki) oraz X-Ray (distributed tracing). Metryki automatyczne: RequestCount, 2xxStatusResponses, 4xxStatusResponses, 5xxStatusResponses, RequestLatency, ActiveInstances. Logi aplikacji trafiaja do CloudWatch Logs automatycznie. Dla X-Ray dodaj SDK do aplikacji (aws-xray-sdk) i wlacz tracing w konfiguracji App Runner. X-Ray pozwala sledzic requesty miedzy App Runner, DynamoDB, S3 i innymi serwisami - kluczowe dla debugowania latencji w architekturze rozproszonej.
ZaawansowanyBuild caching dla szybszych deploymentow
App Runner cachuje warstwy Docker i zaleznosci miedzy buildami, co znaczaco przyspiesza kolejne deploymenty. Aby maksymalnie wykorzystac cache: umieszczaj instrukcje COPY package*.json i RUN npm install przed COPY kodu zrodlowego w Dockerfile - zmiana kodu nie invaliduje cache zaleznosci. Dla zrodla GitHub upewnij sie, ze plik konfiguracyjny apprunner.yaml ma poprawne komendy build - App Runner cachuje wyniki install miedzy buildami. Typowe przyspieszenie: z 5-10 minut do 1-2 minut dla projektow Node.js/Python.
PoczatkujacyScreenshoty z AWS Console
Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z AWS App Runner bezposrednio w konsoli AWS.
Do czego sluzy AWS App Runner?
Szybkie wdrożenie API i mikroserwisów
Podłącz repozytorium GitHub z aplikacją Python, Node.js, Java lub Go. App Runner automatycznie buduje i wdraża przy każdym push do main branch.
Aplikacje frontendowe z backendem
Wdrożenie full-stack aplikacji (Next.js, Nuxt.js) z server-side rendering. Automatyczny TLS i CDN-like wydajność bez konfiguracji.
MVP i prototypy
Od kodu do działającego URL w minuty, nie godziny. Idealny dla startupów i hackathonów, gdzie liczy się szybkość wdrożenia, nie optymalizacja infrastruktury.
Wewnętrzne narzędzia i dashboardy
Proste wdrożenie wewnętrznych aplikacji z VPC connector do prywatnych baz danych. Brak konieczności zarządzania ECS task definitions czy Kubernetes manifests.
Co musisz wiedziec?
Source Configuration
Dwa tryby źródła: Code Repository (GitHub z automatycznym buildem) lub Container Registry (obraz z ECR). W trybie kodu App Runner sam buduje obraz używając Buildpacks (Python, Node.js, Java, Go, .NET, Ruby, PHP).
Auto Scaling
Automatyczne skalowanie na podstawie liczby równoczesnych żądań (concurrency). Konfigurujesz min/max instancji i próg concurrency (domyślnie 100 żądań/instancję). Minimalna liczba instancji to 1 - App Runner nie skaluje do zera, ale bezczynne instancje sa taniej naliczane.
VPC Connector
Łączy App Runner z zasobami w prywatnym VPC (RDS, ElastiCache, Elasticsearch). Ruch wychodzący z aplikacji przechodzi przez VPC connector, a przychodzący nadal trafia przez publiczny endpoint.
Automatic Deployments
Przy włączeniu auto-deploy każdy push do GitHub lub nowy obraz w ECR automatycznie wyzwala nowe wdrożenie. Rolling deployment zapewnia zero downtime podczas aktualizacji.
Custom Domain
Podłączenie własnej domeny z automatycznym certyfikatem TLS. App Runner tworzy rekordy CNAME do walidacji i konfiguracji DNS. Obsługa subdomen i apex domains.
Observability
Wbudowane logi aplikacji w CloudWatch Logs, metryki (request count, latency, HTTP errors) w CloudWatch Metrics oraz integracja z X-Ray do distributed tracing.
Architektura: AWS App Runner z dostepem do VPC
Architektura aplikacji webowej na App Runner z automatycznym deploy z GitHub/ECR, polaczeniem do prywatnych zasobow przez VPC Connector i pelnym monitoringiem. App Runner zarzadza load balancingiem, skalowaniem i certyfikatami SSL automatycznie.
Ile kosztuje AWS App Runner?
Compute (aktywne instancje)
Opłata za vCPU i pamięć aktywnych instancji przetwarzających żądania. Naliczana za sekundę.
$0.064/vCPU-godz. + $0.007/GB-godz.
Provisioned instances (idle)
Niższa opłata za instancje w trybie idle (gotowe, ale bez ruchu). Pozwala na szybkie skalowanie bez cold start.
$0.007/GB-godz. (brak opłaty za vCPU w idle)
Automatic deployments
Opłata za minuty budowania aplikacji z kodu źródłowego. Brak opłaty przy wdrożeniu z gotowego obrazu kontenera.
$0.005/min. budowania
Przyklady AWS CLI
Utwórz serwis z obrazu ECR
Tworzy serwis App Runner z obrazu kontenera w ECR
aws apprunner create-service \
--service-name my-api \
--source-configuration "{\"ImageRepository\":{\"ImageIdentifier\":\"123456789012.dkr.ecr.eu-central-1.amazonaws.com/my-api:latest\",\"ImageRepositoryType\":\"ECR\",\"ImageConfiguration\":{\"Port\":\"8080\"}},\"AutoDeploymentsEnabled\":true}"
Utwórz VPC connector
Tworzy connector do łączenia z zasobami w prywatnym VPC
aws apprunner create-vpc-connector \
--vpc-connector-name my-vpc-connector \
--subnets subnet-0123456789abcdef0 subnet-0123456789abcdef1 \
--security-groups sg-0123456789abcdef0
Podłącz własną domenę
Przypisuje custom domain do serwisu App Runner
aws apprunner associate-custom-domain \
--service-arn arn:aws:apprunner:eu-central-1:123456789012:service/my-api \
--domain-name api.example.com
Skonfiguruj auto scaling
Tworzy konfigurację auto-scalingu z limitem concurrency
aws apprunner create-auto-scaling-configuration \
--auto-scaling-configuration-name my-scaling \
--max-concurrency 50 \
--min-size 1 \
--max-size 10
Quiz: AWS App Runner
Sprawdz czy dobrze rozumiesz podstawy. Kliknij odpowiedz — feedback pojawi sie od razu.
1. Z jakich źródeł App Runner może wdrażać aplikacje?
2. Do czego służy VPC Connector w App Runner?
3. Na jakiej podstawie App Runner automatycznie skaluje instancje?
Czesto uzywane razem z AWS App Runner
Czytaj więcej o AWS App Runner
Chcesz poznac AWS App Runner w praktyce?
Darmowy kurs "AWS od podstaw" pokazuje jak uzywac AWS App Runner krok po kroku. Teoria + praktyka od zera.