AWS • DOP-C02
Validates technical expertise in provisioning, operating, and managing distributed systems and services on AWS, including CI/CD, security controls, monitoring, and highly available systems.
Questions
436
Duration
180 minutes
Passing Score
750/1000
Difficulty
ProfessionalLast Updated
Jan 2025
The AWS Certified DevOps Engineer – Professional (DOP-C02) is a professional-level credential that validates deep technical expertise in provisioning, operating, and managing distributed systems and services on AWS. It covers the full spectrum of DevOps practices on the AWS platform, including the design and implementation of continuous integration and continuous delivery (CI/CD) pipelines, infrastructure automation using tools like AWS CloudFormation and AWS CDK, and the enforcement of security controls and compliance frameworks across cloud environments. The exam also tests proficiency in building self-healing, highly available, and scalable architectures using AWS-native services such as Auto Scaling, Elastic Load Balancing, and AWS Fault Injection Simulator.
First launched as DOP-C01 and updated to DOP-C02, the current version reflects modern DevOps practices with increased emphasis on resilience engineering, observability, and automated security governance. Candidates must demonstrate competency across six weighted domains: SDLC Automation (22%), Configuration Management and IaC (17%), Security and Compliance (17%), Resilient Cloud Solutions (15%), Monitoring and Logging (15%), and Incident and Event Response (14%). This breadth makes it one of the most comprehensive AWS professional certifications available.
This certification is designed for experienced cloud practitioners who actively perform DevOps engineering functions in AWS environments. Ideal candidates include DevOps engineers, cloud platform engineers, site reliability engineers (SREs), and cloud infrastructure architects with at least two years of hands-on experience provisioning, operating, and managing AWS-based systems. Professionals who work on CI/CD pipeline design, infrastructure-as-code authoring, monitoring strategy, and cloud security automation will find the exam objectives directly aligned with their daily responsibilities.
The exam is also well-suited for software developers transitioning into platform or operations roles who have substantial AWS experience and scripting or programming skills. Candidates pursuing senior or lead DevOps positions—particularly in organizations that require formal AWS credentials for cloud infrastructure roles—will find this certification significantly strengthens their professional profile.
AWS does not enforce formal prerequisites, but strongly recommends that candidates have a minimum of two years of experience provisioning, operating, and managing AWS environments before attempting the exam. A working knowledge of software development lifecycle (SDLC) methodologies, modern development and operations practices, and at least one scripting or programming language (such as Python, Bash, or PowerShell) is expected. Familiarity with Linux/Unix and Windows system administration is also recommended.
While not required, holding an AWS Certified Developer – Associate or AWS Certified SysOps Administrator – Associate credential is a practical stepping stone, as those exams cover foundational AWS services that appear throughout the DOP-C02 domains. Candidates should have hands-on experience with AWS services including CodePipeline, CodeBuild, CodeDeploy, CloudFormation, Systems Manager, CloudWatch, AWS Config, and IAM before sitting for this exam.
The DOP-C02 exam consists of 75 total questions: 65 scored questions that affect the final result and 10 unscored pretest questions that AWS uses for future exam development and are not identified during the exam. Questions are presented in two formats—multiple choice (one correct answer from four options) and multiple response (two or more correct answers from five or more options). The exam is administered over 180 minutes.
Scoring uses a compensatory model on a scale of 100–1,000, with a minimum passing score of 750. This means candidates do not need to achieve a passing threshold in each individual domain; overall performance determines the outcome. Unanswered questions are scored as incorrect, so guessing carries no additional penalty. The exam is delivered through Pearson VUE, either at an authorized testing center or via online proctoring, and is available in English, Japanese, Korean, and Simplified Chinese. The exam fee is $300 USD. AWS certifications remain valid for three years.
The AWS Certified DevOps Engineer – Professional ranks among the top 20 highest-paying IT certifications in North America according to Skillsoft's IT Skills and Salary Report, reflecting strong market demand for professionals who can automate, secure, and operate cloud infrastructure at scale. In the United States, AWS DevOps engineers earn average salaries of approximately $135,000–$145,000 annually, with experienced professionals at senior levels reporting compensation above $150,000. Many organizations in finance, healthcare, retail, and technology explicitly list this certification as a preferred or required qualification for senior DevOps, cloud platform, and SRE roles.
Holding the DOP-C02 credential positions professionals for roles including Senior DevOps Engineer, Cloud Platform Engineer, Site Reliability Engineer, Release Engineering Lead, and Cloud Infrastructure Architect. Compared to associate-level AWS certifications, the professional designation signals the ability to architect complete DevOps systems—not just operate within them—which meaningfully expands role eligibility and negotiating leverage. Demand for certified DevOps engineers on AWS is projected to grow substantially as organizations accelerate cloud adoption and prioritize automated governance and security practices.
5 sample questions with correct answers and explanations. Start a practice session to test yourself across all 436 questions.
1. A logistics company runs a custom Web Application Firewall (WAF) on a fleet of EC2 instances. The WAF generates detailed logs and sends them to an Amazon CloudWatch Logs group. Each log event contains a severity field, such as SEVERITY=LOW, SEVERITY=MEDIUM, or SEVERITY=CRITICAL. The security operations team requires an immediate email notification the moment any log event containing 'SEVERITY=CRITICAL' is ingested. What is the most direct and cost-effective way to implement this alerting mechanism?
Explanation
This scenario calls for a real-time, pattern-based alerting system directly from log data, which is a primary use case for CloudWatch features. Why the CloudWatch Logs metric filter approach is correct: This is the most efficient and native AWS solution. A CloudWatch Logs metric filter is designed to scan incoming log data for specific patterns (like the string 'SEVERITY=CRITICAL') and convert matches into a numeric CloudWatch metric. You can then create a CloudWatch alarm based on this metric. By setting the alarm threshold to be greater than or equal to 1, the alarm will trigger the instant the first critical event is detected. The alarm's action can be to publish a message to an SNS topic, which then emails the subscribed security team. This entire process is serverless, real-time, and highly cost-effective. Why other approaches are incorrect: The Kinesis Data Firehose solution is overly complex and expensive. It introduces multiple services (Kinesis, S3, Lambda) and data transfer steps, adding latency and cost where a simpler solution exists. The Amazon GuardDuty approach is incorrect because GuardDuty is a threat detection service that analyzes specific AWS data sources like VPC Flow Logs, DNS logs, and CloudTrail events. It does not analyze custom application logs for arbitrary text patterns. The scheduled Lambda function approach is not real-time. A Lambda function triggered every minute by EventBridge introduces a delay of up to one minute between the event occurring and the alert being sent. The metric filter approach is immediate.
2. A financial services firm, SecureFunds, uses a standard buildspec.yml file in its AWS CodeBuild projects. A recent security review highlighted several issues with the current configuration. The buildspec file hardcodes AWS access keys and a database password as environment variables. It also uses raw ssh and scp commands to transfer build artifacts. A DevOps engineer must redesign this process to align with AWS security best practices. What changes should the engineer recommend? (Select TWO.)
Multiple correct answersExplanation
This scenario requires correcting several common security anti-patterns in a CI/CD process. The goal is to remove all long-term, static credentials from the configuration files. The first critical change is to eliminate the hardcoded AWS access keys. The correct and secure way for an AWS service like CodeBuild to interact with other AWS services is by using an IAM role. You should configure the CodeBuild project to use a service role that has been granted the specific permissions it needs. This provides temporary, automatically-rotated credentials. Additionally, using raw ssh and scp requires managing SSH keys and opening network ports. A more secure and manageable approach is to use AWS Systems Manager Run Command, which allows you to execute commands on instances securely through the SSM agent without needing direct network access like SSH. The second critical change is to secure the database password. Storing it as a plain-text environment variable is highly insecure. The best practice is to store it as a SecureString parameter in AWS Systems Manager Parameter Store. This encrypts the secret at rest. The CodeBuild project can then securely retrieve it at runtime by referencing the parameter, with access controlled by its IAM role. Encoding with Base64 provides no real security as it's easily reversible. Deleting files at the end of the build doesn't fix the root problem of exposing credentials in the first place. Storing secrets in S3 is not the recommended practice compared to dedicated services like Parameter Store or Secrets Manager.
3. An online forum application, ForumSphere, uses a DynamoDB table with a partition key of ForumName and a sort key of Subject. A new reporting feature requires finding all threads posted within a specific ForumName during the last 90 days, sorted by the LastPostDateTime. How should this query be implemented efficiently?
Explanation
This question tests your understanding of DynamoDB's query capabilities and the rules for creating secondary indexes. The existing table's primary key (ForumName, Subject) does not support efficient queries sorted by date. To support this new query pattern, an index is required. A Local Secondary Index (LSI) is ideal because the query is still scoped to the same partition key (ForumName) but needs a different sort key (LastPostDateTime). However, a critical rule for DynamoDB is that you cannot add an LSI to a table after it has been created. Therefore, the only way to implement this is to create a new table with the desired schema, including the LSI on LastPostDateTime, and then perform a one-time data migration from the old table to the new one. The application can then perform an efficient Query operation against the new table's LSI. A Scan operation is highly inefficient and should always be avoided for frequent access patterns. A GSI would also work for the query, but creating a new table with an LSI is often preferred when strong read consistency on the index is a potential future requirement. You cannot directly query on LastPostDateTime as it's not part of the base table's key.
4. A tech team is migrating their Kubernetes workload from EC2 to Amazon EKS for better scalability. They need email notifications for specific EKS component log events, planning to use SNS for notifications and Lambda for log evaluation. What's the best approach?
Explanation
CloudWatch Logs with subscription filters provides the optimal solution for real-time log processing and notifications. Here's the complete workflow: EKS components generate logs that are published to CloudWatch Logs, where each component typically has its own log group. Subscription filters act as real-time log processors that can filter specific patterns and forward matching events to destinations like Lambda, Kinesis, or Firehose. For this scenario, you create subscription filters with filter patterns that match the specific events requiring notifications. These filters forward matching log entries to Lambda functions in real-time. The Lambda function receives the filtered logs, evaluates them further if needed, and triggers SNS notifications. The key advantage is that subscription filters support pattern matching, so Lambda is only invoked for relevant events, not every log entry. This makes the solution cost-effective and performant. The logs are also Base64 encoded and gzip compressed when sent to Lambda, optimizing data transfer. The S3 approach would require Lambda invocation for every log file upload, regardless of content, making it inefficient and costly. CloudWatch Logs Insights is for ad-hoc querying, not real-time event processing, and has no EventBridge integration. S3 server access logging only tracks S3 bucket access, not EKS component logs. This architecture provides real-time, filtered log processing with minimal latency and cost.
5. The central IT team at a large research university is concerned about cost overruns from idle resources left running in student and faculty AWS accounts. They have identified that AWS Trusted Advisor provides an 'Idle Load Balancers' check. They need an automated way to get a daily notification summarizing the findings of this check. Which three of the following methods could be used to build this notification system?
Multiple correct answersExplanation
Automating notifications from AWS Trusted Advisor can be achieved through its integration with other AWS services like EventBridge and CloudWatch. Why these approaches are correct: The EventBridge event-driven approach is the most direct method. Trusted Advisor emits an event to EventBridge whenever a check's status is refreshed. You can create a rule to capture this specific event and immediately trigger a notification to an SNS topic. The CloudWatch alarm approach leverages another native integration. Trusted Advisor exposes its check results as CloudWatch metrics. You can create an alarm on the metric that counts the number of idle load balancers, and this alarm can trigger an SNS notification. The scheduled Lambda function approach provides the most flexibility for custom reporting. A Lambda function can programmatically call the Trusted Advisor API, retrieve the detailed results of the check, format them into a human-readable report, and then publish that report to an SNS topic on a daily schedule via EventBridge. Why other approaches are incorrect: Using AWS Config is incorrect because Config is designed for checking resource configuration compliance, not for analyzing utilization metrics like idleness. Running a cron job on an EC2 instance is not a serverless or low-overhead solution; it requires managing an EC2 instance and a custom script, adding unnecessary operational overhead. Manually checking the Trusted Advisor dashboard is a manual process and does not meet the automation requirement for daily notifications.
One-time access to this exam