AWS Auto Scaling
Management Cloud Practitioner Solutions Architect Associate SysOps Administrator

AWS Auto Scaling

AWS Auto Scaling

Automatycznie dopasowuj liczbę zasobów do aktualnego obciążenia. Oszczędzaj gdy ruch spada i skaluj gdy rośnie - bez ręcznej interwencji.

AWS Auto Scaling to serwis, który automatycznie dostosowuje liczbę zasobów do aktualnego zapotrzebowania. Gdy ruch na Twojej aplikacji rośnie, Auto Scaling dodaje instancje. Gdy ruch spada - usuwa niepotrzebne zasoby. Płacisz tylko za to, czego faktycznie potrzebujesz.

Auto Scaling obsługuje nie tylko EC2 Auto Scaling Groups, ale też Application Auto Scaling dla DynamoDB, ECS, Aurora, Lambda i wielu innych serwisów. Możesz konfigurować polityki target tracking (utrzymuj CPU na 70%), step scaling (dodaj 2 instancje gdy CPU > 80%), scheduled (skaluj o 8:00 rano) i predictive scaling (prognozuj ruch na podstawie historii).

Czy wiesz, ze...

Predictive Scaling w AWS analizuje do 14 dni historycznych danych, aby przewidzieć przyszłe obciążenie. Netflix, jeden z największych klientów AWS, używa Auto Scaling do obsługi skoków widowni - np. premier nowych sezonów seriali mogą wymagać tysięcy dodatkowych instancji w ciągu minut.

Pro Tip

Zawsze ustawiaj min-size na co najmniej 2 instancje w różnych Availability Zones dla aplikacji produkcyjnych. Używaj target tracking zamiast step scaling - jest prostszy i lepiej się dostosowuje. Łącz predictive scaling z target tracking: predictive skaluje proaktywnie, a target tracking dopasowuje reaktywnie.

AWS Auto Scaling automatycznie dostosowuje liczbe instancji EC2 do aktualnego obciazenia. Ponizej opisujemy caly cykl - od launch template po zaawansowane polityki skalowania i warm pools.

1

Tworzenie Launch Template

Launch Template definiuje konfiguracje instancji: AMI, typ instancji, Key Pair, Security Groups, IAM Instance Profile, User Data, EBS volumes. Zawsze uzywaj Launch Template zamiast Launch Configuration - Template wspiera wersjonowanie, mixed instances i jest wymagany dla nowych funkcji ASG. Mozesz tworzyc nowe wersje Template bez wplywu na dzialajace instancje.

2

Konfiguracja Auto Scaling Group (ASG)

ASG laczy Launch Template z parametrami skalowania: min capacity (minimum instancji - nigdy ponizej), max capacity (limit gorny), desired capacity (docelowa liczba). Wybierz VPC i subnety w min. 2 Availability Zones dla wysokiej dostepnosci. ASG automatycznie rozmieszcza instancje rownomiernie miedzy AZ (AZ rebalancing). Polacz ASG z ALB/NLB przez Target Group.

3

Polityki skalowania (Scaling Policies)

Target Tracking - utrzymuje metryke na zadanym poziomie (np. CPU 70%). Step Scaling - rozne akcje dla roznych progow (np. +1 instancja przy 60% CPU, +3 przy 80%). Simple Scaling - dodaje/usuwa stala liczbe instancji po alarmie, ma cooldown period. Scheduled Scaling - zmienia capacity o ustalonych porach (np. wiecej instancji w godzinach szczytu). Predictive Scaling - uzywa ML do przewidywania obciazenia na podstawie historii.

4

Health Checks - EC2 i ELB

EC2 health check sprawdza stan maszyny wirtualnej (running vs impaired). ELB health check sprawdza czy aplikacja odpowiada na HTTP requests. Zawsze wlaczaj ELB health check - bez niego ASG nie wykryje sytuacji gdy instancja dziala, ale aplikacja sie zawiasla. Grace period (domyslnie 300s) daje czas na boot aplikacji przed pierwszym sprawdzeniem. Custom health check przez API SetInstanceHealth daje pelna kontrole.

5

Instance Refresh - rolling updates

Instance Refresh pozwala zaktualizowac wszystkie instancje w ASG do nowej wersji Launch Template bez downtime. Konfigurujesz: minimum healthy percentage (np. 90% - co najmniej tyle instancji musi byc healthy), warmup time (czas na rozgrzanie nowej instancji), checkpoint (pauza po wymianie okreslonego procentu instancji). ASG stopniowo terminuje stare instancje i uruchamia nowe.

6

Warm Pools - szybsze skalowanie

Warm Pool utrzymuje pulke pre-initialized instancji w stanie Stopped lub Running. Gdy ASG potrzebuje scale out, bierze instancje z warm pool zamiast uruchamiac od zera. To redukuje czas skalowania z minut do sekund. Konfiguruj: pool size (max liczba instancji w puli), pool state (Stopped = tansze, Running = szybsze). Warm pool jest szczegolnie przydatny gdy boot aplikacji trwa dluzej niz 2-3 minuty.

Praktyczne wskazowki dotyczace konfiguracji Auto Scaling w produkcji - od wyboru polityki skalowania po optymalizacje kosztow z wykorzystaniem Spot Instances.

Target Tracking - najlepsza polityka na start

Target Tracking to najprostsza i najczesciej wystarczajaca polityka. Ustaw ASGAverageCPUUtilization na 70% i ASG sam decyduje ile instancji dodac/usunac. Dla aplikacji webowych lepszym targetem jest ALBRequestCountPerTarget (np. 1000 requestow/instancje). Unikaj ustawiania targetu ponizej 40% - nadmiarowe instancje generuja niepotrzebne koszty. Mozesz laczyc wiele Target Tracking policies (CPU + request count).

Poczatkujacy

Predictive Scaling dla przewidywalnych wzorcow

Predictive Scaling analizuje 14 dni historii metryk i przewiduje obciazenie na nastepne 48 godzin. Idealne dla: aplikacji e-commerce (wieczorne szczyty), systemow B2B (godziny pracy), cyklicznych batch jobs. Wlacz najpierw w trybie forecast-only, aby sprawdzic dokladnosc predykcji. Po walidacji przelacz na forecast-and-scale. Predictive Scaling skaluje z wyprzedzeniem - instancje sa gotowe zanim przyjdzie obciazenie.

Zaawansowany

Mixed Instances Policy - Spot dla oszczednosci

Mixed Instances Policy pozwala uzyc wielu typow instancji i Spot w jednym ASG. Konfiguruj: base capacity (np. 2 On-Demand - zawsze dostepne), percentage above base as Spot (np. 80% Spot). Wybieraj min. 4-6 typow instancji w 2+ rodzinach (np. m5.large, m5a.large, m4.large, c5.large) - wiecej typow = mniejsze ryzyko Spot interruption. Capacity-optimized allocation strategy wybiera typy z najwieksza dostepnoscia.

Zaawansowany

Warm Pools dla szybszego skalowania

Jesli boot aplikacji trwa ponad 2-3 minuty (np. JVM warmup, cache loading, model loading), warm pool dramatycznie skraca czas reakcji. Instancje w stanie Stopped kosztuja tylko za EBS - daje to szybki start za minimalna cene. Uzywaj lifecycle hooks do pre-warm cache i health checkow przed dolaczeniem do ASG. Dla aplikacji ML/AI z duzymi modelami warm pool w stanie Running (platisz za instancje) jest wart kosztu.

Zaawansowany

Instance Refresh dla rolling updates

Zamiast blue/green deployment calego ASG, uzywaj Instance Refresh do stopniowej wymiany instancji. Ustaw MinHealthyPercentage na 90% (minimum 90% instancji dziala w kazdym momencie). Dodaj checkpoint po 20% wymiany - daje czas na sprawdzenie metryk. Jesli nowa wersja ma bledy, anuluj refresh - pozostale instancje zachowaja stara wersje. Lacz z CodeDeploy dla pelnej automatyzacji CI/CD.

Poczatkujacy

Lifecycle Hooks - graceful start i stop

Lifecycle hooks wstrzymuja instancje w stanie Pending:Wait (przy starcie) lub Terminating:Wait (przy zamykaniu). Uzywaj launch hook do: rejestracji w service discovery, pre-warm cache, uruchomienia testow smoke. Uzywaj terminate hook do: drainingu polaczen z ALB (domyslnie 300s), deregistracji z service discovery, backupu lokalnych danych. Hook timeout to max 48h - ustawiaj 5-15 minut.

Zaawansowany

Screenshoty z AWS Console

Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z AWS Auto Scaling bezposrednio w konsoli AWS.

Do czego sluzy AWS Auto Scaling?

01

Skalowanie aplikacji webowych

Automatycznie dodawaj instancje EC2 za load balancerem gdy ruch rośnie. W Black Friday skalujesz z 2 do 200 instancji - bez ręcznej interwencji.

02

Optymalizacja kosztów

Zmniejsz liczbę instancji w nocy i w weekendy gdy ruch spada. Scheduled scaling pozwala zaoszczędzić 40-60% na zasobach w godzinach poza szczytem.

03

Skalowanie kontenerów ECS

Application Auto Scaling automatycznie dodaje lub usuwa taski ECS/Fargate na podstawie metryki CPU, pamięci lub niestandardowej metryki CloudWatch.

04

Skalowanie baz danych

DynamoDB Auto Scaling dostosowuje Read/Write Capacity Units do ruchu. Aurora Auto Scaling dodaje repliki odczytu gdy obciążenie rośnie.

Co musisz wiedziec?

Auto Scaling Group (ASG)

Grupa instancji EC2 zarządzana automatycznie. Definiujesz min, max i desired capacity. ASG utrzymuje pożądaną liczbę instancji.

Target Tracking Policy

Polityka utrzymująca metrykę na określonym poziomie. Np. "utrzymuj średnie CPU na 70%" - ASG automatycznie dodaje lub usuwa instancje.

Step Scaling Policy

Polityka definiująca konkretne kroki skalowania w zależności od progu metryki. Np. "gdy CPU > 80% dodaj 2 instancje, gdy CPU > 95% dodaj 5".

Scheduled Scaling

Skalowanie według harmonogramu. Np. zwiększ capacity do 10 instancji o 8:00 rano i zmniejsz do 2 o 22:00.

Predictive Scaling

ML-based skalowanie przewidujące ruch na podstawie historycznych wzorców. Skaluje proaktywnie zanim ruch wzrośnie.

Cooldown Period

Okres oczekiwania po akcji skalowania zanim następna może nastąpić. Zapobiega oscylacjom (ciągłemu dodawaniu i usuwaniu instancji).

Architektura: Auto Scaling z multi-AZ i monitoringiem

Typowa architektura produkcyjna z Auto Scaling Group rozpietym na wiele Availability Zones. CloudWatch metryki steruja skalowaniem, ELB health checki zapewniaja dostepnosc, a SNS informuje o zmianach.

CloudWatch Metrics
CloudWatch Metrics CPU, request count, custom metrics - dane do decyzji o skalowaniu
Scaling decisions
Auto Scaling Group
Auto Scaling Group Zarzadzanie flota EC2: scaling policies, health checks, instance refresh, warm pools
Launch/Terminate
EC2 Instances (multi-AZ)
EC2 Instances (multi-AZ) Instancje rozparte na min. 2 AZ z automatycznym rebalancingiem
Health check
Application Load Balancer
Application Load Balancer Rozdzielanie ruchu i ELB health checks dla kazdej instancji
Notyfikacje
Amazon SNS
Amazon SNS Powiadomienia o scale out/in, failed launches, instance refresh progress
Zawsze rozpiaj ASG na min. 2 AZ i ustaw min capacity >= 2 - pojedyncza instancja w jednej AZ to single point of failure.
Lacz Target Tracking (dla normalnych fluktuacji) z Scheduled Scaling (dla znanych szczytow) - obie polityki moga dzialac rownoczesnie, ASG wybiera wieksza wartosc.
Ustaw ELB health check grace period dluzszy niz czas startu aplikacji - zbyt krotki grace period spowoduje ciagle terminowanie instancji, ktore jeszcze nie zdazyly wystartowac.

Ile kosztuje AWS Auto Scaling?

Auto Scaling

Sam serwis Auto Scaling jest bezpłatny. Płacisz za zasoby, które Auto Scaling uruchamia.

$0 za Auto Scaling - płacisz za instancje EC2, taski ECS, itp.

EC2 Instances

Opłata za instancje EC2 uruchomione przez ASG - standardowy cennik On-Demand, Spot lub Reserved.

ASG z 5x t3.medium: ~$0.0416/instancję/godz. = ~$150/mies.

CloudWatch Alarms

Opłata za alarmy CloudWatch używane przez polityki skalowania.

$0.10/alarm/miesiąc dla Standard Resolution

Przyklady AWS CLI

Utwórz Auto Scaling Group

Stwórz ASG z 2-10 instancjami i target tracking na 70% CPU

aws autoscaling create-auto-scaling-group \
 --auto-scaling-group-name moja-aplikacja-asg \
 --launch-template LaunchTemplateName=moj-template,Version='$Latest' \
 --min-size 2 \
 --max-size 10 \
 --desired-capacity 2 \
 --vpc-zone-identifier "subnet-abc123,subnet-def456" \
 --target-group-arns arn:aws:elasticloadbalancing:eu-west-1:123456789012:targetgroup/moja-tg/abc123

Dodaj politykę target tracking

Utrzymuj średnie CPU na 70% - ASG automatycznie skaluje

aws autoscaling put-scaling-policy \
 --auto-scaling-group-name moja-aplikacja-asg \
 --policy-name target-tracking-cpu \
 --policy-type TargetTrackingScaling \
 --target-tracking-configuration '{"PredefinedMetricSpecification":{"PredefinedMetricType":"ASGAverageCPUUtilization"},"TargetValue":70.0}'

Ustaw scheduled scaling

Zwiększ capacity do 8 instancji w godzinach pracy (pon-pt 8:00)

aws autoscaling put-scheduled-update-group-action \
 --auto-scaling-group-name moja-aplikacja-asg \
 --scheduled-action-name skaluj-rano \
 --recurrence "0 8 * * 1-5" \
 --min-size 4 \
 --max-size 10 \
 --desired-capacity 8

Sprawdź aktywność ASG

Wyświetl ostatnie akcje skalowania i ich status

aws autoscaling describe-scaling-activities \
 --auto-scaling-group-name moja-aplikacja-asg \
 --max-items 10 \
 --query 'Activities[].{Time:StartTime,Status:StatusCode,Cause:Cause}' \
 --output table

Quiz: AWS Auto Scaling

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

Twoj wynik: 0 / 4

1. Co to jest Target Tracking Policy?

2. Do czego służy Cooldown Period?

3. Czy AWS Auto Scaling obsługuje tylko EC2?

4. Co to jest Predictive Scaling?

Chcesz poznac AWS Auto Scaling w praktyce?

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

Zacznij darmowy kurs Wszystkie serwisy