Amazon SAP-C02: Wdrażanie, automatyzacja i DevOps — Przewodnik do nauki
Część AWS Solutions Architect Professional SAP-C02 — Przewodnik do nauki. Ćwicz ze zweryfikowanymi odpowiedziami w centrum egzaminów Amazon, albo rozwiąż testy na czas na ExamRoll.io.
Infrastruktura jako kod i zarządzanie środowiskiem
Traktuj infrastrukturę jako kod (IaC) jako jedyne źródło prawdy dla środowisk, osadzając sieci, IAM i topologię aplikacji w artefaktach wielokrotnego użytku i wersjonowanych. Wybierz CloudFormation dla ścisłej, deklaratywnej kontroli i głębokiej integracji z AWS, a AWS Cloud Development Kit (CDK) używaj, gdy konstrukcje wyższego poziomu i abstrakcje natywne dla języka programowania poprawiają produktywność deweloperów; zawsze wymuszaj na CI syntezę CDK do szablonów i przechowuj artefakty w zaszyfrowanym i wersjonowanym buckecie S3. Używaj CloudFormation StackSets do spójnego tworzenia instancji stosów na wielu kontach i w wielu regionach oraz włącz wykrywanie dryftu połączone z automatyczną naprawą za pomocą Systems Manager, gdy dryft wskazuje na entropię konfiguracji. Przygotowuj „złote obrazy” za pomocą EC2 Image Builder lub Packer i publikuj AMI na kontach i w regionach za pośrednictwem zautomatyzowanych potoków; wspiera to wdrożenia niemutowalne i redukuje dryft konfiguracji po uruchomieniu. Postępuj rozważnie z zestawami zmian (change sets) CloudFormation, ochroną przed usunięciem i politykami aktualizacji, aby uniknąć niezamierzonego zastąpienia zasobów, które może spowodować utratę danych. Częste pułapki to osadzanie sekretów w szablonach, poleganie na doraźnych ręcznych zmianach, które zakłócają wykrywanie dryftu, lub nadawanie zbyt szerokich uprawnień rolom wykonawczym CloudFormation — ograniczaj role wykonawcze zgodnie z zasadą najmniejszych uprawnień i zachowuj historię CloudTrail oraz Config w celach audytowych. Kompromisy są proste: CDK przyspiesza rozwój, ale wymaga zdyscyplinowanego CI/CD, aby uniknąć niezsynchronizowanych stosów wykonawczych; czysty CloudFormation jest bardziej rygorystyczny, ale natychmiast audytowalny.
Potoki CI/CD i strategie wdrażania
Projektuj potoki, które rozdzielają etapy budowania, testowania i wdrażania oraz automatyzują decyzje o wycofaniu zmian. AWS CodePipeline, CodeBuild i CodeDeploy zapewniają w pełni zarządzaną ścieżkę dla przepływów od kodu źródłowego do produkcji, podczas gdy systemy firm trzecich (GitHub Actions, Jenkins, GitLab) integrują się z usługami AWS w celu przechowywania artefaktów (S3), rejestrów kontenerów (ECR) i hooków wdrożeniowych. W przypadku strategii wdrożeń środowiska wykonawczego, preferuj wdrożenia niemutowalne lub blue/green dla usług stanowych lub sesyjnych, aby wyeliminować dryft konfiguracji w miejscu; używaj wdrożeń typu canary z przesuwaniem ruchu w celu stopniowej redukcji ryzyka. Dla Lambda używaj aliasów i ważonego przesuwania ruchu z alarmami CloudWatch lub CodeDeploy w celu automatycznego wycofywania zmian. Dla ECS/EKS, łącz kontrolery wdrożeń (CodeDeploy, AWS App Mesh lub natywne strategie Kubernetes) z drenażem grup docelowych ALB (target group draining) i hookami cyklu życia, aby zapewnić łagodne zamykanie. Uważaj na zmiany schematu bazy danych: projektuj migracje kompatybilne wstecz i używaj flag funkcyjnych (AWS AppConfig) lub wdrożeń typu „dark launch”, aby oddzielić wdrażanie kodu od ewolucji schematu. Ważne są rozważania dotyczące kosztu w stosunku do szybkości: wdrożenia canary spowalniają proces, ale minimalizują promień rażenia, podczas gdy równoległe wdrożenie blue/green podwaja koszt infrastruktury w oknie przełączenia. Zawsze wbudowuj polityki wdrożeń, kontrole stanu zdrowia i automatyczne wycofywanie zmian w potoki, aby uniknąć ręcznej interwencji podczas incydentów.
Automatyzacja, zgodność konfiguracji i obserwowalność
Doskonałość operacyjna zależy od automatycznej naprawy, spójnej konfiguracji i holistycznej obserwowalności. AWS Systems Manager dostarcza Parameter Store do zarządzania konfiguracją, dokumenty Automation do tworzenia procedur (runbooks), Patch Manager do utrzymania bazowych wersji oprogramowania oraz Session Manager do rozwiązywania problemów bez serwerów bastionowych. Używaj EventBridge jako centralnej magistrali zdarzeń dla niezależnej automatyzacji — kieruj zdarzenia z CloudTrail, Config lub aplikacji do funkcji Lambda lub Step Functions w celu zorkiestrowanej naprawy. Wdrażaj zasady ochronne (guardrails) za pomocą reguł AWS Config i agregatora Config, aby audytować wiele kont, oraz implementuj zautomatyzowane procedury naprawcze (playbooks) za pomocą Systems Manager lub EventBridge dla zasobów niezgodnych z polityką. W celu zapewnienia obserwowalności, instrumentuj usługi za pomocą metryk i logów CloudWatch, włącz X-Ray lub AWS Distro for OpenTelemetry do śledzenia rozproszonego i centralizuj logi za pomocą subskrypcji CloudWatch Logs lub Kinesis Firehose w scentralizowanym data lake na S3 i stosie analitycznym. Częste pułapki to nieograniczona retencja logów, która gwałtownie zwiększa koszty, niestandardowe metryki o wysokiej kardynalności, które windują koszty metryk, brak identyfikatorów korelacji, co czyni ślady bezużytecznymi, oraz nietestowanie procedur naprawczych (runbooks) w środowiskach nieprodukcyjnych. Kompromisy dotyczą szczegółowości telemetrii w stosunku do kosztów pozyskiwania i przechowywania danych; próbkowanie śladów i krótka retencja redukują koszty, ale mogą ukrywać rzadkie, krytyczne awarie. Projektuj alerty i pulpity nawigacyjne skoncentrowane na sygnałach wymagających działania, aby utrzymać narzut operacyjny na zarządzalnym poziomie.
Wydajność, usługi stanowe, bezpieczeństwo i kwestie międzyregionowe
Wybieraj usługi stanowe i storage w oparciu o wzorce dostępu, wymagania dotyczące opóźnień i spójności. Pamięci podręczne w pamięci RAM (in-memory) zapewniają odczyty z opóźnieniem poniżej milisekundy; ElastiCache (Redis) obsługuje uporządkowane zbiory (ordered sets), idealne dla rankingów, i zapewnia replikację, trwałość (persistence) oraz Global Datastore dla lokalności odczytu w różnych regionach. DynamoDB jest doskonały do trwałego przechowywania danych na dużą skalę i może być używany w parze z DAX w celu przyspieszenia odczytów, chociaż DAX najlepiej sprawdza się w przypadku dostępu na poziomie pojedynczych elementów, które można buforować, i wiąże się z kompromisami dotyczącymi ostatecznej spójności (eventual consistency). Dla starszych aplikacji opartych na plikach rozważ Amazon FSx for NetApp ONTAP lub Amazon EFS z DataSync w celu zapewnienia kompatybilności w scenariuszach lift-and-shift; dla semantyki SMB/NFS, FSx jest często opcją o najniższym ryzyku. Szyfrowanie i replikacja niosą ze sobą subtelne pułapki: klucze AWS KMS są regionalne i muszą być zarządzane w każdym regionie osobno dla replikacji S3 między regionami, chyba że użyjesz kluczy wieloregionowych (multi‑Region keys) w celu uproszczenia wzorców dostępu; zachowaj ostrożność przy politykach kluczy i nadawaniu uprawnień między kontami. Funkcje Lambda w VPC cierpią na problem zimnych startów (cold-starts) z powodu tworzenia ENI — można to złagodzić za pomocą punktów końcowych VPC (VPC endpoints), mniejszych paczek wdrożeniowych, alokowanej współbieżności (provisioned concurrency) lub używając Lambdy poza VPC z RDS Proxy. Zrównoważ koszty i odporność: tabele globalne (Global tables) i replikacja międzyregionowa poprawiają RTO/RPO kosztem zwiększonych wydatków; alokowana współbieżność (provisioned concurrency) zmniejsza opóźnienia, ale zwiększa bazowe koszty. Przy wyborze architektury weź pod uwagę potrzeby dotyczące trwałości danych, harmonogramy odtwarzania po awarii (DR) oraz limity zasobów na poszczególnych kontach.
Praktyczny problem: Scenariusz użycia
Scenariusz: SkyForge Games zarządza istniejącym środowiskiem AWS z kontami produkcyjnymi i stagingowymi w dwóch regionach. Obecny ranking jest zaimplementowany w DynamoDB i obsługiwany przez API Lambda wdrażane za pomocą CodePipeline; gracze oczekują mikrosekundowych opóźnień odczytu i niemal zerowego czasu przestoju podczas częstych wydań nowych funkcji.
Wyzwanie: Zapewnij mikrosekundowe odczyty rankingu, utrzymując jednocześnie trwałość danych i budując bezpieczny, zautomatyzowany potok CI/CD, który wspiera szybkie wdrożenia z możliwością wycofania (rollback) na wielu kontach i w wielu regionach.
Zalecane podejście:
- Uruchom klaster ElastiCache for Redis z włączonym trybem klastra (Cluster Mode Enabled) w głównym regionie dla „gorącej ścieżki” (hot-path) rankingu, z replikami w różnych Strefach Dostępności (AZ) i włączoną trwałością Redis (AOF); skonfiguruj Global Datastore w celu zapewnienia lokalności odczytu w regionie zapasowym.
- Utrzymaj DynamoDB jako źródło prawdy (source of truth); użyj DynamoDB Streams + Lambda (lub Kinesis Data Streams) do asynchronicznej aktualizacji Redis, zapewniając ostateczną spójność (eventual consistency) i możliwość ponownego odtworzenia danych (replayability) na potrzeby odzyskiwania.
- Zaimplementuj potok oparty na CDK (CDK Pipelines lub CodePipeline wyzwalany przez Git), który syntetyzuje szablony, buduje artefakty do zaszyfrowanych bucketów S3/repozytoriów ECR i wdraża infrastrukturę za pomocą CloudFormation StackSets na docelowe konta/regiony; uwzględnij zautomatyzowane testy typu smoke test i bramki zatwierdzające (approval gates).
- Wdrażaj zmiany w aplikacji, używając strategii canary/blue-green: wykorzystaj ważone aliasy Lambda lub przełączanie grup docelowych ALB (target-group shifting) z alarmami CloudWatch i automatycznym wycofywaniem zmian; instrumentuj kod za pomocą CloudWatch, X-Ray i syntetycznych testów canary.
Uzasadnienie: Użycie Redis zapewnia odczyty z opóźnieniem poniżej milisekundy, zachowując jednocześnie trwałość i możliwość odtwarzania danych z DynamoDB; potok CI/CD z CDK i StackSets zapewnia spójne, audytowalne wdrożenia na wiele kont, a przełączanie ruchu (traffic‑shifting) w połączeniu z obserwowalnością (observability) umożliwia bezpieczne, iteracyjne wydania z szybką możliwością wycofania zmian.
← Optymalizacja kosztów i nadzór · Wszystkie domeny
Przećwicz te pytania → · Testy na czas na ExamRoll.io →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
Zdaj egzamin →