SOA-C02 Deployment, Provisioning, and Automation Practice Question
A SysOps administrator needs to deploy a web application stack consisting of an Amazon EC2 instance, an Amazon RDS database, and an Application Load Balancer. The administrator wants to define the infrastructure as code and version control it. Which AWS service should the administrator use?
⚠ Common exam trap
Test-takers frequently confuse AWS Elastic Beanstalk (a PaaS that automates deployment) with Infrastructure as Code, but Elastic Beanstalk does not allow you to version-control the raw infrastructure definition; CloudFormation is the dedicated IaC service for that purpose.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
AWS CloudFormation
AWS CloudFormation is the correct choice because it is an Infrastructure as Code (IaC) service that allows you to define and provision AWS resources—such as EC2 instances, RDS databases, and Application Load Balancers—using declarative templates (JSON or YAML). These templates can be version-controlled in a repository like Git, enabling repeatable, auditable deployments. Elastic Beanstalk abstracts infrastructure management but does not give you the same level of granular control over individual resources as CloudFormation.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
AWS Elastic Beanstalk
Why it's wrong here
AWS Elastic Beanstalk is a platform-as-a-service that automates capacity provisioning, load balancing, and application health monitoring, but it makes decisions for you by applying AWS-managed platform defaults. It abstracts away the underlying EC2 instances, VPC networking, and security groups, which limits your ability to customize the environment or version-control every infrastructure detail. For a web application where exact repeatable, controlled infrastructure is required, Elastic Beanstalk's black-box management is too restrictive and does not expose the full resource-level control that CloudFormation provides.
- ✓
AWS CloudFormation
Why this is correct
AWS CloudFormation is an Infrastructure-as-Code service that lets you define every AWS resource—VPCs, subnets, EC2 instances, IAM roles, RDS databases, and application-specific components—in a declarative YAML or JSON template. Templates are stored in version control, so deployments are fully repeatable and auditable, and change sets let you preview modifications before executing them. CloudFormation also manages rollbacks on failure and stack lifecycle, making it the most complete and precise tool for provisioning a web application environment from scratch. This is why it is the correct answer for a sysops administrator who needs deterministic, fully controlled deployment.
- ✗
AWS OpsWorks
Why it's wrong here
AWS OpsWorks is a configuration-managed service that uses Chef or Puppet, requiring an agent on already-running EC2 instances to install packages, manage files, and configure services. It does not provision a full application environment, such as VPCs, subnets, IAM policies, or managed database services—it only handles the desired state of existing or newly launched compute instances. For a web application that needs all infrastructure resources defined and deployed as code, OpsWorks lacks the broad, declarative resource coverage that CloudFormation offers and is therefore not a complete infrastructure-provisioning solution.
- ✗
AWS CodeDeploy
Why it's wrong here
AWS CodeDeploy automates the rollout of application code and its revisions to already-existing compute resources, using strategies like in-place, blue/green, or canary deployments. It does not create or manage infrastructure components such as VPCs, load balancers, autoscaling groups, or databases; the underlying capacity must be provisioned separately by another service. If a sysops administrator needs to deploy a web application's entire environment, CodeDeploy serves only the code release stage, not the foundational infrastructure setup, making it insufficient for full provisioning.
Go deeper
Related to this question
About these practice questions
This SOA-C02 question is part of Courseiva's 1,169-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This SOA-C02 practice question is part of Courseiva's free Amazon Web Services certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the SOA-C02 exam.