Amazon DOP-C02: Infrastruktura jako kod i zarządzanie konfiguracją — Przewodnik do nauki

Część AWS DevOps Engineer Professional DOP-C02 — Przewodnik do nauki. Ćwicz ze zweryfikowanymi odpowiedziami w centrum egzaminów Amazon, albo rozwiąż testy na czas na ExamRoll.io.

Przegląd

Infrastruktura jako kod (IaC) i zarządzanie konfiguracją w AWS zapewniają powtarzalny, audytowalny i zarządzany provisioning oraz konfigurację infrastruktury i aplikacji. CloudFormation i AWS Cloud Development Kit (CDK) opisują zasoby deklaratywnie lub za pomocą kodu, który jest syntetyzowany do szablonów CloudFormation. Warstwy konfiguracyjne, takie jak AWS OpsWorks i AWS Systems Manager, wymuszają i raportują pożądany stan na instancjach w ramach flot EC2 i hybrydowych. Zarządzanie sekretami, parametrami i wypiekanie obrazów dopełniają cykl życia, umożliwiając niezmienne, bezpieczne wdrożenia na dużą skalę.

Stosy CloudFormation, kontrola zmian i ład

Stosy CloudFormation są jednostką wdrożenia. Projektuj stosy wokół granic cyklu życia i własności, aby zminimalizować promień rażenia. Oszczędnie używaj parametrów i preferuj narzucone z góry wartości domyślne z mapowaniami lub odwołaniami do SSM. Eksportuj i importuj tylko stabilne, współdzielone wartości za pomocą Outputs i Fn::ImportValue, aby uniknąć ścisłych powiązań.

Stosy zagnieżdżone hermetyzują komponenty wielokrotnego użytku i pozwalają utrzymać mały rozmiar szablonów nadrzędnych. Stos nadrzędny może przekazywać parametry do stosów podrzędnych i wykorzystywać ich wartości wyjściowe, co umożliwia tworzenie architektur modułowych (na przykład zagnieżdżony stos ze współdzieloną siecią, wykorzystywany przez stos aplikacji). Utrzymuj stosy zagnieżdżone skoncentrowane na jednym zadaniu (VPC, warstwa danych, warstwa aplikacji) i wersjonuj je niezależnie.

StackSets wdrażają pojedynczy szablon na wielu kontach i w wielu regionach. Użyj modelu uprawnień zarządzanego przez usługę (service-managed) z AWS Organizations, aby automatycznie wdrażać zasoby w jednostkach organizacyjnych (OU) i automatycznie obejmować nowe konta. Skonfiguruj preferencje operacji (maksymalna liczba jednoczesnych kont/regionów, tolerancja na błędy), aby kontrolować proces wdrażania. Nadpisywanie parametrów dla poszczególnych kont lub regionów pozwala dostosować standardowy szablon do lokalnych ograniczeń. Monitoruj dryf w StackSet i instancjach stosów, aby wykrywać zmiany wprowadzane poza standardowym procesem.

Zestawy zmian (change sets) zapewniają bezpieczne aktualizacje, które mogą być weryfikowane przez człowieka. Zawsze używaj CreateChangeSet i sprawdzaj wpływ na poszczególne zasoby, wymiany oraz potencjalną utratę danych przed wykonaniem ExecuteChangeSet. Integruj zestawy zmian z automatycznymi potokami (pipelines) w celu uzyskania kontrolowanych zatwierdzeń.

Wykrywanie dryfu (drift detection) weryfikuje, czy zasoby stosu są zgodne z szablonem. Uruchamiaj regularnie wykrywanie dryfu na krytycznych stosach i StackSets; pamiętaj, że nie wszystkie właściwości są oceniane dla wszystkich typów zasobów (niewspierane właściwości są raportowane jako „not checked”). Traktuj dryf jako incydent: zbadaj go, zbierz kontekst i napraw poprzez aktualizację stosu lub poprzez skodyfikowanie zmiany i ponowne jej zastosowanie.

Polityki stosu (stack policies) to dokumenty JSON, które chronią krytyczne zasoby podczas aktualizacji. Odmów aktualizacji niezastępowalnym zasobom (np. produkcyjnym bazom danych, strefom Route 53) i użyj StackPolicyDuringUpdateBody, aby tymczasowo otworzyć precyzyjną ścieżkę dla konkretnej zmiany, a następnie przywrócić bardziej restrykcyjną politykę. Połącz to z ochroną przed usunięciem (termination protection) i DeletionPolicy (Retain/Snapshot), aby stworzyć mechanizmy zabezpieczające. Dla zasobów ze stanem zewnętrznym (np. bucketów S3) zaplanuj zachowanie podczas usuwania. Jeśli bucket musi zostać opróżniony przed usunięciem, zaimplementuj zasób niestandardowy (custom resource), który wyczyści obiekty podczas usuwania stosu.

AWS CDK i rozszerzalność CloudFormation

AWS CDK modeluje infrastrukturę w znanych językach programowania (TypeScript, Python, Java, .NET, Go). Konstrukty (constructs) to podstawowe elementy składowe CDK:

Aplikacja CDK zawiera jeden lub więcej stosów. Podczas wykonania cdk synth aplikacja rozwiązuje odwołania do kontekstu (np. ID VPC), renderuje zasoby (assets) i tworzy szablon CloudFormation. Przed wdrożeniem, polecenie cdk bootstrap tworzy w środowisku buckety na zasoby (assets) oraz odpowiednie role. Użyj cdk diff, aby podejrzeć zmiany, a następnie cdk deploy, aby wdrożyć szablony i zasoby; CDK wewnętrznie używa zestawów zmian (change sets) i wyświetli oraz poprosi o potwierdzenie zmian wrażliwych na bezpieczeństwo (zmiany w IAM lub wymiana zasobów). Taguj stosy i zasoby za pomocą Aspects, aby wymusić tagowanie w całej organizacji. Gdy abstrakcje L2 są niewystarczające, użyj mechanizmów ucieczki (escape hatches), takich jak node.defaultChild, lub zejdź do poziomu konstruktów L1.

Niestandardowe zasoby CloudFormation (custom resources) rozszerzają IaC o wszystko, co jest dostępne przez API. Zasób niestandardowy oparty na funkcji Lambda otrzymuje zdarzenia Create, Update i Delete wraz z RequestId, PhysicalResourceId i właściwościami. Funkcja musi:

Używać ról wykonawczych IAM o najmniejszych uprawnieniach dla funkcji Lambda, implementować wykładnicze ponawianie (exponential backoff) dla wywołań API i korelować logi za pomocą RequestId. W przypadku dużych lub długotrwałych operacji rozważ użycie Step Functions z zasobem niestandardowym, który czeka na token wykonania. Jeśli to możliwe, preferuj CloudFormation Registry dla dostawców (providers) wielokrotnego użytku i wersjonowanych.

Sekrety i parametry w infrastrukturze jako kodzie

Nigdy nie umieszczaj sekretów na stałe w szablonach ani w kodzie. Używaj dynamicznych referencji, aby odczytywać wrażliwe wartości w czasie wdrożenia:

Dynamiczne referencje zapobiegają przechowywaniu sekretów w szablonie stosu lub w jego zdarzeniach. Nie umieszczaj sekretów w sekcji Outputs ani we właściwościach zasobów, które CloudFormation loguje jako czysty tekst. Nadaj roli wykonawczej CloudFormation uprawnienia do deszyfrowania lub pobierania wartości z referencji i ogranicz zasięg kluczy KMS CMK do podmiotów (principals), które potrzebują dostępu.

Parameter Store jest idealny do przechowywania konfiguracji niebędącej sekretem (np. flagi funkcjonalności, identyfikatory AMI, punkty końcowe). Używaj wersjonowanych parametrów SSM, aby umożliwić bezpieczne wycofywanie zmian (rollback) i atomowe promowanie konfiguracji między środowiskami. W CDK importuj wartości za pomocą ssm.StringParameter.fromStringParameterName lub fromSecureStringParameterAttributes dla wartości bezpiecznych, a odczyty parametrów włącz do skryptów user data lub procesów bootstrap aplikacji.

Secrets Manager jest przeznaczony do zarządzania cyklem życia sekretów, ich rotacji i audytu. Zintegruj rotację z obsługiwanymi silnikami (RDS, Aurora) lub z własnymi funkcjami Lambda. Odwołuj się do sekretów w czasie działania aplikacji, zamiast wbudowywać je w obrazy AMI, aby uniknąć rozprzestrzeniania się nieaktualnych danych. W przypadku obciążeń skonteneryzowanych lub serverless, wstrzykuj sekrety poprzez zmienne środowiskowe oparte na referencjach do Secrets Manager lub montuj je za pomocą mechanizmu secrets w ECS/TaskDefinition; zapewnij rotację z minimalnym przestojem, używając pul połączeń z krótkim czasem życia (TTL) i mechanizmów ponawiania prób.

Zarządzanie konfiguracją i niezmienna infrastruktura

AWS OpsWorks zapewnia predefiniowane zarządzanie konfiguracją. OpsWorks Stacks używa książek kucharskich (cookbooks) Chef i zdarzeń cyklu życia (Setup, Configure, Deploy, Undeploy, Shutdown) do orkiestracji konfiguracji i wdrożeń aplikacji, a także wspiera automatyczne naprawianie (auto-healing) za pomocą kontroli stanu (health checks), które zatrzymują/uruchamiają lub zastępują instancje. Historycznie OpsWorks oferował również zarządzane instancje Chef Automate i Puppet Enterprise; dziś wiele zespołów standaryzuje się na Systems Manager do orkiestracji opartej na agentach lub samodzielnie uruchamia płaszczyzny sterowania Ansible/Chef/Puppet. Ansible nie jest natywnie zintegrowany z OpsWorks; zamiast tego należy użyć Systems Manager State Manager do uruchamiania playbooków lub AWX/Ansible Automation Platform z łącznością przez SSM Session Manager i dynamicznym inwentarzem EC2 (dynamic inventory).

AWS Systems Manager to nowoczesna płaszczyzna sterowania dla konfiguracji hybrydowej:

undefined

,

undefined

,

undefined

i niestandardowych, aby ujednolicić konfigurację. Parametryzuj powiązania i kieruj je na zasoby według tagów, aby wprowadzać zmiany w całej flocie.

Niezmienna infrastruktura eliminuje dryf konfiguracyjny i przyspiesza wycofywanie zmian (rollback). EC2 Image Builder kodyfikuje potoki (pipelines) do tworzenia obrazów za pomocą:

Dodaj komponenty testowe do walidacji benchmarków CIS, stanu agentów (SSM/CloudWatch) i podstawowych testów aplikacji (smoke checks). Wersjonuj obrazy i oznaczaj je tagami semantycznymi. Publikuj identyfikatory AMI w Parameter Store (na przykład /app/frontend/ami) i odwołuj się do nich w szablonach uruchamiania (launch templates) Auto Scaling. Wdrażaj za pomocą strategii rolling lub blue/green; zastępuj instancje zamiast patchować je w miejscu, aby zachować niezmienność. Przekazuj wyniki skanowania podatności (Amazon Inspector) do bramek promujących w potoku (pipeline promotion gates). Nie umieszczaj na stałe sekretów w obrazach; pobieraj je podczas uruchamiania za pomocą Instance Metadata Service v2 oraz odwołań do SSM/Secrets Manager.

Praktyczny scenariusz problemowy

Firma Capital One musi ustandaryzować wdrożenia w środowisku wielokontowym i wieloregionowym dla platformy skierowanej do klienta, jednocześnie egzekwując ścisły nadzór, zarządzanie sekretami i eliminując dryf konfiguracyjny. Środowisko obejmuje setki kont w AWS Organizations, z rygorystycznymi kontrolami dostępu do baz danych i wzmacnianiem zabezpieczeń systemu operacyjnego.

  1. Modeluj infrastrukturę za pomocą AWS CDK i syntezuj do CloudFormation
  1. Dystrybuuj bazowe stosy sieciowe i zabezpieczające (guardrail stacks) za pomocą CloudFormation StackSets
  1. Chroń krytyczne zasoby za pomocą polityk stosu (stack policies) i zestawów zmian (change sets)
  1. Rozszerz IaC za pomocą zasobów niestandardowych (custom resources) opartych na Lambda
  1. Centralizuj sekrety i konfigurację za pomocą Secrets Manager i Parameter Store
  1. Wymuszaj pożądany stan i zgodność za pomocą Systems Manager State Manager
  1. Zastosuj niezmienną infrastrukturę z EC2 Image Builder
  1. Orkiestracja potoku (pipeline) i nadzór (governance)

Potoki CI · Wszystkie domeny · Monitorowanie

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 →

Przeglądaj Amazon →

Related guides

Dostęp all-in-one

Jedna subskrypcja. Każdy egzamin.

Każdy plan odblokowuje nieograniczone wyszukiwanie odpowiedzi, testy praktyczne, wyjaśnienia AI i pełną bibliotekę zasobów — w ponad 20 językach.

Miesięczny
24.87
Just €0.83/day
Wszystko w cenie:
  • Nieograniczone wyszukiwanie odpowiedzi
  • Nieograniczone testy praktyczne
  • Wyjaśnienia wspomagane AI
  • Pełna biblioteka zasobów
  • Ponad 20 języków
  • Cotygodniowe aktualizacje treści
  • Nagrody i polecenia
  • Priorytetowe wsparcie
Rozpocznij bezpłatny okres próbny

Karta kredytowa nie jest wymagana*

Najlepsza wartość
12 miesięcy
179.87
Just €0.49/daySave 40%
Wszystko w cenie:
  • Nieograniczone wyszukiwanie odpowiedzi
  • Nieograniczone testy praktyczne
  • Wyjaśnienia wspomagane AI
  • Pełna biblioteka zasobów
  • Ponad 20 języków
  • Cotygodniowe aktualizacje treści
  • Nagrody i polecenia
  • Priorytetowe wsparcie
Rozpocznij bezpłatny okres próbny

Karta kredytowa nie jest wymagana*

✓ Plan darmowy w zestawie · ✓ Anuluj w dowolnym momencie · ✓ Wszystkie plany odblokowują pełny produkt