AWS App Runner
Compute Cloud Practitioner Solutions Architect Associate

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.

Czy wiesz, ze...

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).

Pro Tip

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.

1

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.

2

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.

3

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.

4

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.

5

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.

6

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.

Poczatkujacy

VPC 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.

Poczatkujacy

Auto 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.

Zaawansowany

Custom 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).

Poczatkujacy

Observability 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.

Zaawansowany

Build 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.

Poczatkujacy

Screenshoty 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?

01

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.

02

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.

03

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.

04

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.

GitHub / ECR
GitHub / ECR Zrodlo kodu lub obraz kontenera triggerujacy deployment
auto deploy
AWS App Runner
AWS App Runner Buduje, deployuje i auto-skaluje aplikacje z HTTPS i custom domain
private network
VPC Connector
VPC Connector Laczy App Runner z prywatnymi zasobami w VPC przez ENI
SQL / Redis
RDS / ElastiCache
RDS / ElastiCache Prywatna baza danych i cache dostepne przez VPC Connector
monitoring
CloudWatch + X-Ray
CloudWatch + X-Ray Logi, metryki i distributed tracing dla pelnej observability
App Runner automatycznie zarzadza load balancerem, certyfikatami SSL i skalowaniem bez konfiguracji.
VPC Connector jest wymagany do komunikacji z prywatnymi zasobami (RDS, ElastiCache, wewnetrzne API).
Automatic deployments z GitHub eliminuja potrzebe budowania osobnego pipeline CI/CD.

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.

Twoj wynik: 0 / 3

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?

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.

Zacznij darmowy kurs Wszystkie serwisy