Zasady skalowania: śledzenie celu i skalowanie krokowe
Skonfigurują śledzenie celu, aby utrzymywać docelowe wykorzystanie procesora, oraz skalowanie krokowe reagujące na progi alarmów CloudWatch.
Zasady skalowania: śledzenie celu i skalowanie krokowe to bezpłatna lekcja AWS Solutions Architect na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AWS Solutions Architect, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AWS Solutions Architect zawiera 4 lekcji w sumie.
Dlaczego istnieją polityki skalowania
Statyczna wartość desired capacity sprawdza się przy stałym obciążeniu, ale ruch w rzeczywistych systemach się zmienia. Polityki skalowania umożliwiają ASG automatyczne dostosowywanie desired capacity w odpowiedzi na metryki. AWS oferuje trzy główne typy dynamicznych polityk: Target Tracking, Step Scaling i Simple Scaling. Na egzaminie SAA-C03 najważniejsze jest zrozumienie target tracking i step scaling.
Wyjaśnienie skalowania Target Tracking
Target Tracking Scaling działa jak termostat: określają Państwo metrykę i wartość docelową, a AWS automatycznie oblicza, ile instancji dodać lub usunąć, aby utrzymać metrykę na tym poziomie. Na przykład jeśli celem jest średnie wykorzystanie procesora na poziomie 50%, a wykorzystanie wzrośnie do 80%, ASG doda tyle instancji, aby przywrócić wykorzystanie procesora do 50%. AWS zarządza za Państwa zarówno skalowaniem w górę, jak i w dół.
aws autoscaling put-scaling-policy \
--auto-scaling-group-name 'MyAppASG' \
--policy-name 'TargetTrackingCPU50' \
--policy-type TargetTrackingScaling \
--target-tracking-configuration '{
"PredefinedMetricSpecification": {
"PredefinedMetricType": "ASGAverageCPUUtilization"
},
"TargetValue": 50.0
}'Metryki predefiniowane a niestandardowe w Target Tracking
Target Tracking od razu obsługuje kilka metryk predefiniowanych: ASGAverageCPUUtilization, ASGAverageNetworkIn, ASGAverageNetworkOut oraz specyficzną dla ALB metrykę ALBRequestCountPerTarget. W przypadku metryk specyficznych dla aplikacji (głębokość kolejki, aktywne połączenia, niestandardowe metryki biznesowe) można dostarczyć niestandardową metrykę CloudWatch. Metryki niestandardowe zapewniają znacznie większą kontrolę nad tym, co wpływa na decyzje dotyczące skalowania.
Okres cooldown w Target Tracking
Po zdarzeniu skalowania w górę ASG czeka przez okres cooldown (domyślnie 300 sekund), zanim oceni możliwość kolejnego skalowania w górę. Daje to nowo uruchomionym instancjom czas na rozpoczęcie obsługi ruchu, aby metryka mogła się ustabilizować. Analogicznie cooldown skalowania w dół zapobiega przedwczesnemu kończeniu instancji tuż po zwiększeniu pojemności. W przypadku target tracking AWS zaleca również użycie okresu rozgrzewania, aby nowe instancje nie zniekształcały metryki, zanim zostaną w pełni zainicjalizowane.
Wyjaśnienie skalowania Step Scaling
Step Scaling reaguje na alarmy CloudWatch, dodając lub usuwając określoną liczbę instancji zależnie od tego, jak bardzo metryka przekracza próg. Definiują Państwo wiele kroków dostosowania — każdy krok obejmuje zakres metryki i określa zmianę pojemności. Na przykład: jeśli procesor ma 60–70%, należy dodać 1 instancję; przy 70–90% — 3 instancje; a powyżej 90% — 5 instancji. Zapewnia to stopniowe i proporcjonalne reakcje na różne poziomy obciążenia.
Tworzenie polityki Step Scaling
Step scaling wymaga wcześniej utworzonego alarmu CloudWatch. Alarm monitoruje metrykę i przechodzi do stanu ALARM po przekroczeniu progu. Polityka skalowania korzysta następnie z kroków dostosowania odnoszących się do wartości metryki względem progu alarmu. Można skonfigurować typ dostosowania jako ChangeInCapacity (dodać N), ExactCapacity (ustawić wartość N) lub PercentChangeInCapacity (zwiększyć albo zmniejszyć o N%).
# First create a CloudWatch alarm
aws cloudwatch put-metric-alarm \
--alarm-name 'HighCPU' \
--metric-name CPUUtilization \
--namespace AWS/EC2 \
--statistic Average \
--period 60 \
--threshold 60 \
--comparison-operator GreaterThanOrEqualToThreshold \
--dimensions Name=AutoScalingGroupName,Value=MyAppASG \
--evaluation-periods 2 \
--alarm-actions 'arn:aws:autoscaling:us-east-1:123456789:scalingPolicy:...'Konfiguracja kroków dostosowania
Każdy krok dostosowania ma parametr MetricIntervalLowerBound oraz opcjonalnie MetricIntervalUpperBound. Granice są określane względem progu alarmu. Jeśli próg alarmu wynosi 60% wykorzystania procesora: LowerBound=0, UpperBound=10 zadziała przy wartości 60–70%; LowerBound=10, UpperBound=null zadziała, gdy wartość przekroczy 70%. Takie warstwowe podejście gwarantuje, że nagłe duże skoki ruchu spowodują natychmiastowe, znaczne zwiększenie pojemności zamiast oczekiwania na wiele cykli alarmu.
# Step scaling policy with two steps
{
'StepAdjustments': [
{
'MetricIntervalLowerBound': 0,
'MetricIntervalUpperBound': 10,
'ScalingAdjustment': 2
},
{
'MetricIntervalLowerBound': 10,
'ScalingAdjustment': 5
}
],
'AdjustmentType': 'ChangeInCapacity'
}Simple Scaling: starsza alternatywa
Simple Scaling jest poprzednikiem step scaling. Podobnie jak step scaling wymaga alarmu CloudWatch, ale po jego uruchomieniu dodaje lub usuwa stałą liczbę instancji, a następnie czeka na upływ całego okresu cooldown, zanim dokona kolejnej oceny. W przypadku szybko zmieniającego się obciążenia powoduje to powolną reakcję. Step Scaling jest preferowane, ponieważ może nadal reagować w miarę pogarszania się warunków bez oczekiwania na zakończenie pełnego cooldown, a także odpowiada proporcjonalnie do obciążenia.
Ochrona przed skalowaniem w dół i ochrona instancji
Czasami należy zapobiec zakończeniu konkretnych instancji podczas skalowania w dół — na przykład instancji wykonującej długotrwałe zadanie wsadowe. Można włączyć ochronę instancji przed skalowaniem w dół dla pojedynczych instancji za pomocą konsoli lub CLI. Gdy ASG wybiera instancje do zakończenia, pomija chronione instancje. Należy pamiętać o wyłączeniu ochrony po zakończeniu zadania, ponieważ ASG może w ogóle nie być w stanie skalować się w dół, jeśli wszystkie instancje będą chronione.
aws autoscaling set-instance-protection \
--auto-scaling-group-name 'MyAppASG' \
--instance-ids 'i-0abc123def456' \
--protected-from-scale-inŁączenie Target Tracking z Step Scaling
Do jednej ASG można dołączyć wiele polityk skalowania. Jeśli jednocześnie istnieją polityka target tracking i polityka step scaling, ASG stosuje tę, która zaleca większe skalowanie w górę (czyli bardziej zachowawcze podejście). W przypadku skalowania w dół wygrywa polityka zalecająca usunięcie najmniejszej liczby instancji. Zapobiega to przechodzeniu systemu między stanem nadmiernego i niewystarczającego przydzielenia zasobów. Często stosowany wzorzec to polityka target tracking dla normalnego obciążenia oraz polityka step scaling zapewniająca ochronę przed nagłymi skokami ruchu.
Najlepsze praktyki dotyczące polityk skalowania
W przypadku większości aplikacji webowych warto zacząć od target tracking na podstawie wykorzystania procesora lub liczby żądań na cel — wymaga to minimalnej konfiguracji, a AWS zarządza obliczeniami. Należy użyć step scaling, gdy potrzebne są stopniowe i proporcjonalne reakcje na różne poziomy obciążenia. Zawsze należy ustawić minimalną pojemność na poziomie wystarczającym do obsługi podstawowego ruchu bez polegania na skalowaniu w górę, ponieważ skalowanie wymaga czasu. Aby sprawdzić, czy polityki działają zgodnie z oczekiwaniami, należy monitorować metryki CloudWatch GroupDesiredCapacity i GroupInServiceInstances.
Szybkie sprawdzenie
Proszę sprawdzić swoją znajomość zagadnień AWS Solutions Architect (SAA-C03) omówionych w tej lekcji.
Podsumowanie lekcji
W tej lekcji poznali Państwo następujące zagadnienia: Target Tracking Scaling automatycznie oblicza i stosuje działania skalowania w górę lub w dół, aby utrzymać metrykę na pożądanym poziomie (na przykład wykorzystanie procesora na poziomie 50%); Step Scaling uruchamia proporcjonalnie większe reakcje, gdy metryka przekracza kolejne progi, korzystając z kroków dostosowania opartych na alarmach CloudWatch; a łączenie polityk w jednej ASG jest bezpieczne — ASG stosuje najbardziej zachowawczą rekomendację skalowania w górę i najmniej agresywną rekomendację skalowania w dół. W następnej części omówimy skalowanie zaplanowane i predykcyjne dla znanych wzorców ruchu.
Często zadawane pytania
Czy lekcja „Zasady skalowania: śledzenie celu i skalowanie krokowe” jest bezpłatna?
Tak — pełny tekst „Zasady skalowania: śledzenie celu i skalowanie krokowe” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AWS Solutions Architect, przejdź na CoddyKit PRO. Kurs AWS Solutions Architect zawiera 4 lekcji w sumie.
Co nauczysz się w „Zasady skalowania: śledzenie celu i skalowanie krokowe”?
Skonfigurują śledzenie celu, aby utrzymywać docelowe wykorzystanie procesora, oraz skalowanie krokowe reagujące na progi alarmów CloudWatch. Ćwiczysz AWS Solutions Architect z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć AWS Solutions Architect?
Nie wymagamy żadnego doświadczenia. AWS Solutions Architect w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Zasady skalowania: śledzenie celu i skalowanie krokowe”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji AWS Solutions Architect?
Tak. Każda lekcja AWS Solutions Architect zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Szablony uruchamiania i konfiguracja ASG
- Zasady skalowania: śledzenie celu i skalowanie krokowe
- Skalowanie zaplanowane i predykcyjne
- Odświeżanie instancji i haki cyklu życia