AWS Elastic Beanstalk
PaaS Cloud Practitioner Solutions Architect Associate Developer Associate

AWS Elastic Beanstalk

AWS Elastic Beanstalk

Wrzuć kod, a AWS zajmie się resztą. Automatyczne provisioning, load balancing, skalowanie i monitoring.

AWS Elastic Beanstalk to serwis PaaS (Platform as a Service), który pozwala wdrożyć aplikację webową w AWS bez ręcznego konfigurowania infrastruktury. Wrzucasz kod (ZIP lub Docker image), wybierasz platformę (Node.js, Python, Java, .NET, PHP, Ruby, Go, Docker) i Beanstalk automatycznie tworzy: instancje EC2, load balancer, auto scaling group, security groups, CloudWatch monitoring.

Beanstalk to idealne rozwiązanie dla zespołów, które chcą szybko wdrażać aplikacje bez bycia ekspertem od infrastruktury. Zachowujesz pełną kontrolę nad zasobami (to Twoje EC2, Twój ALB, Twoja RDS) i możesz je dostosować, ale nie musisz konfigurować od zera.

Beanstalk sam w sobie jest darmowy - płacisz tylko za zasoby AWS, które tworzy (EC2, RDS, ALB itp.).

Czy wiesz, ze...

Elastic Beanstalk istnieje od 2011 roku i wciąż jest aktywnie rozwijany. Pod spodem tworzy standardowe zasoby AWS (EC2, ALB, ASG) - widoczne w konsoli i w pełni konfigurowalne. To NIE jest zamknięty black-box.

Pro Tip

Używaj pliku .ebextensions/ w katalogu projektu do customizacji środowiska: instalacja pakietów, konfiguracja plików, zmienne środowiskowe, commands. Dla Docker-based aplikacji rozważ Beanstalk Multi-container lub od razu ECS Fargate.

AWS Elastic Beanstalk automatyzuje provisionowanie infrastruktury - Ty dostarczasz kod, a Beanstalk tworzy i zarzadza EC2, ALB, Auto Scaling, bazami danych i monitoringiem. Ponizej przedstawiamy caly proces od aplikacji po aktualizacje.

1

Utworzenie aplikacji (Application)

Aplikacja w Beanstalk to logiczny kontener na wiele srodowisk (environments). Tworzysz ja przez konsole, CLI (eb init) lub CloudFormation. Aplikacja przechowuje wersje kodu (application versions) jako archiwa ZIP/WAR w S3. Mozesz miec wiele aplikacji - np. "web-frontend", "api-backend", "worker-processor".

2

Utworzenie srodowiska (Environment)

Srodowisko to dzialajaca instancja aplikacji z cala infrastruktura. Dwa typy: Web Server (obsluguje HTTP traffic z ALB) i Worker (przetwarza wiadomosci z SQS). Kazde srodowisko ma unikalne URL (np. myapp-prod.elasticbeanstalk.com). Tworzysz osobne srodowiska: dev, staging, production - kazde z wlasna konfiguracja.

3

Wybor platformy

Beanstalk wspiera platformy: Node.js, Python, Java SE, Java Tomcat, PHP, Ruby, .NET, Go i Docker (single/multi-container). Kazda platforma ma wersje (np. "Node.js 18 running on Amazon Linux 2023"). Platformy sa regularnie aktualizowane przez AWS - dostajesz patche bezpieczenstwa bez wysilku. Docker pozwala uruchomic dowolny stack - nawet niewspierany natywnie.

4

Upload kodu (Application Version)

Deployujesz kod jako archiwum ZIP (lub WAR dla Javy). CLI (eb deploy) automatycznie pakuje i uploaduje. Mozesz tez deployowac z S3 lub CodeCommit. Kazdy deploy tworzy nowa "application version" - mozesz wrocic do poprzedniej wersji jednym kliknieciem (rollback). Beanstalk przechowuje do 1000 wersji aplikacji.

5

Konfiguracja skalowania

Beanstalk konfiguruje Auto Scaling Group automatycznie. Ustawiasz: min/max instancji, metryki skalowania (CPU, Network, Latency, Request Count), cool-down period. Mozesz tez wybrac typ instancji, Spot instances (oszczednosc do 90%), czy single instance (bez ALB - tansze dla dev). Konfiguracja przez konsole, .ebextensions lub saved configurations.

6

Wdrazanie aktualizacji (Deployments)

Strategie deploymentu: All at once (najszybszy, downtime), Rolling (po grupach, brak downtime), Rolling with additional batch (utrzymuje full capacity), Immutable (nowe instancje, safest), Traffic splitting (canary deployment). Dla produkcji zalecamy Immutable lub Traffic splitting - w razie problemu automatyczny rollback do starych instancji.

Praktyczne wskazowki z produkcyjnego uzycia Elastic Beanstalk - od zaawansowanej konfiguracji po optymalizacje kosztow.

.ebextensions - zaawansowana kustomizacja

Katalog .ebextensions/ w kodzie aplikacji zawiera pliki YAML konfigurujace srodowisko. Mozesz: instalowac pakiety systemowe (packages), tworzyc pliki konfiguracyjne (files), uruchamiac komendy (commands/container_commands), konfigurowac serwisy systemowe (services). Przyklad: instalacja nginx custom config, dodanie cron joba, konfiguracja CloudWatch agent.

Zaawansowany

Immutable deployments dla bezpieczenstwa

Immutable deployment tworzy nowy Auto Scaling Group z nowymi instancjami, uruchamia health checki i dopiero po sukcesie przelacza ruch. Stare instancje sa usuwane po potwierdzeniu zdrowia nowych. To najbezbpieczniejsza strategia - w razie bledu stare instancje dalej dzialaja. Wada: zajmuje wiecej czasu (3-5 minut) i chwilowo podwaja koszty instancji.

Poczatkujacy

Docker multi-container

Beanstalk z Docker wspiera wielokontenerowe srodowiska przez docker-compose.yml (Amazon Linux 2023) lub Dockerrun.aws.json v2 (ECS-based). Mozesz uruchomic np. aplikacje Node.js + Redis + Nginx jako reverse proxy na jednym homodze. Dla bardziej zlozonych deploymentow rozwaaz migracje do ECS/Fargate - wiecej kontroli i lepsza skalowalnosc.

Zaawansowany

Saved configurations - reuzywalne szablony

Saved configurations pozwalaja zapisac pelna konfiguracje srodowiska (typ instancji, scaling, zmienne srodowiskowe, VPC) i odtworzyc ja pozniej. Uzyj do: klonowania srodowisk (dev -> staging), disaster recovery, standaryzacji konfiguracji miedzy zespolami. Konfiguracje sa zapisane w S3 i mozna je wersjonowac w Git.

Poczatkujacy

Klonowanie srodowisk

Environment cloning tworzy dokladna kopie srodowiska - ta sama konfiguracja, wersja kodu i ustawienia. Idealne do: tworzenia staging z produkcji, testowania zmian konfiguracji, blue-green deploymentow. Klonowanie kopiuje wszystko oprocz danych w RDS - dla bazy musisz zrobic snapshot i przywrocic osobno.

Poczatkujacy

Koszty = koszty zasobow bazowych

Beanstalk sam w sobie jest darmowy - placisz tylko za zasoby, ktore tworzy (EC2, ALB, RDS, S3). Dla srodowisk dev uzyj single instance (bez ALB - oszczedzasz ~$20/miesiac) i t3.micro/t4g.micro. Dla produkcji uzyj mix On-Demand + Spot Instances. Pamietaj o lifecycle policy dla starych application versions - domyslnie 1000 wersji w S3 generuje koszty storage.

Poczatkujacy

Screenshoty z AWS Console

Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z AWS Elastic Beanstalk bezposrednio w konsoli AWS.

Do czego sluzy AWS Elastic Beanstalk?

01

Szybki deploy aplikacji webowej

Masz aplikację w Django, Rails, Express.js, Spring Boot lub Laravel? eb create + eb deploy i masz ją na AWS z load balancerem i HTTPS w kilka minut.

02

Środowiska dev/staging/production

Twórz osobne środowiska Beanstalk. Klonuj environment, testuj zmiany na staging, potem swap URL z produkcją - zero downtime.

03

Aplikacje Docker

Wrzuć Dockerfile lub docker-compose.yml. Beanstalk zbuduje obraz, uruchomi kontener i skonfiguruje load balancer.

04

Nauka AWS bez DevOps expertise

Beanstalk pokazuje jak działają EC2, ALB, ASG, CloudWatch w praktyce. Widzisz zasoby, ale nie musisz ich konfigurować ręcznie.

Co musisz wiedziec?

Application

Logiczny kontener grupujący environments, versions i konfiguracje. Np. "moja-app" to Application, "moja-app-prod" i "moja-app-dev" to Environments.

Environment

Uruchomiona instancja aplikacji. Dwa typy: Web Server (z ALB, obsługuje HTTP) i Worker (przetwarza zadania z SQS, bez load balancera).

Platform

Kombinacja OS + runtime + web server. Np. "Python 3.11 running on 64bit Amazon Linux 2023". AWS aktualizuje platformy automatycznie.

Deployment Policy

Strategia wdrażania: All at once (downtime), Rolling (po jednej instancji), Immutable (nowe instancje, swap), Blue/Green (nowy environment, swap URL).

.ebextensions

Katalog z plikami YAML (.config) do customizacji: packages, commands, files, services. Pełna kontrola nad konfiguracją serwera.

Architektura: Zarzadzana aplikacja webowa na Elastic Beanstalk

Typowa architektura aplikacji webowej na Elastic Beanstalk. Beanstalk automatycznie provisionuje i zarzadza wszystkimi komponentami - developer skupia sie na kodzie, a infrastruktura jest zarzadzana przez platforme.

Developer eb deploy - upload kodu i uruchomienie deploymentu
Deploy
Elastic Beanstalk
Elastic Beanstalk Orkiestracja deploymentu, zarzadzanie cyklem zycia srodowiska
Provisioning
EC2 (Auto Scaling)
EC2 (Auto Scaling) Instancje aplikacji z automatycznym skalowaniem na podstawie obciazenia
HTTP/HTTPS
Application Load Balancer
Application Load Balancer Dystrybucja ruchu, SSL termination, health checks
TCP :5432
Amazon RDS
Amazon RDS Zarzadzana baza danych (polaczona lub zewnetrzna)
Logs/Metrics
S3 + CloudWatch
S3 + CloudWatch S3: storage wersji aplikacji. CloudWatch: logi, metryki, alarmy
Dla produkcji tworzRDS poza Beanstalk (osobny CloudFormation stack) - usuniecie srodowiska Beanstalk nie usunie wtedy bazy danych i nie stracisz danych.
Skonfiguruj .ebextensions/cloudwatch.config do wysylania logow aplikacji do CloudWatch Logs - domyslnie Beanstalk wysyla tylko logi platformy, nie aplikacji.
Uzyj immutable deployment strategy z health check grace period ustawionym na czas startu aplikacji (np. 120 sekund dla Javy), aby uniknac falszywych rollbackow.

Porównanie metod wdrażania aplikacji

Cecha Elastic Beanstalk ECS Fargate Lambda
Typ PaaS (kod/Docker) Kontenery (Docker) Funkcje (kod)
Zarządzanie infra Automatyczne Minimalne (serverless) Zero (serverless)
Skalowanie EC2 Auto Scaling Task auto scaling Automatyczne 0-1000s
Długo-działające procesy Tak (serwer 24/7) Tak (kontener 24/7) Max 15 minut
Idealny dla Tradycyjne app webowe Mikrousługi, Docker Event-driven, API
Koszt minimum ~$10/mies. ~$15/mies. Grosze / Free Tier

Ile kosztuje AWS Elastic Beanstalk?

Elastic Beanstalk

Sam serwis jest DARMOWY. Płacisz tylko za zasoby AWS, które tworzy: EC2, RDS, ALB, EBS, S3.

$0.00 za Beanstalk

Typowe zasoby (small app)

Mała aplikacja: 1x t3.small EC2 + ALB + 20GB EBS + RDS db.t3.micro.

~$30-50/miesiąc (z Free Tier mniej)

Auto Scaling

Beanstalk konfiguruje ASG automatycznie. Gdy ruch spada, ASG usuwa zbędne instancje.

Min 1 instancja, max konfigurowalny

Free Tier

Beanstalk jest darmowy. Zasoby: t3.micro EC2 + db.t3.micro RDS - w ramach Free Tier przez 12 miesięcy.

Mała aplikacja za $0 przez rok

Przyklady AWS CLI

Inicjalizuj projekt Beanstalk

Konfiguruje projekt w bieżącym katalogu (EB CLI)

eb init moja-aplikacja \
 --platform "Python 3.11" \
 --region eu-central-1

Utwórz środowisko i wdróż

Tworzy nowe environment z load balancerem i wdraża kod

eb create moja-aplikacja-prod \
 --instance_type t3.small \
 --elb-type application

Wdróż nową wersję

Deploy aktualnego kodu na istniejące environment

eb deploy moja-aplikacja-prod

Quiz: AWS Elastic Beanstalk

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

Twoj wynik: 0 / 3

1. Ile kosztuje sam serwis Elastic Beanstalk?

2. Która strategia deploymentu zapewnia zero downtime?

3. Jakie zasoby tworzy Beanstalk pod spodem?

Chcesz poznac AWS Elastic Beanstalk w praktyce?

Darmowy kurs "AWS od podstaw" pokazuje jak uzywac AWS Elastic Beanstalk krok po kroku. Teoria + praktyka od zera.

Zacznij darmowy kurs Wszystkie serwisy