Szablony uruchamiania i konfiguracja ASG
Utworzą szablon uruchamiania z właściwymi AMI, typem instancji i danymi użytkownika, a następnie dołączą go do Auto Scaling Group z minimalną, maksymalną i docelową pojemnością.
Szablony uruchamiania i konfiguracja ASG to bezpłatna lekcja Cloud & IT Cert Prep na CoddyKit. To lekcja 1 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 Cloud & IT Cert Prep, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.
Czym jest szablon uruchamiania?
Launch Template to wersjonowany wzorzec, który informuje grupy Auto Scaling (a także bezpośrednio EC2), jak uruchamiać instancje. Zawiera on identyfikator AMI, typ instancji, parę kluczy, grupy zabezpieczeń oraz opcjonalne dane użytkownika w jednym dokumencie wielokrotnego użytku. W przeciwieństwie do starszej funkcji Launch Configuration, Launch Template obsługuje wiele wersji i można go aktualizować bez zastępowania ASG.
Tworzenie Launch Template za pomocą CLI
Launch Template można utworzyć za pomocą AWS CLI, używając polecenia create-launch-template. Parametr --launch-template-data przyjmuje obiekt JSON definiujący wszystkie ustawienia instancji. Wersjonowanie umożliwia iteracyjne rozwijanie szablonu bez wpływu na uruchomione instancje, dopóki nie będzie Państwo gotowi do wdrożenia.
aws ec2 create-launch-template \
--launch-template-name 'MyAppTemplate' \
--version-description 'v1 initial' \
--launch-template-data '{
"ImageId": "ami-0abcdef1234567890",
"InstanceType": "t3.medium",
"KeyName": "my-key-pair",
"SecurityGroupIds": ["sg-0123456789abcdef0"],
"UserData": "IyEvYmluL2Jhc2gKZWNobyAnSGVsbG8n"
}'Wersje i ustawienia domyślne Launch Template
Każdy Launch Template rozpoczyna się od wersji 1. Podczas tworzenia nowej wersji można zastąpić tylko zmienione pola — wszystkie pozostałe ustawienia są dziedziczone z wersji źródłowej. ASG można skonfigurować tak, aby używał wersji $Latest (zawsze najnowszej) lub $Default (jawnie wyznaczonej). Użycie $Default zapewnia kontrolowane wdrożenia, natomiast $Latest jest wygodne w środowiskach programistycznych.
# Create a new version based on version 1, changing only instance type
aws ec2 create-launch-template-version \
--launch-template-name 'MyAppTemplate' \
--source-version 1 \
--launch-template-data '{"InstanceType": "t3.large"}'Podstawowe pojęcia dotyczące Auto Scaling Group
Auto Scaling Group (ASG) utrzymuje pulę instancji EC2 w określonych granicach: minimum (dolna granica), maximum (górna granica) oraz desired capacity (docelowa liczba w danym momencie). Gdy instancje nie przejdą kontroli stanu lub zadziała polityka skalowania, ASG automatycznie uruchamia albo kończy instancje, aby utrzymać docelową liczbę instancji między wartościami min i max.
Tworzenie ASG dołączonej do Launch Template
Podczas tworzenia ASG odwołuje się Państwo do Launch Template, a nie bezpośrednio do konkretnego AMI. Należy również określić podsiecі VPC, w których będą uruchamiane instancje. Rozmieszczenie instancji w wielu podsieciach (po jednej na AZ) zapewnia wbudowaną nadmiarowość w wielu AZ — jeśli jedna strefa dostępności ulegnie awarii, ASG automatycznie uruchomi instancje zastępcze w pozostałych strefach.
aws autoscaling create-auto-scaling-group \
--auto-scaling-group-name 'MyAppASG' \
--launch-template 'LaunchTemplateName=MyAppTemplate,Version=$Default' \
--min-size 2 \
--max-size 10 \
--desired-capacity 4 \
--vpc-zone-identifier 'subnet-aaa111,subnet-bbb222,subnet-ccc333'Kontrole stanu ASG: EC2 a ELB
Domyślnie ASG używa kontroli stanu EC2, które oznaczają instancję jako niesprawną tylko wtedy, gdy jest zatrzymana, zakończona lub hiperwizor zgłosi jej awarię. Po dołączeniu load balancera należy przełączyć się na kontrole stanu ELB, aby ASG zastępowała instancje, które działają, ale zwracają błędy HTTP 5xx. To częste pytanie egzaminacyjne: jeśli w architekturze znajduje się load balancer, zawsze należy wybrać kontrole stanu ELB.
# Enable ELB health checks on an existing ASG
aws autoscaling update-auto-scaling-group \
--auto-scaling-group-name 'MyAppASG' \
--health-check-type ELB \
--health-check-grace-period 300Ustawienia pojemności: Min, Max, Desired
Ustawienie właściwych granic pojemności ma kluczowe znaczenie. Minimum gwarantuje, że aplikacja zawsze będzie mogła obsługiwać ruch (nie spadnie poniżej tej wartości). Maximum zapobiega niekontrolowanemu skalowaniu, które mogłoby wyczerpać limity usług lub budżet. Desired capacity to początkowy cel; polityki skalowania dostosowują go dynamicznie. Jeśli wartości min=max=desired są takie same, ASG działa jako grupa o stałym rozmiarze, co jest przydatne przy wdrożeniach z użyciem Launch Template lub przy utrzymywaniu stałej pojemności.
Dołączanie grupy docelowej ALB do ASG
W przypadku aplikacji warstwy webowej należy dołączyć ASG do grupy docelowej Application Load Balancer. Każda nowa instancja uruchomiona przez ASG jest automatycznie rejestrowana w grupie docelowej, a zakończone instancje są z niej automatycznie wyrejestrowywane. Dzięki temu ruch jest kierowany wyłącznie do sprawnych i działających instancji. Należy również ustawić typ kontroli stanu na ELB, aby ASG uwzględniała awarie wykrywane na poziomie load balancera.
aws autoscaling attach-load-balancer-target-groups \
--auto-scaling-group-name 'MyAppASG' \
--target-group-arns 'arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/MyTG/abc123'User Data w Launch Templates
User data to skrypt powłoki (zakodowany w Base64), który jest uruchamiany raz, podczas pierwszego uruchomienia instancji. W Launch Template jest to właściwe miejsce na instalowanie pakietów, konfigurowanie agentów (CloudWatch, SSM) i pobieranie kodu aplikacji. User data powinno być idempotentne — skrypty, które można bezpiecznie uruchamiać wielokrotnie, zapobiegają problemom podczas odświeżania instancji. W przypadku złożonych konfiguracji należy zamiast umieszczania dużych skryptów wywołać AWS Systems Manager lub narzędzie do zarządzania konfiguracją.
#!/bin/bash
yum update -y
yum install -y amazon-cloudwatch-agent
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
-a fetch-config -m ec2 -c ssm:/MyApp/CWConfig -s
# Start application
cd /opt/myapp && ./start.shWarm Pools umożliwiają szybsze skalowanie w górę
Warm Pool wstępnie inicjalizuje zestaw zatrzymanych (lub działających) instancji EC2 w stanie gotowości, poza ASG. Gdy ASG musi skalować się w górę, pobiera instancje z warm pool zamiast uruchamiać je od zera — znacznie skracając czas potrzebny na zwiększenie pojemności. Instancje w warm pool generują koszty stanu zatrzymania (tylko EBS, bez opłat za procesor), dzięki czemu rozwiązanie to jest znacznie tańsze niż utrzymywanie w pełni działających zapasowych instancji.
Polityki kończenia instancji i równoważenie AZ
Gdy ASG skaluje się w dół, musi zdecydować, które instancje zakończyć. Domyślna polityka kończenia najpierw wybiera AZ z największą liczbą instancji (aby przywrócić równowagę), następnie instancje z najstarszym Launch Template, a na końcu instancję najbardziej zbliżoną do rozpoczęcia kolejnej godziny rozliczeniowej. Mogą Państwo dostosować tę kolejność — na przykład wybrać OldestLaunchTemplate, aby najpierw usuwać instancje działające ze starymi konfiguracjami. ASG automatycznie wykonuje również równoważenie AZ po udostępnieniu podsieci lub po ręcznych zmianach.
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: Launch Templates zapewniają wersjonowany i wielokrotnego użytku szablon instancji obsługujący wiele wersji oraz wskaźniki wersji $Latest/$Default, granice pojemności ASG (min/max/desired) określają rozmiar puli i zapewniają automatyczne rozmieszczanie w wielu AZ za pośrednictwem podsieci, a kontrole stanu ELB muszą być włączone, gdy ASG znajduje się za load balancerem, aby awarie na poziomie aplikacji uruchamiały zastępowanie instancji. W następnej części omówimy polityki skalowania, w tym target tracking i step scaling.
Często zadawane pytania
Czy lekcja „Szablony uruchamiania i konfiguracja ASG” jest bezpłatna?
Tak — pełny tekst „Szablony uruchamiania i konfiguracja ASG” 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 Cloud & IT Cert Prep, przejdź na CoddyKit PRO. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.
Co nauczysz się w „Szablony uruchamiania i konfiguracja ASG”?
Utworzą szablon uruchamiania z właściwymi AMI, typem instancji i danymi użytkownika, a następnie dołączą go do Auto Scaling Group z minimalną, maksymalną i docelową pojemnością. Ćwiczysz Cloud & IT Cert Prep 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ąć Cloud & IT Cert Prep?
Nie wymagamy żadnego doświadczenia. Cloud & IT Cert Prep 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 1 z 4.
Ile czasu zajmuje lekcja „Szablony uruchamiania i konfiguracja ASG”?
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 Cloud & IT Cert Prep?
Tak. Każda lekcja Cloud & IT Cert Prep 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