SOA-C02 · 18% of the exam
Deployment, Provisioning, and Automation practice questions
10 free Deployment, Provisioning, and Automation questions for the AWS Certified SysOps Administrator – Associate (SOA-C02) exam, each with the correct answer and an explanation for every option.
What this domain covers
Provisioning and changing infrastructure repeatably: CloudFormation, AMIs, Systems Manager and deployment services.
- Exam weight
- 18%
- On a real exam
- ≈ 12 questions
- In our bank
- 115 questions
Topics that come up most
- CloudFormation stacks, change sets and drift
- StackSets across accounts
- AMI building and sharing
- Systems Manager Patch Manager and Run Command
- Elastic Beanstalk and CodeDeploy operations
How to study it
Learn why stack updates fail and how rollback behaves; troubleshooting a failed deployment is a common scenario.
Sample Deployment, Provisioning, and Automation questions
Try each one before opening the answer. Original questions written to the official exam objectives.
Question 1
A networking stack exports its subnet ID under the export name prod-net-SubnetID. A web server stack in the same account and Region must use this subnet ID. The team also wants CloudFormation to prevent anyone from deleting the networking stack while the web server stack depends on that value. Which intrinsic function should the web server template use?
- AFn::ImportValue with the export name prod-net-SubnetID
- BRef with the logical ID of the subnet resource in the networking stack
- CFn::GetAtt with the subnet's logical ID and its SubnetId attribute
- DFn::FindInMap with the export name used as the lookup key
Show answer and explanation
Answer: A) Fn::ImportValue with the export name prod-net-SubnetID
Fn::ImportValue consumes a value that another stack exported in the same account and Region. It creates a strong reference, so the exporting stack can't be deleted, and the exported value can't be changed, while the import exists.
- ACorrect. Fn::ImportValue returns the value of an output that another stack has exported. After a stack imports a value, CloudFormation blocks deletion of the exporting stack, and changes to the exported value, until all imports are removed.
- BIncorrect. Ref resolves parameters and resources declared in the same template only. It can't reach a resource that another stack's template defines.
- CIncorrect. Fn::GetAtt returns attributes of resources declared in the same template. It can't read resources or outputs from a separate stack.
- DIncorrect. Fn::FindInMap reads values from the Mappings section of the current template. It has no access to other stacks' exports.
Question 2
An online retailer is running a one-time promotion that starts at 09:00 UTC next Friday. Traffic is expected to triple at that moment. The application has never had a similar event, and its instances need several minutes to initialize. The SysOps administrator wants the Auto Scaling group to already have the extra capacity when the promotion begins, without keeping that capacity running permanently. What should the administrator do?
- ACreate a one-time action for the group that raises the minimum and desired capacity shortly before 09:00 UTC on Friday
- BAdd a predictive scaling policy so the group forecasts the surge and launches capacity before it occurs
- CLower the target value of the group's target tracking policy on average CPU so that it scales out sooner
- DConfigure a step scaling policy with large step adjustments that trigger on a high request-count alarm
Show answer and explanation
Answer: A) Create a one-time action for the group that raises the minimum and desired capacity shortly before 09:00 UTC on Friday
For a known, one-time event with a fixed start time, a scheduled action raises capacity ahead of time. Predictive scaling needs historical patterns, and dynamic policies (target tracking, step) react only after load rises.
- ACorrect. A scheduled action changes the group's desired, minimum and maximum capacity at a date and time you choose, and it can run just once. Raising capacity shortly before the start means the instances are initialized when traffic arrives. A second action can lower capacity afterward, and any existing scaling policies keep working within the new limits.
- BIncorrect. Predictive scaling forecasts load from historical data that shows daily or weekly cycles. A one-time promotion with no earlier occurrence leaves no pattern to learn from, so the forecast would not predict this surge.
- CIncorrect. Target tracking is still reactive: it scales only after the metric rises. A lower target also keeps extra capacity running all the time, and new instances would still need several minutes to initialize after the surge starts.
- DIncorrect. Step scaling responds to a CloudWatch alarm that fires only after the load increases. Larger steps add more instances per action, but the instances still launch after the promotion has begun, not before.
Question 3
A team runs many AWS CodeBuild builds each day. Every build spends several minutes downloading the same package-manager dependencies, which rarely change between builds. Which change will most directly reduce this repeated download time?
- AConfigure a project cache (Amazon S3 or local) and list the dependency directory under the buildspec cache paths
- BAdd the dependency directory to the artifacts section of the buildspec so it is uploaded after each build
- CChange the project to a larger compute type with more vCPUs and memory
- DConvert the project to batch builds so several builds run in parallel
Show answer and explanation
Answer: A) Configure a project cache (Amazon S3 or local) and list the dependency directory under the buildspec cache paths
CodeBuild caching (Amazon S3, or local with source, Docker layer, or custom modes) keeps dependency directories between builds so they don't have to be downloaded again each time. Artifacts, larger compute types, and batch builds don't reuse anything between builds.
- ACorrect. CodeBuild caching stores reusable parts of the build environment and reuses them across builds. The cache type can be Amazon S3, or local with source, Docker layer, or custom cache modes. You specify the dependency directories to keep under the buildspec cache section, so later builds can reuse them instead of downloading them again.
- BIncorrect. Artifacts are build outputs uploaded to a destination. CodeBuild does not restore them into later builds, so the dependencies would still be downloaded every time.
- CIncorrect. A larger compute type can speed up CPU-bound work, but every build would still download the same dependencies from scratch. Nothing would be reused between builds.
- DIncorrect. Batch builds run related builds together, for example in parallel or as a build matrix, but each build still fetches its own dependencies. Batch builds do not keep dependencies between runs.
Question 4
A SysOps administrator has registered several Run Command tasks with one AWS Systems Manager maintenance window. The window's duration might not be long enough for every task to finish. The administrator must make sure a critical patching task starts before the less important tasks. What should the administrator configure?
- AGive the critical task a lower Priority value than the other registered tasks
- BSet the cutoff behavior of the less important tasks to CANCEL_TASK
- CRaise the MaxConcurrency value of the critical patching task
- DRegister the critical task with the window before the others
Show answer and explanation
Answer: A) Give the critical task a lower Priority value than the other registered tasks
Each maintenance window task has a Priority value. Lower numbers are scheduled first, and tasks with the same priority run in parallel. Cutoff behavior and MaxConcurrency don't control the order of tasks.
- ACorrect. Maintenance window tasks are scheduled in priority order, and a lower number means a higher priority. Tasks with the same priority are scheduled in parallel, so giving the critical task the lowest value makes it run first.
- BIncorrect. Cutoff behavior only controls what happens to tasks once the window's cutoff time is reached, such as not starting new invocations. It doesn't decide which task starts first.
- CIncorrect. MaxConcurrency sets how many targets one task runs on at the same time. It doesn't change the order in which the window's tasks are scheduled.
- DIncorrect. Registration order doesn't determine execution order. Tasks are scheduled by their Priority value.
Question 5
A SysOps administrator is writing a CloudFormation template that creates an Amazon RDS DB instance. The master password is already stored as the "password" key in a Secrets Manager secret named ProdDbSecret. The plaintext password must not appear in the template, in stack parameters, or in stack outputs. How should the MasterUserPassword property be set?
- ASet it to '{{resolve:secretsmanager:ProdDbSecret:SecretString:password}}'
- BDeclare a String parameter with NoEcho set to true and have operators type the password when they create the stack
- CStore the password in a Mappings section keyed by environment and retrieve it with Fn::FindInMap
- DExport the password as an output from a separate stack and retrieve it with Fn::ImportValue
Show answer and explanation
Answer: A) Set it to '{{resolve:secretsmanager:ProdDbSecret:SecretString:password}}'
Use a secretsmanager dynamic reference ({{resolve:secretsmanager:secret-id:SecretString:json-key}}) to pull a stored secret into a resource property when the stack is deployed, without hardcoding the value or passing it as a parameter.
- ACorrect. A secretsmanager dynamic reference with the pattern secret-id:SecretString:json-key gets the value of the 'password' key from the secret when the resource is created or updated. Neither CloudFormation nor Secrets Manager logs keep the resolved value.
- BIncorrect. NoEcho masks the value in the console, but operators still pass the plaintext password in as a stack parameter. This approach also never reads the value already stored in Secrets Manager.
- CIncorrect. Mappings are literal values written into the template, so the password would be hardcoded in the template and its version history.
- DIncorrect. The secret value would have to be published as a stack output, which anyone who can describe the stack or list exports can see. This breaks the requirement.
Question 6
A development team writes its applications in TypeScript. The team wants to define its AWS infrastructure in TypeScript too, using classes, inheritance, and reusable components that can be shared across projects. It also wants AWS CloudFormation to handle deployments, including rollback on error. Which approach meets these requirements?
- AUse the AWS Cloud Development Kit (AWS CDK) to define stacks with constructs and deploy them through CloudFormation
- BWrite CloudFormation templates that use the AWS::LanguageExtensions transform and Fn::ForEach for looping
- CWrite AWS Serverless Application Model (AWS SAM) templates and deploy them with the AWS SAM CLI
- DPublish the CloudFormation templates as AWS Service Catalog products for the team to launch
Show answer and explanation
Answer: A) Use the AWS Cloud Development Kit (AWS CDK) to define stacks with constructs and deploy them through CloudFormation
The AWS CDK lets teams define infrastructure in general-purpose languages such as TypeScript, using reusable constructs, and deploys it through CloudFormation. CloudFormation (even with Fn::ForEach) and SAM templates remain declarative YAML or JSON.
- ACorrect. With the AWS CDK, you define infrastructure in TypeScript, JavaScript, Python, Java, C#/.NET, or Go. You can use reusable constructs, conditionals, loops, composition, and inheritance. The CDK deploys the app through CloudFormation.
- BIncorrect. Fn::ForEach and Conditions add looping and conditional logic, but the templates are still declarative YAML or JSON. The team couldn't write its infrastructure in TypeScript with classes and inheritance.
- CIncorrect. AWS SAM templates extend CloudFormation with shorthand syntax and are declarative. AWS suggests SAM for teams that prefer a declarative approach, and CDK for teams that want to define infrastructure in a programming language.
- DIncorrect. Service Catalog controls how approved products are distributed and provisioned. The products are still built from templates, so the team couldn't write its infrastructure in TypeScript.
Question 7
A SysOps administrator manages an AWS Elastic Beanstalk environment with enhanced health reporting turned on. The team wants new patch and minor platform versions to be applied automatically each week during a two-hour window they choose, with no reduction in capacity and no one having to start each update. Which configuration meets these requirements?
- AEnable managed platform updates, set the weekly maintenance window start time, and set the update level to minor and patch
- BEnable managed platform updates and set the update level to major so that new platform branches are also applied automatically
- CChange the environment's deployment policy to rolling with a batch size of 100 percent so new platform versions deploy when released
- DCreate a Systems Manager maintenance window that runs AWS-RunPatchBaseline against the environment's EC2 instances every week
Show answer and explanation
Answer: A) Enable managed platform updates, set the weekly maintenance window start time, and set the update level to minor and patch
Elastic Beanstalk managed platform updates apply patch-only or minor-and-patch platform updates during a weekly two-hour maintenance window using immutable updates. Major-version or platform-branch changes still need to be applied manually.
- ACorrect. Managed platform updates (ManagedActionsEnabled with PreferredStartTime) schedule new platform versions into a weekly two-hour maintenance window. An UpdateLevel of 'minor' applies both minor and patch updates. The updates run as immutable updates, so capacity isn't reduced.
- BIncorrect. UpdateLevel accepts only 'minor' or 'patch'. Managed platform updates don't apply major versions or move to a different platform branch, because those changes can be backward incompatible.
- CIncorrect. A deployment policy controls how application versions and configuration changes are rolled out. It doesn't detect or schedule new platform versions, and a 100 percent batch would take every instance out of service at once.
- DIncorrect. Patch Manager patches the operating system on running instances in place, but it doesn't change the environment's Elastic Beanstalk platform version. Instances that Elastic Beanstalk launches later still use the original platform version.
Question 8
Developers push several commits in quick succession to the source repository of an AWS CodePipeline pipeline. The pipeline was created without specifying an execution mode. How does the pipeline handle the resulting executions?
- AAn execution waiting to enter a locked stage can be overtaken by a newer execution, and the older one does not continue
- BExecutions wait in a queue at each locked stage and are processed one by one in the order they arrived
- CEach execution runs simultaneously and independently, without waiting for other executions to finish any stage
- DA newer execution immediately stops and abandons any older execution that is still running actions inside a stage
Show answer and explanation
Answer: A) An execution waiting to enter a locked stage can be overtaken by a newer execution, and the older one does not continue
CodePipeline uses SUPERSEDED mode by default: a newer execution can overtake an older one that is waiting between stages. QUEUED and PARALLEL modes must be set explicitly and require V2 pipelines.
- ACorrect. SUPERSEDED is the default mode. Each stage processes one execution at a time. An execution waiting in front of a locked stage can be overtaken by a more recent execution, and the superseded execution does not continue. Superseding happens only between stages.
- BIncorrect. This describes QUEUED mode, where waiting executions don't overtake earlier ones. It isn't the default, and it requires pipeline type V2.
- CIncorrect. This describes PARALLEL mode. It isn't the default, it requires pipeline type V2, and stage rollback isn't available in it.
- DIncorrect. A stage stays locked while an execution is in progress. Only executions waiting between stages are superseded. An execution that is already inside a stage is not abandoned by a newer one.
Question 9
A team wants to deploy a new Elastic Beanstalk application version to a completely separate environment and test it there first. They then want to move all production traffic to it at once with a DNS change. The old environment must stay running untouched so they can switch back immediately if needed. Which approach meets these requirements?
- ADeploy to a cloned environment, then use Swap environment URLs to exchange the two environments' CNAMEs
- BSet the environment's deployment policy to Immutable so new instances launch in a temporary Auto Scaling group
- CSet the environment's deployment policy to Traffic splitting and shift a percentage of requests to new instances
- DSet the environment's deployment policy to Rolling with additional batch to keep full capacity during deployment
Show answer and explanation
Answer: A) Deploy to a cloned environment, then use Swap environment URLs to exchange the two environments' CNAMEs
Blue/green deployment in Elastic Beanstalk means deploying to a separate environment and then swapping environment URLs (CNAMEs). The old environment stays intact for a fast rollback. Immutable, traffic-splitting and rolling policies all update instances inside the same environment.
- ACorrect. This is a blue/green deployment. The new version runs and is tested in its own environment. Swapping environment URLs exchanges the CNAME records, so traffic moves to the new version at once. The original environment keeps running, so swapping back gives an immediate rollback.
- BIncorrect. An immutable deployment launches new instances in a temporary Auto Scaling group, but it does this inside the same environment. It does not use a DNS swap. After a successful deployment, the old instances are replaced, so no separate old environment is left to switch back to.
- CIncorrect. Traffic splitting is a canary deployment inside the same environment. It uses the load balancer to send a percentage of traffic to new instances, not a DNS swap. If the new instances stay healthy, the old instances are terminated, so no separate environment remains.
- DIncorrect. This policy updates the existing environment in batches and adds an extra batch to keep full capacity. It does not create a separate tested environment or use a DNS cutover. When it finishes, no old environment is left to switch back to.
Question 10
A SysOps team manages a large fleet of Linux EC2 instances that are already Systems Manager managed nodes. They have Chef cookbooks that install packages and manage configuration files. They want to reuse those cookbooks on AWS, reapply them on a recurring schedule so the instances stay in the desired state, and see which Chef-managed resources have drifted. Which approach meets these requirements?
- ACreate a Systems Manager State Manager association that runs the AWS-ApplyChefRecipes document on a schedule with compliance reporting turned on
- BCreate an AWS OpsWorks Stacks custom layer that runs the cookbooks during the instances' lifecycle events
- CEnable AWS Config managed rules with automatic remediation that apply the cookbooks whenever an instance changes
- DAdd the cookbooks as EC2 Image Builder components so that every new AMI is built with the desired configuration
Show answer and explanation
Answer: A) Create a Systems Manager State Manager association that runs the AWS-ApplyChefRecipes document on a schedule with compliance reporting turned on
With OpsWorks retired, the AWS-native way to keep running existing Chef cookbooks is a Systems Manager State Manager association that uses AWS-ApplyChefRecipes. It runs on a schedule to enforce the desired state and reports drift through Systems Manager Compliance.
- ACorrect. State Manager associations can run the AWS-ApplyChefRecipes document against Linux managed nodes. The document installs the Chef client, pulls cookbooks from Git, GitHub, HTTP or Amazon S3, and runs the run list on a cron or rate schedule. It can also report noncompliant Chef resources to Systems Manager Compliance.
- BIncorrect. AWS OpsWorks Stacks, along with the other OpsWorks offerings, has reached end of life and can no longer be used to manage instances. AWS recommends moving these workloads to AWS Systems Manager.
- CIncorrect. AWS Config records resource configurations and checks them against rules. It does not run Chef cookbooks inside the operating system to install packages or manage files on the instances.
- DIncorrect. Image Builder applies configuration only when it builds an image. It does not reapply the cookbooks to instances that are already running, and it does not report drift on them.
Deployment, Provisioning, and Automation: FAQs
How much of the SOA-C02 exam is Deployment, Provisioning, and Automation?
Deployment, Provisioning, and Automation is 18% of the SOA-C02 exam by the official exam guide's weighting, which on a 65-question form works out to roughly 12 questions. The real exam's exact split varies by form.
What does the Deployment, Provisioning, and Automation domain cover?
Provisioning and changing infrastructure repeatably: CloudFormation, AMIs, Systems Manager and deployment services.
How should I study Deployment, Provisioning, and Automation for SOA-C02?
Learn why stack updates fail and how rollback behaves; troubleshooting a failed deployment is a common scenario.
Where can I practise more Deployment, Provisioning, and Automation questions?
This page has 10 free Deployment, Provisioning, and Automation questions with answers. CertRidge's SOA-C02 question bank has 115 questions in this domain. Every practice exam result breaks your score down by domain, and Review Mode re-drills the questions you missed.
Other SOA-C02 domains
- Monitoring, Logging, and Remediation20% of the exam
- Reliability and Business Continuity16% of the exam
- Security and Compliance16% of the exam
- Networking and Content Delivery18% of the exam
- Cost and Performance Optimization12% of the exam
Also: 15 free questions across all domains, the SOA-C02 cheat sheet and the study guide.
Get Deployment, Provisioning, and Automation exam-ready
The full SOA-C02 bank has 115 Deployment, Provisioning, and Automation questions. Timed practice exams match the real exam's length and domain weights, every result shows your score per domain, and Review Mode re-drills the questions you missed.
Not affiliated with AWS; questions are original and never copied from the real exam.