Based on the DOP-C02 exam guideReport an error
Viewed separately, the things we saw across this week's five posts are a set of unrelated tools: SSM Run Command, Session Manager, Patch Manager, State Manager, Inventory, AppConfig, Parameter Store, and Secrets Manager. But they are really answers from different angles to a single question: "How do you operate a fleet of thousands of machines, and the applications running on them, safely without humans touching them by hand?" Today, instead of listing the individual features again, we tie them together as scenarios to see how these tools mesh into one picture in real operations. The DOP exam does not ask you to memorize a single feature; it asks "which combination fits this situation?", so training yourself to think in scenarios is exam preparation.
Organizing the Week 9 tools into four axes gives you the whole picture.
The 4 axes of operations automation
==================================================
[Command/Access] Run Command (one-time commands) / Session Manager (shell, tunnel)
[Enforce State] State Manager (apply desired state on a schedule) / Inventory (collection)
[App Config] AppConfig (feature flags, dynamic config + validation + automatic rollback)
[Secrets] Parameter Store (config, free) / Secrets Manager (rotation)
└─ Common foundation: SSM Agent (pull model) · IAM · KMS · CloudTrail (audit)
Two shared principles run through these four axes. One is declarative operations: instead of "do this (command)", you declare "it must be in this state (goal)" and the system converges toward it on its own (State Manager, AppConfig, Patch Baseline). The other is blast radius control: you never apply a change to everything at once; you spread it gradually and stop on failure (max-concurrency/max-errors, AppConfig deployment strategies, Patch Maintenance Window).
💡 Related theory: These two principles are core doctrine of reliability engineering. Declarative operations is closed-loop control from control theory: a feedback loop that keeps measuring the difference between the target state and the current state and works to reduce that error. The Kubernetes reconciliation loop, Terraform's desired state, and Git's declarative config all share the same root. Blast radius control is progressive delivery and the circuit breaker pattern, the rule of thumb that "change is risky, so split the risk into small pieces and detect problems quickly." The whole of Week 9 is the AWS implementation of these two principles.
📚 Case study: The 2017 AWS S3 outage in us-east-1 is a textbook case of what happens when an operational command is thrown at everything without blast radius control. An engineer ran a debugging command meant to remove a few servers from the billing system, but because of a typo in the input, far more servers than intended were removed at once. Core subsystems of S3 went into cascading restarts, those restarts took hours, and many services across us-east-1 stopped. The lesson is clear: a fleet-scale command must have controls that apply it to only a portion at a time (max-concurrency) and stop on failure (max-errors). AWS afterward added a safety limit on how fast that tool can remove capacity. The gradual rollout of Run Command and the Maintenance Window of Patch Manager that we saw in Week 9 are exactly the mechanisms that prevent this kind of incident.
What is easy to confuse on the exam is "which of two similar-looking tools is the right one." If you sort out the key crossroads in advance, the scenarios become easy.
Run Command vs State Manager. Both run commands on instances. The difference is time. Run Command is one-time: you fire it once, now. State Manager is periodic and continuous: it enforces "it must always be in this state" on a schedule and reports compliance. "One emergency patch right now" means Run Command; "the CloudWatch Agent must always be installed on every instance" means State Manager.
AppConfig vs Parameter Store. Both hold configuration. The difference is the safety mechanisms. Parameter Store only stores values. AppConfig is a "configuration deployment pipeline" with a deployment strategy (gradual rollout) + a Validator (validation before deployment) + a Monitor (automatic rollback when an alarm is detected). If "a bad configuration must be automatically rolled back when deployed", choose AppConfig; if it is "just reading a value", choose Parameter Store.
Secrets Manager vs Parameter Store (SecureString). Both store secrets encrypted. The difference is rotation. If you need rotation, use Secrets Manager; if the secret is static, use Parameter Store. And the cost differs by a factor of ten.
Session Manager vs Bastion. Both are ways to reach private instances. A Bastion exposes port 22 to the internet and must always be running, making it an attack target. Session Manager connects with an IAM identity without any open port and audits the entire session. Choosing a Bastion in a new design is a wrong answer.
StackSets vs individual stacks. When deploying the same infrastructure to multiple accounts and multiple Regions, creating a stack separately in each account makes the operational burden explode. StackSets deploys one template to many accounts and Regions at once, and when integrated with Organizations (Service-managed) it works at the OU level and even supports automatic deployment to new accounts (Auto-deployment). If the clues are "organization-wide", "all member accounts", and "automatic when a new account is added", it is StackSets.
Compressing these crossroads into a single table gives you something you can pull out instantly in the exam room.
| Confusing pair | Deciding criterion | Clue keywords |
|---|---|---|
| Run Command vs State Manager | One-time vs periodic enforcement | "always", "periodically", "also for new instances" → State Manager |
| AppConfig vs Parameter Store | Gradual deployment and automatic rollback or not | "without redeploying code", "automatic rollback", "feature flag" → AppConfig |
| Secrets Manager vs Parameter Store | Whether rotation is needed | "rotate every 30 days", "zero-downtime" → Secrets Manager |
| Session Manager vs Bastion | Port exposure and auditing | "remove SSH keys", "session auditing", "without a Bastion" → Session Manager |
| StackSets vs individual stacks | Multi-account and automatic deployment | "entire organization", "new accounts automatically" → StackSets |
Underneath these crossroads lies a hidden grading criterion of the exam: "operational overhead." The DOP exam asks not for "an answer that works" but for "the answer with the least operational overhead that is also safe." So even when two answers produce the same result, an answer that uses a managed feature (State Manager, --manage-master-user-password, AppConfig automatic rollback) is more likely to be correct than one that has you build it directly (high overhead), such as writing a Lambda function. When the options say "write a Lambda function to...", "run a script with cron", or "provision an EC2 instance to...", first suspect that there is a more managed alternative. This is the meta-strategy for solving DOP scenarios.
🎯 Scenario: "Automatically deploy the same SSM Patch Baseline and IAM role to 50 member accounts across the organization, and it must apply automatically when a new account is added to the OU." The answer is CloudFormation StackSets with Service-managed permissions + Auto-deployment. StackSets deploys stacks per OU, and when AutoDeployment is turned on, the stack is deployed automatically whenever a new account enters the OU. An answer that uses Lambda to detect account additions and then deploy (high operational overhead), or manual deployment, is wrong. When the clue "organization-wide, automatic when an account is added" appears, think of StackSets Auto-deployment.
🎯 Scenario: "We operate a hybrid of an on-premises data center and AWS. We want to manage passwords, access, and patching in both environments with as uniform a toolset as possible." The answer is to make full use of SSM's hybrid extension. If you register on-premises servers as mi- managed instances with a Hybrid Activation, Run Command, Session Manager, Patch Manager, and Inventory work exactly as they do on EC2; for secrets, keep Secrets Manager as the single source of truth, and on-premises apps read the same secrets over VPN/Direct Connect. The key is "do not run two sets of tools": in a hybrid scenario, choosing a separate on-premises-only tool as the answer is almost always wrong.
The way of thinking that runs through Week 9 is this. When you read a problem, first identify which of the 4 axes it belongs to (command/access, state enforcement, app configuration, secrets), and then work through, in order, time (one-time vs continuous), safety mechanisms (whether rollback or validation is needed), operational overhead (managed first), and audit requirements (CloudTrail, session logs). These four questions solve almost every Week 9 scenario. The 12 questions below cement that way of thinking.
Click a choice to reveal the answer and explanation.
Question 1
You want to apply OS security patches automatically to hundreds of EC2 instances only during the early hours of Saturday, and for prod, apply them only after a validation period following the patch release. What is the most appropriate configuration?
Question 2
You must gradually expose a feature flag from 10% → 50% → 100% without redeploying code, and it must roll back automatically to the previous configuration if the 5xx error rate exceeds a threshold. What do you use?
Question 3
You want to rotate the RDS master password every 30 days, but new and in-flight connections must not fail even at the moment of rotation. There are many new connections per second. What is the most appropriate choice?
Question 4
You want to minimize the cost of 100 simple configuration values and 5 passwords that need rotation.
Question 5
An app in account B wants to fetch a secret from account A. You set up both the Resource Policy and B's IAM permissions, yet you get AccessDenied at the KMS stage. What is the cause?
Question 6
You want to remove the burden of managing operators' SSH keys, control access to private instances with IAM, and audit all session input and output in a tamper-proof way.
Question 7
In an environment where new EC2 instances are constantly created and terminated by an ASG, the CloudWatch Agent must always be installed on every instance and the standard state must be enforced.
Question 8
You want to collect the software inventory of hundreds of thousands of instances and query "instances that have a specific vulnerable version of a package installed" with SQL.
Question 9
A Lambda invoked thousands of times per second calls Secrets Manager GetSecretValue directly every time, and ThrottlingException occurs intermittently. The secret changes only once every 30 days.
Question 10
You want to manage 200 physical servers in a data center and an AWS EC2 fleet under a single patch policy and report compliance for both environments in the same console.
Question 11
You want to deploy the same SSM Patch Baseline and IAM role to all member accounts in the organization, and it must apply automatically when a new account is added to the OU. How do you minimize operational overhead?
Question 12
An urgent zero-day vulnerability has been announced, and you must apply a specific patch to prod immediately without waiting for the usual approve-after-days (7 days) policy. What do you use in the Patch Baseline?
The key of this week is that the four axes of operations automation, namely command/access (Run Command/Session Manager), state enforcement (State Manager/Inventory), app configuration (AppConfig), and secrets management (Parameter Store/Secrets Manager), mesh together on the common foundation of the SSM Agent's pull model and IAM, KMS, and CloudTrail. The two principles running through them are declarative operations (convergence to a target state) and blast radius control (gradual rollout + stop on failure). When solving a scenario, working through the order of identifying the 4 axes → time → safety mechanisms → operational overhead → audit requirements solves almost every problem. And remember that DOP's hidden criterion is always "the managed answer with the least operational overhead."
From next week (Week 10) we move into deeper monitoring and dig deep into CloudWatch.