Amazon DOP-C02: Infrastructuur als Code en Configuratiebeheer — Studiegids
Onderdeel van de AWS DevOps Engineer Professional DOP-C02 — Studiegids. Oefen met geverifieerde antwoorden in het Amazon-examencentrum, of doe getimede oefentests op ExamRoll.io.
Overzicht
Infrastructure as Code (IaC) en configuratiebeheer op AWS zorgen voor herhaalbare, auditeerbare en beheerde provisioning en configuratie van infrastructuur en applicaties. CloudFormation en de AWS Cloud Development Kit (CDK) beschrijven resources declaratief of via code die wordt gesynthetiseerd naar CloudFormation. Configuratielagen zoals AWS OpsWorks en AWS Systems Manager dwingen de gewenste staat af en rapporteren hierover op instances binnen EC2- en hybride fleets. Het ‘bakken’ van images, geheimen en parameters voltooien de levenscyclus, wat onveranderlijke, veilige implementaties op grote schaal mogelijk maakt.
CloudFormation Stacks, Wijzigingsbeheer en Governance
CloudFormation-stacks zijn de eenheid van implementatie. Ontwerp stacks rond de grenzen van de levenscyclus en eigenaarschap om de ‘blast radius’ te minimaliseren. Gebruik parameters spaarzaam en geef de voorkeur aan ‘opinionated’ standaardwaarden met mappings of SSM-lookups. Exporteer en importeer alleen stabiele, gedeelde waarden via Outputs en Fn::ImportValue om nauwe koppeling te vermijden.
Geneste stacks kapselen herbruikbare componenten in en houden de bovenliggende templates klein. Een bovenliggende stack kan parameters doorgeven aan onderliggende stacks en hun outputs gebruiken, wat modulaire architecturen mogelijk maakt (bijvoorbeeld een geneste stack voor een gedeeld netwerk die wordt gebruikt door een applicatiestack). Houd geneste stacks gericht op één enkel doel (VPC, datalaag, applicatielaag) en versioneer ze onafhankelijk.
StackSets implementeren één enkele template over meerdere accounts en Regions. Gebruik het service-managed permissiemodel met AWS Organizations om automatisch te implementeren in OU’s en nieuwe accounts automatisch op te nemen. Configureer de operationele voorkeuren (max. gelijktijdige accounts/Regions, fouttolerantie) om de uitrol te beheren. Parameter-overrides per account of Region stellen u in staat een standaardtemplate aan te passen aan lokale beperkingen. Monitor de drift van StackSets en stack-instances om ‘out-of-band’-wijzigingen te detecteren.
Change sets bieden veilige, door mensen te beoordelen updates. Gebruik altijd CreateChangeSet en inspecteer de impact per resource, vervangingen en potentieel dataverlies voordat u ExecuteChangeSet uitvoert. Integreer change sets in geautomatiseerde pipelines voor gefaseerde goedkeuringen.
Drift-detectie valideert of de resources van een stack overeenkomen met de template. Voer routinematig drift-detectie uit op kritieke stacks en StackSets; wees u ervan bewust dat niet alle eigenschappen voor alle resourcetypes worden geëvalueerd (niet-ondersteunde eigenschappen worden gerapporteerd als ’niet gecontroleerd’). Behandel drift als een incident: onderzoek, leg de context vast en corrigeer door een stack-update of door de drift te codificeren en opnieuw toe te passen.
Stack policies zijn JSON-documenten die kritieke resources beschermen tijdens updates. Weiger updates voor onvervangbare resources (bijvoorbeeld productiedatabases, Route 53-zones) en gebruik StackPolicyDuringUpdateBody om tijdelijk een chirurgisch pad te openen voor een specifieke wijziging, en herstel daarna het strengere beleid. Combineer met termination protection en DeletionPolicy (Retain/Snapshot) voor ‘guardrails’. Plan voor resources met een externe staat (S3-buckets) het gedrag bij verwijdering. Als een bucket moet worden leeggemaakt voordat deze wordt verwijderd, implementeer dan een custom resource om objecten te verwijderen bij het verwijderen van de stack.
AWS CDK en Uitbreidbaarheid van CloudFormation
AWS CDK modelleert infrastructuur in bekende programmeertalen (TypeScript, Python, Java, .NET, Go). Constructs zijn de bouwstenen van de CDK:
- L1-constructs (CfnXxx) worden gegenereerd uit de CloudFormation-specificatie en hebben een één-op-één-relatie met resources.
- L2-constructs voegen een ‘high-level’ intentie en verstandige standaardwaarden toe (bijvoorbeeld ApplicationLoadBalancedFargateService).
- L3-‘patterns’ combineren meerdere L2’s voor kant-en-klare architecturen.
Een CDK-app bevat één of meer stacks. Tijdens cdk synth lost de app context-lookups op (bijv. VPC ID’s), rendert assets en produceert een CloudFormation-template. Voordat u implementeert, creëert cdk bootstrap de asset-buckets en rollen voor de omgeving. Gebruik cdk diff om wijzigingen te previewen, en vervolgens cdk deploy om templates en assets in te dienen; CDK gebruikt intern change sets en zal beveiligingsgevoelige wijzigingen (IAM of vervangingen van resources) tonen en bevestigen. Tag stacks en resources via Aspects om organisatiebrede tagging af te dwingen. Waar L2-abstracties tekortschieten, gebruik ’escape hatches’ (node.defaultChild) of val terug op L1-constructs.
CloudFormation custom resources breiden IaC uit naar alles wat via API’s toegankelijk is. Een door Lambda ondersteunde custom resource ontvangt Create-, Update- en Delete-events met een RequestId, PhysicalResourceId en eigenschappen. De functie moet:
- Idempotent zijn en binnen de time-outperiode een succes/mislukking retourneren naar de presigned ResponseURL.
- Een stabiele PhysicalResourceId instellen om updates te volgen en de opschoning bij een Delete-actie aan te sturen.
- Retries en wachttijden voor stabilisatie afhandelen voor ’eventually consistent’ downstream services.
Gebruik IAM execution roles met de minste privileges voor de Lambda, pas ’exponential backoff’ toe op API-calls en zorg voor logcorrelatie via de RequestId. Overweeg voor grote of langdurige operaties Step Functions met een custom resource die wacht op een execution token. Geef waar mogelijk de voorkeur aan de CloudFormation Registry voor herbruikbare, geversioneerde providers.
Geheimen en Parameters in Infrastructure as Code
Hardcode nooit geheimen in templates of code. Gebruik dynamische referenties om gevoelige waarden op te halen tijdens de implementatie:
- Secrets Manager: {{resolve:secretsmanager:secret-id:SecretString:json-key:version-stage}}
- SecureString Parameter Store: {{resolve:ssm-secure:parameter-name:version}}
Dynamische referenties voorkomen dat geheimen worden opgeslagen in de stack-template of events. Plaats geen geheimen in Outputs of resource-properties die CloudFormation als platte tekst logt. Geef de execution role van CloudFormation toestemming om de gerefereerde waarden te ontsleutelen of op te halen, en beperk de scope van KMS CMK’s tot de principals die toegang nodig hebben.
Parameter Store is ideaal voor niet-geheime configuratie (feature flags, AMI ID’s, endpoints). Gebruik SSM-parameters met versiebeheer om veilige rollbacks en atomische promoties over verschillende omgevingen heen te creëren. Importeer in CDK waarden met ssm.StringParameter.fromStringParameterName of fromSecureStringParameterAttributes voor beveiligde waarden, en verwerk het uitlezen van parameters in user data of application bootstraps.
Secrets Manager is ontworpen voor lifecycle-beheer, rotatie en auditing. Integreer rotatie met ondersteunde engines (RDS, Aurora) of met custom Lambda’s. Refereer naar geheimen at runtime in plaats van ze in te bakken in AMI’s om de verspreiding van verouderd materiaal te voorkomen. Voor containerized of serverless workloads, injecteer geheimen via omgevingsvariabelen die ondersteund worden door Secrets Manager-referenties of mount ze via ECS/TaskDefinition secrets; roteer met minimale downtime door gebruik te maken van connection pools met een korte TTL en retries.
Configuratiebeheer en Immutable Infrastructure
AWS OpsWorks levert configuratiebeheer met een uitgesproken eigen visie. OpsWorks Stacks gebruikt Chef cookbooks en lifecycle events (Setup, Configure, Deploy, Undeploy, Shutdown) om de configuratie en deployments van applicaties te orkestreren, en ondersteunt auto-healing met health checks die instances stoppen/starten of vervangen. Voorheen bood OpsWorks ook beheerde Chef Automate en Puppet Enterprise; tegenwoordig standaardiseren veel teams op Systems Manager voor agent-gebaseerde orkestratie of beheren ze zelf Ansible/Chef/Puppet control planes. Ansible is niet native geïntegreerd met OpsWorks; gebruik in plaats daarvan Systems Manager State Manager om playbooks uit te voeren, of AWX/Ansible Automation Platform met SSM Session Manager-connectiviteit en EC2 dynamic inventory.
AWS Systems Manager is het moderne control plane voor hybride configuratie:
- State Manager dwingt een gewenste staat af via Associations die SSM-documenten (YAML/JSON) uitvoeren op basis van een schema, een event of bij het starten van een instance. Gebruik AWS-RunShellScript, AWS-ApplyAnsiblePlaybooks, AWS-ConfigureDocker en aangepaste documenten om de configuratie te laten convergeren. Parametriseer associations en target op basis van tags voor wijzigingen over de gehele vloot.
- Configuration compliance maakt de status van associations en de resultaten van Patch Manager zichtbaar. Gebruik patch baselines om goedgekeurde classificaties te definiëren, koppel deze aan Maintenance Windows en volg de compliance per instance-tag, patch group of resource group. Hybrid Activations onboarden on-premises nodes als managed instances voor uniforme governance.
- Inventory registreert packages, bestanden en Windows-updates; Resource Data Sync exporteert naar S3 en Athena voor bedrijfsrapportages. Combineer SSM-compliance met AWS Config-regels en automatische remediation (Systems Manager Automation runbooks) om de cirkel van detectie tot correctie te sluiten.
Immutable infrastructure elimineert drift en versnelt rollbacks. EC2 Image Builder codificeert image-pipelines met:
- Components (installatie-, hardening- en validatiestappen) uitgedrukt als documenten.
- Image recipes die components en basis-images samenstellen.
- Infrastructure configurations die subnets, security groups, instance profiles en logging definiëren.
- Distribution configurations om AMI’s naar Regions te repliceren en met accounts te delen.
Voeg test-components toe om CIS-benchmarks, de gezondheid van agents (SSM/CloudWatch) en smoke checks van applicaties te valideren. Versioniseer images en label ze met semantische tags. Publiceer AMI-ID’s naar Parameter Store (bijvoorbeeld /app/frontend/ami) en verwijs ernaar in Auto Scaling launch templates. Implementeer met rolling of blue/green strategieën; vervang instances in plaats van in-place patching om de onveranderlijkheid te behouden. Voed vulnerability scans (Amazon Inspector) in de promotion gates van de pipeline. Bak geen secrets in images; haal deze op bij het opstarten via de Instance Metadata Service v2 en verwijzingen naar SSM/Secrets Manager.
Praktijkscenario
Capital One moet multi-account, multi-Region implementaties voor een klantgericht platform standaardiseren, terwijl er strikte governance, secret management en eliminatie van configuratiedrift wordt afgedwongen. De omgeving omvat honderden accounts in AWS Organizations, met strenge controles op databasetoegang en OS-hardening.
- Modelleer infrastructuur met AWS CDK en synthetiseer naar CloudFormation
- Implementeer L2/L3 constructs voor VPC’s, ALB’s, Auto Scaling groups en Aurora. Gebruik
cdk synthencdk diffin CI om templates en change sets te genereren en te valideren. - Waarom CDK: Sterke compositie en hergebruik door constructs, programmatisch beleid via Aspects voor organisatiebrede tagging en guardrails, en native integratie met CloudFormation voor auditeerbaarheid.
- Distribueer baseline-netwerk en guardrail-stacks via CloudFormation StackSets
- Creëer service-managed StackSets gericht op security- en sandbox-OU’s om gedeelde VPC-endpoints, standaard CloudWatch-alarmen en IAM-boundaries uit te rollen. Schakel automatische implementatie naar nieuwe accounts in met fouttolerantie en concurrency-controles.
- Waarom StackSets: Consistente uitrol op organisatieschaal met automatische opname van nieuwe accounts en ingebouwde drift-detectie.
- Bescherm kritieke resources met stack policies en change sets
- Pas stack policies toe die updates aan Aurora-clusters en Route 53-zones weigeren. Vereis
CreateChangeSeten handmatige goedkeuring vóórExecuteChangeSetin de pipeline voor productie. - Waarom stack policies/change sets: Dwing mutaties met de minste privileges af en zorg voor een menselijke beoordeling vóór risicovolle wijzigingen.
- Breid IaC uit met Lambda-backed custom resources
- Implementeer een
Custom::S3BucketCleanupom applicatie-buckets te legen bij het verwijderen van een stack en eenCustom::AuroraParameterTunerdie engine-parameters toepast na het aanmaken. - Waarom custom resources: Functionele hiaten in declaratieve provisioning opvullen terwijl de lifecycle aan de stack gekoppeld blijft.
- Centraliseer secrets en configuratie met Secrets Manager en Parameter Store
- Sla database-credentials en API-keys op in Secrets Manager met rotatie-Lambda’s; publiceer AMI-ID’s, feature flags en endpoints naar Parameter Store. Verwijs naar waarden via dynamische referenties in CloudFormation en CDK-imports tijdens runtime voor apps.
- Waarom deze services: Scheiding van verantwoordelijkheden—secrets met rotatie en audit, parameters voor niet-geheime configuratie en eenvoudige promotie.
- Dwing de gewenste staat en compliance af via Systems Manager State Manager
- Creëer associations om agents te installeren, OS-instellingen te configureren en waar nodig Ansible-playbooks toe te passen. Gebruik Patch Manager met Maintenance Windows voor patchen buiten kantooruren en compliance-dashboards die worden geaggregeerd door Resource Data Sync.
- Waarom State Manager: Agent-gebaseerde convergentie over EC2 en on-premises met continue compliance-rapportage en -remediatie op schaal.
- Adopteer immutable infrastructure met EC2 Image Builder
- Bouw geharde AMI’s met components voor CIS-baselines, SSM/Inspector-agents en app runtime-afhankelijkheden. Voer tests uit, publiceer AMI-ID’s naar Parameter Store en koppel Auto Scaling launch templates aan de geversioniseerde parameters. Implementeer via rolling updates; trigger een instance refresh bij AMI-updates.
- Waarom Image Builder: Reproduceerbare, testbare images die drift elimineren en de mean time to recovery (MTTR) verkorten door snelle rollbacks.
- Pipeline-orkestratie en governance
- Implementeer een multi-stage pipeline die
cdk synth/diffuitvoert, change sets creëert, pauzeert voor goedkeuring en vervolgens uitvoert. Gebruik EventBridge om StackSet-updates te triggeren bij wijzigingen in de repository. Voeg nachtelijke drift-detectie scans toe en open OpsCenter-items voor discrepanties. - Waarom deze aanpak: Continuous delivery met auditeerbare promoties, proactieve drift-detectie en geautomatiseerde remediatie door middel van goed gedefinieerde serviceverantwoordelijkheden.
← CI · Alle domeinen · Monitoring →
Oefen deze vragen → · Getimede oefening op 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.
Slaag voor je examen →