Free SOA-C03 Practice Questions

Sample questions from our AWS Certified CloudOps Engineer Exam question bank, grouped by exam domain. Try each one, then open the answer to see the correct option and why every other option is wrong.

Practice the full 200+ question bank

Monitoring, Logging, Analysis, Remediation, and Performance Optimization

Question 1
You are tasked with creating a metric filter to track instances where the CPU utilization exceeds 85%.
  • { $.cpu_utilization > 85 }

  • { $.CPU > 85 }

  • { $.utilization > 85 }

  • { $.cpu_utilization > 85 }

Show answer and explanation

Correct answer: { $.cpu_utilization > 85 }

Why "Create a metric filter using the pattern { $.cpu_utilization > 85 }"?
In CloudWatch Logs, metric filters use JSON syntax to extract and match specific log entries. The correct pattern to match logs for CPU utilization should use the field name “cpuutilization” that is typically logged by AWS, followed by the condition (> 85) to monitor CPU usage exceeding 85%. The syntax for referring to the field is $.<field_name>. Therefore, `$.cpuutilization > 85` is the correct syntax.

Incorrect Options:

  • { $.CPU > 85 }:
    While this may seem correct, AWS logs may not use “CPU” as the field name. The correct field is typically “cpu_utilization.” Using “CPU” may not match any log data, leading to incorrect results.
  • { $.utilization > 85 }:
    Similar to the previous option, “utilization” may not be the correct field name in the logs. Using this pattern could result in failing to match the desired logs.
  • { $.cpu_utilization > 85 }:
    This is the correct pattern. The field “cpu_utilization” is common in CloudWatch logs for tracking CPU metrics. It ensures you match the logs where CPU usage exceeds 85%.
Question 2
You need to create a CloudWatch dashboard to display the following metrics for your EC2 instances: CPU utilization, network throughput, and disk read/write operations.
What is the most efficient way to display these metrics in a CloudWatch dashboard?
  • Create a composite widget that combines all three metrics.

  • Create separate widgets for each metric type.

  • Use a custom CloudWatch dashboard with all metrics in one widget.

  • Combine CPU utilization and network throughput into one widget.

Show answer and explanation

Correct answer: Create separate widgets for each metric type.

Why "Create separate widgets for each metric type"?
In CloudWatch, it’s best to create separate widgets for each metric type to keep the dashboard clear and easily readable. A widget can only display a single metric or a small group of related metrics, so it's more efficient and practical to break them out into separate widgets for CPU utilization, network throughput, and disk read/write operations. This ensures that you get a precise and organized view of each metric.

Incorrect Options:

  • Create a composite widget that combines all three metrics:
    CloudWatch doesn’t support combining metrics of different types (e.g., CPU utilization and network throughput) into one composite widget without creating custom composite metrics. This is not an efficient method for displaying EC2 metrics.
  • Use a custom CloudWatch dashboard with all metrics in one widget:
    This would create a confusing dashboard and is inefficient because a single widget can't display all three different types of metrics in a meaningful way. It would result in a cluttered and unclear display.
  • Combine CPU utilization and network throughput into one widget:
    While CPU utilization and network throughput are related, they represent different types of data. Combining them into a single widget would reduce clarity and hinder effective monitoring. Each metric should ideally be displayed in its own widget for better clarity.
Question 3
You’ve received an alert from CloudWatch that your EC2 instance CPU utilization has exceeded 90% for the past 10 minutes.
Based on the notification, what would be the most appropriate first step to take in order to remediate the issue?
  • Scale up the EC2 instance by adding more CPU capacity.

  • Review the CloudWatch logs to determine which processes are using CPU.

  • Reboot the EC2 instance to resolve potential resource issues.

  • Set up an Auto Scaling policy to automatically increase capacity.

Show answer and explanation

Correct answer: Review the CloudWatch logs to determine which processes are using CPU.

Why "Review the CloudWatch logs to determine which processes are using CPU"?
The most appropriate first step when dealing with high CPU utilization is to investigate what processes or applications are consuming the CPU resources. This can be achieved by reviewing the CloudWatch logs, or by directly connecting to the EC2 instance to identify the culprit. Once the issue is identified, a more targeted solution can be applied.

Incorrect Options:

  • Scale up the EC2 instance by adding more CPU capacity:
    Scaling up the instance might temporarily resolve the issue, but it does not address the root cause. Without identifying the process or application causing the high CPU usage, this could lead to unnecessary resource consumption and higher costs without solving the underlying issue.
  • Reboot the EC2 instance to resolve potential resource issues:
    While a reboot might clear temporary issues, it is not a permanent solution. It does not address the cause of the high CPU usage, and the issue may recur if the underlying problem is not resolved.
  • Set up an Auto Scaling policy to automatically increase capacity:
    Auto Scaling is helpful for adjusting capacity based on load, but it is better suited for handling expected changes in demand. In this case, the problem seems to be due to high CPU usage, which may not be solved by scaling alone. Identifying and fixing the issue before scaling is necessary.
Question 4
A customer is running a web application that experiences varying traffic loads, and requires compute resources that scale automatically to handle spikes in traffic without over-provisioning.
Which of the following compute options is best suited for this use case based on performance metrics?
  • EC2 Auto Scaling with Spot Instances

  • AWS Lambda with an Application Load Balancer

  • EC2 with Reserved Instances and Elastic Load Balancing

  • EC2 Auto Scaling with On-Demand Instances

Show answer and explanation

Correct answer: EC2 Auto Scaling with On-Demand Instances

Why "EC2 Auto Scaling with On-Demand Instances"? EC2 Auto Scaling with On-Demand Instances provides the best flexibility for handling varying traffic loads. On-Demand instances allow you to scale up or down based on demand, and Auto Scaling automatically adjusts the number of instances to meet performance requirements. This makes it ideal for dynamic workloads that require quick scaling without over-provisioning.

Incorrect Options:

  • EC2 Auto Scaling with Spot Instances
    Spot Instances are cheaper, but they can be interrupted with little notice, making them unsuitable for workloads that require consistent availability, especially during traffic spikes.
  • AWS Lambda with an Application Load Balancer
    While Lambda scales automatically based on events, it is more suited for event-driven architectures and not for long-running or stateful web applications that need consistent compute performance.
  • EC2 with Reserved Instances and Elastic Load Balancing
    Reserved Instances are cost-effective for long-term, steady-state workloads but do not provide the flexibility needed for dynamic scaling. Elastic Load Balancing would handle traffic distribution, but this setup lacks the automatic scaling needed for varying traffic loads.

Reliability and Business Continuity

Question 5
You are responsible for implementing scalability and elasticity for an application hosted on AWS. The application is experiencing varying levels of traffic, and you need to create and maintain an AWS Auto Scaling plan that ensures performance while optimizing cost.
Which of the following is the most effective solution for this requirement?
  • Create an Auto Scaling group with fixed instance sizes

  • Configure Auto Scaling policies based on dynamic CPU utilization

  • Set up an Auto Scaling group with scheduled scaling actions

  • Use a combination of CloudWatch Alarms and dynamic scaling policies

Show answer and explanation

Correct answer: Use a combination of CloudWatch Alarms and dynamic scaling policies

Why "Use a combination of CloudWatch Alarms and dynamic scaling policies"? CloudWatch Alarms enable Auto Scaling to respond dynamically to changes in traffic, allowing you to scale based on specific metrics like CPU utilization, ensuring both performance and cost efficiency.

Incorrect Options:

  • Create an Auto Scaling group with fixed instance sizes
    This does not provide elasticity. Fixed instance sizes are inflexible and do not scale based on demand, leading to inefficiency in handling varying workloads.
  • Configure Auto Scaling policies based on dynamic CPU utilization
    This could be a good starting point, but it lacks the flexibility and precision that CloudWatch Alarms combined with dynamic scaling policies offer, missing finer control over scaling behavior.
  • Set up an Auto Scaling group with scheduled scaling actions
    While this works for predictable traffic patterns, it doesn’t provide the necessary flexibility for handling unpredictable or dynamic traffic, which is the core advantage of Auto Scaling with dynamic policies.
Question 6
You are tasked with improving the scalability and performance of a high-traffic web application using Amazon RDS and Amazon Aurora. The application needs to handle spikes in traffic and optimize database performance. You also want to implement a loosely coupled architecture for flexibility.
Which configuration will best meet the requirements for efficient scalability, low latency, and minimal database load?
  • Implement horizontal scaling using Aurora read replicas and ElastiCache

  • Use RDS Auto Scaling for EC2 instances and Aurora Multi-AZ

  • Set up vertical scaling for RDS instances with ElastiCache

  • Use Amazon Aurora with RDS read replicas and SQS for decoupling

Show answer and explanation

Correct answer: Implement horizontal scaling using Aurora read replicas and ElastiCache

Why "Implement horizontal scaling using Aurora read replicas and ElastiCache"? Aurora read replicas provide horizontal scalability for read-heavy workloads, while ElastiCache reduces database load by caching frequently accessed data, ensuring high performance and low latency, especially during traffic spikes.

Incorrect Options:

  • Use RDS Auto Scaling for EC2 instances and Aurora Multi-AZ
    RDS Auto Scaling applies to EC2 instances, but it doesn't scale database reads as effectively as Aurora read replicas. Aurora Multi-AZ ensures high availability but does not improve read performance directly.
  • Set up vertical scaling for RDS instances with ElastiCache
    Vertical scaling (increasing instance size) doesn’t scale out to handle traffic spikes as efficiently as horizontal scaling. It may also lead to higher costs. ElastiCache helps with caching but doesn’t address the issue of read scalability.
  • Use Amazon Aurora with RDS read replicas and SQS for decoupling
    While Aurora read replicas scale reads, SQS alone does not directly impact database load or improve performance. It’s a decoupling solution, but not the best for addressing high traffic on the database layer directly.
Question 7
You are designing a fault-tolerant web application on AWS. The application needs to be highly available, and you want to ensure that it can quickly recover from failures, including EC2 instance termination and changes in IP addresses.
Which of the following configurations best addresses these requirements for fault tolerance?
  • Use Elastic IP addresses and Amazon EFS for file sharing

  • Deploy EC2 instances across multiple AZs with Elastic IP addresses

  • Use Elastic IP addresses with EC2 instances in a single AZ

  • Implement Amazon EFS with Auto Scaling for EC2 instances

Show answer and explanation

Correct answer: Deploy EC2 instances across multiple AZs with Elastic IP addresses

Why "Deploy EC2 instances across multiple AZs with Elastic IP addresses"? Using Elastic IP addresses (EIP) in a multi-AZ deployment allows for fault tolerance by enabling quick reassignment of EIPs in case of an EC2 instance failure. This setup ensures that the application remains accessible without downtime.

Incorrect Options:

  • Use Elastic IP addresses and Amazon EFS for file sharing
    While EFS provides shared file storage across AZs, EIPs alone don’t handle fault tolerance for the EC2 instances. The instances still need to be distributed across multiple AZs for full redundancy and failover capability.
  • Use Elastic IP addresses with EC2 instances in a single AZ
    While EIPs help maintain a fixed IP, a single AZ deployment still presents a single point of failure. If that AZ experiences an outage, the application will become unavailable, regardless of the EIP.
  • Implement Amazon EFS with Auto Scaling for EC2 instances
    While EFS is highly available and supports shared storage, Auto Scaling does not address IP address failover or ensure the application remains accessible in the event of instance termination. Elastic IP addresses would be required for seamless recovery.
Question 8
You are tasked with recovering an Amazon RDS database after an accidental data corruption. The application has a strict recovery point objective (RPO) of 15 minutes.
Which of the following methods will restore the database to the most recent consistent state with minimal downtime?
  • Promote an RDS read replica to become the primary database

  • Perform a point-in-time restore to the last 15 minutes

  • Restore from the latest automated snapshot and apply changes

  • Use AWS Backup to restore the database to a specific timestamp

Show answer and explanation

Correct answer: Perform a point-in-time restore to the last 15 minutes

Why "Perform a point-in-time restore to the last 15 minutes"? Point-in-time restore allows you to specify the exact time of recovery, ensuring minimal data loss (within 15 minutes). This method is highly efficient for recovering a database after corruption, as it can roll back the database to the specific point of failure.

Incorrect Options:

  • Promote an RDS read replica to become the primary database
    Promoting a read replica helps with failover but may not provide the exact data consistency required for a specific 15-minute RPO. There could be some lag in the replica, resulting in data loss.
  • Restore from the latest automated snapshot and apply changes
    Automated snapshots don’t allow for precise recovery within a 15-minute window. If the snapshot is older than the failure point, it will result in data loss beyond the required RPO.
  • Use AWS Backup to restore the database to a specific timestamp
    AWS Backup restores full backups but lacks the fine-grained point-in-time control offered by RDS automated backups. This method might not meet the 15-minute RPO or recovery needs.

Deployment, Provisioning, and Automation

Question 9
You are troubleshooting a CloudFormation stack that fails during creation. The stack includes an EC2 instance, an S3 bucket, and an IAM role. Upon running describe-stack-events, you notice that the error mentions "resource creation failed" for the IAM role, but the EC2 instance and S3 bucket are created successfully.
What is the most likely cause of the issue?
  • The IAM role name conflicts with an existing role in the account

  • The IAM policy attached to the role is missing permissions

  • The EC2 instance is trying to use a role that doesn't exist

  • The IAM role does not have the correct trust relationship

Show answer and explanation

Correct answer: The IAM role does not have the correct trust relationship

Why "The IAM role does not have the correct trust relationship"? When creating an IAM role for an EC2 instance, the role must have the correct trust relationship policy that allows EC2 to assume the role. If this trust relationship is not set correctly, CloudFormation will fail to create the role, even if the S3 bucket and EC2 instance are created successfully.

Incorrect Options:

  • The IAM role name conflicts with an existing role in the account
    While IAM role name conflicts can cause issues, CloudFormation would typically report this error specifically. The issue here is related to the trust relationship, not the name conflict.
  • The IAM policy attached to the role is missing permissions
    Missing permissions in the IAM policy would not prevent the creation of the IAM role. It would cause issues when trying to access resources, but it wouldn’t directly impact the role’s creation in CloudFormation.
  • The EC2 instance is trying to use a role that doesn't exist
    If the IAM role doesn’t exist, CloudFormation would fail to create the EC2 instance, not the IAM role. The problem here is with the role’s trust policy, not the non-existence of the role.
Question 10
You are managing multiple AWS accounts and need to automate the provisioning of resources like EC2 instances, RDS databases, and VPCs across different regions. The solution should provide centralized management, automation, and avoid the need to manually configure each account and region.
Which of the following solutions is the most efficient and scalable for provisioning resources across multiple AWS accounts and regions?
  • Use AWS Resource Access Manager (RAM) to share VPCs across accounts

  • Use IAM cross-account roles to grant permissions and deploy resources

  • Set up AWS Systems Manager State Manager to apply configurations across accounts

  • Use CloudFormation StackSets to deploy resources across accounts and regions

Show answer and explanation

Correct answer: Use IAM cross-account roles to grant permissions and deploy resources

Why "Use IAM cross-account roles to grant permissions and deploy resources"? IAM cross-account roles enable secure access between AWS accounts, allowing you to manage resources across multiple accounts and regions. By granting the necessary permissions, you can use CloudFormation or other tools to automate deployments in different accounts and regions.

Incorrect Options:

  • Use AWS Resource Access Manager (RAM) to share VPCs across accounts
    AWS RAM is designed to share specific resources like VPC subnets, but it doesn't handle the provisioning of resources. It is used for resource sharing, not for creating or managing resources across regions or accounts.
  • Set up AWS Systems Manager State Manager to apply configurations across accounts
    Systems Manager State Manager is for maintaining and applying configurations across instances. While useful for compliance and configuration management, it doesn't provision new resources like EC2 or RDS instances.
  • Use CloudFormation StackSets to deploy resources across accounts and regions
    While StackSets is a valid solution for managing resources across accounts and regions, the question specifically asks for the best option for provisioning resources and automating deployments. IAM cross-account roles are the underlying mechanism that allows these tools to work across multiple accounts and regions.
Question 11
You need to automate the patching process for a fleet of EC2 instances. The patches must be applied in a controlled manner, and the process should be repeatable and auditable.
Which of the following AWS services provides the most efficient solution for automating patch management?
  • Use AWS Lambda to trigger EC2 instance patching based on events

  • Use AWS Config to monitor and enforce patching compliance

  • Use AWS Systems Manager Patch Manager to automate patching

  • Use Amazon EventBridge to schedule EC2 instance patching tasks

Show answer and explanation

Correct answer: Use AWS Systems Manager Patch Manager to automate patching

Why "Use AWS Systems Manager Patch Manager to automate patching"? AWS Systems Manager Patch Manager is specifically designed for automating patch management for EC2 instances and on-premises servers. It allows you to define patch baselines, schedule patching, and automate compliance reporting, making it the most efficient solution for this use case.

Incorrect Options:

  • Use AWS Lambda to trigger EC2 instance patching based on events
    While AWS Lambda can trigger actions based on events, it is not specifically designed for patch management. It requires custom coding and does not provide the same level of automation or compliance features as Patch Manager.
  • Use AWS Config to monitor and enforce patching compliance
    AWS Config helps monitor compliance with configurations but is not a patch management tool. It can alert you if instances are out of compliance, but it does not apply patches.
  • Use Amazon EventBridge to schedule EC2 instance patching tasks
    EventBridge can trigger actions based on events, but it does not handle patch management itself. It is useful for scheduling but lacks the patching automation and compliance features of Systems Manager Patch Manager.
Question 12
You need to automate the patch management process for EC2 instances running in a production environment. Patches must be applied regularly with minimal downtime, and you must ensure that the process is repeatable, auditable, and can be controlled across multiple instances.
Which of the following is the best AWS service to implement this automation?
  • Use AWS CloudFormation to deploy patched EC2 instances

  • Use AWS Lambda to schedule and apply patches to EC2 instances

  • Use AWS Systems Manager Patch Manager to automate patching

  • Use AWS EC2 Image Builder to automate patching and deployment

Show answer and explanation

Correct answer: Use AWS Systems Manager Patch Manager to automate patching

Why "Use AWS Systems Manager Patch Manager to automate patching"? AWS Systems Manager Patch Manager is specifically designed for automating patch management. It allows you to schedule, apply, and monitor patches across EC2 instances in an automated, repeatable, and controlled manner. It also integrates with other Systems Manager features for compliance reporting and auditing.

Incorrect Options:

  • Use AWS CloudFormation to deploy patched EC2 instances
    CloudFormation is used for provisioning infrastructure, not for applying patches. While you could automate the creation of patched instances, it’s not designed for managing ongoing patching in an automated way.
  • Use AWS Lambda to schedule and apply patches to EC2 instances
    Lambda can automate tasks, but patching is better handled by a service specifically designed for it, like Patch Manager. Lambda would require custom code and wouldn’t offer the same patch compliance features or reporting as Patch Manager.
  • Use AWS EC2 Image Builder to automate patching and deployment
    EC2 Image Builder automates the creation of EC2 images, but it is not designed for regular patch management. It focuses on building AMIs rather than applying patches in an automated manner to running instances.

Security and Compliance

Question 13
A user is unable to assume an IAM role with the necessary permissions to access resources in another AWS account, even though the role has been properly configured with the appropriate trust relationships.
Which AWS service can you use to troubleshoot the access issue and verify if the user is allowed to assume the role?
  • Use IAM Access Analyzer to check for permissions conflicts

  • Use AWS CloudTrail to check for denied `sts:AssumeRole` actions

  • Use IAM Policy Simulator to test role assumption permissions

  • Use AWS Config to review recent IAM role configuration changes

Show answer and explanation

Correct answer: Use AWS CloudTrail to check for denied `sts:AssumeRole` actions

Why "Use AWS CloudTrail to check for denied sts:AssumeRole actions"? CloudTrail logs detailed information on AWS service calls, including sts:AssumeRole. Reviewing CloudTrail logs will show if the assume role action was denied, and provide specific details regarding the denial, such as missing permissions or trust policy issues.

Incorrect Options:

  • Use IAM Access Analyzer to check for permissions conflicts
    IAM Access Analyzer is useful for identifying unintended resource access, but it does not specifically handle issues with assuming roles. It can help with resource-level permissions but doesn’t directly show why sts:AssumeRole fails.
  • Use IAM Policy Simulator to test role assumption permissions
    The IAM Policy Simulator tests user permissions but does not test cross-account role assumption directly. The simulator won’t evaluate trust relationships or assume role policies for cross-account access, which is key in this scenario.
  • Use AWS Config to review recent IAM role configuration changes
    AWS Config tracks configuration changes, but it doesn't directly assist in troubleshooting real-time access issues like assuming roles. It can show historical changes, but CloudTrail is more suitable for identifying why a specific action (like role assumption) failed.
Question 14
You are troubleshooting an issue where a user cannot perform actions despite having the correct IAM policy attached. The issue could be related to either an active Service Control Policy (SCP) or a permissions boundary.
What is the most effective method to troubleshoot and validate the cause of the access denial?
  • Use AWS Organizations to inspect the active SCPs affecting the user

  • Use the IAM Policy Simulator to simulate the user's permissions

  • Check the CloudTrail logs for denied actions and events

  • Review the IAM role’s permissions boundary to check for restrictions

Show answer and explanation

Correct answer: Use AWS Organizations to inspect the active SCPs affecting the user

Why "Use AWS Organizations to inspect the active SCPs affecting the user"? Service Control Policies (SCPs) are applied at the organizational level and can restrict permissions for accounts or users. To validate whether an SCP is causing the issue, you need to inspect the active SCPs in AWS Organizations, which is the only service that shows all the applied policies in your organization.

Incorrect Options:

  • Use the IAM Policy Simulator to simulate the user's permissions
    While the IAM Policy Simulator is excellent for testing IAM policies, it doesn’t evaluate SCPs, which are applied at the organizational level. SCPs can restrict access regardless of what IAM permissions are granted.
  • Check the CloudTrail logs for denied actions and events
    CloudTrail logs can help identify which actions are being denied but won't provide information about the specific restrictions imposed by SCPs or permissions boundaries. It's useful for identifying what was denied but not why it was denied due to organizational policies.
  • Review the IAM role’s permissions boundary to check for restrictions
    Permissions boundaries define the maximum permissions a role can have, but this won’t explain the issue if the restriction is coming from an SCP. SCPs apply broader control at the organizational level and can override IAM policies or role permissions.
Question 15
You are implementing a data classification scheme in your AWS environment to ensure sensitive data is handled according to compliance requirements. You need to automatically apply security controls based on data classification.
Which AWS service would you use to automatically tag resources and ensure compliance with your classification scheme?
  • Use AWS Config to enforce resource tagging and compliance

  • Use AWS CloudTrail to monitor changes to sensitive data

  • Use AWS Systems Manager to automatically apply security configurations

  • Use AWS Resource Access Manager to share tagged resources

Show answer and explanation

Correct answer: Use AWS Config to enforce resource tagging and compliance

Why "Use AWS Config to enforce resource tagging and compliance"? AWS Config allows you to define rules for tagging and ensures resources are tagged according to your data classification scheme. It can also enforce compliance by evaluating resource configurations against these rules, making it the best service for automatic tagging and compliance enforcement.

Incorrect Options:

  • Use AWS CloudTrail to monitor changes to sensitive data
    CloudTrail tracks API calls and provides audit logs, but it does not handle data classification or resource tagging. It helps monitor access but doesn't automate the enforcement of classification policies.
  • Use AWS Systems Manager to automatically apply security configurations
    Systems Manager is great for managing and automating administrative tasks, but it does not handle resource classification or tagging automatically. It is focused on configuration management, not classification enforcement.
  • Use AWS Resource Access Manager to share tagged resources
    RAM allows resource sharing across accounts but does not help with tagging or enforcing data classification. It is used to share resources like VPCs, but not to manage or classify data in those resources.
Question 16
You need to securely store and manage secrets such as API keys and database credentials in AWS. The solution must integrate with your applications to allow programmatic access and support automated rotation.
Which AWS service provides the most efficient solution for securely managing these secrets?
  • Use Systems Manager Parameter Store with encryption enabled

  • Use AWS KMS to generate and store encryption keys

  • Use AWS Secrets Manager for secret storage and rotation

  • Use IAM to manage user access to encrypted secrets

Show answer and explanation

Correct answer: Use AWS Secrets Manager for secret storage and rotation

Why "Use AWS Secrets Manager for secret storage and rotation"? AWS Secrets Manager is specifically designed for managing sensitive information, such as API keys and database credentials. It supports automatic rotation, encryption at rest, and integrates easily with applications to provide secure programmatic access.

Incorrect Options:

  • Use Systems Manager Parameter Store with encryption enabled
    While Parameter Store with encryption provides secure storage for sensitive data, it lacks built-in features like automatic secret rotation, which makes Secrets Manager a more complete solution for securely managing secrets.
  • Use AWS KMS to generate and store encryption keys
    KMS is a key management service, not a solution for storing or managing secrets like API keys or passwords. It helps manage encryption keys but does not store secrets themselves.
  • Use IAM to manage user access to encrypted secrets
    IAM controls access to AWS resources, but it does not store secrets or provide key management. IAM can enforce permissions but doesn’t offer storage or management capabilities for sensitive data.

Networking and Content Delivery

Question 17
You are configuring a VPC with both public and private subnets. You need to control traffic at the subnet level, ensuring that traffic entering or leaving the VPC follows specific rules.
Which of the following actions should you take to enforce these rules?
  • Set security groups on instances in both public and private subnets.

  • Use route tables to control inbound and outbound traffic for the subnets.

  • Apply a NAT gateway to control traffic flow for private subnets.

  • Configure network ACLs for both public and private subnets.

Show answer and explanation

Correct answer: Configure network ACLs for both public and private subnets.

Why "Configure network ACLs for both public and private subnets"? Network ACLs provide subnet-level security and control traffic entering and leaving the VPC. They act as a stateless firewall, making them ideal for controlling traffic across the entire subnet, regardless of the instance's security group.

Incorrect Options:

  • Set security groups on instances in both public and private subnets
    Security groups are applied to individual instances, not subnets. They control traffic at the instance level, but network ACLs are required to control traffic at the subnet level.
  • Use route tables to control inbound and outbound traffic for the subnets
    Route tables determine how traffic is directed within a VPC but do not filter or control the content of the traffic. Network ACLs and security groups are responsible for traffic filtering.
  • Apply a NAT gateway to control traffic flow for private subnets
    A NAT gateway allows instances in private subnets to access the internet, but it does not control traffic in terms of security. Network ACLs provide the necessary traffic filtering and security at the subnet level.
Question 18
You are configuring a VPC to host both web servers and database servers. The web servers need to be publicly accessible from the internet, while the database servers should remain isolated and not accessible from the internet.
Which configuration should you use for the subnets to meet these requirements?
  • Create public subnets for both web servers and database servers.

  • Create a public subnet for the web servers and a private subnet for the database servers.

  • Create a private subnet for both web servers and database servers.

  • Create public subnets for the web servers and private subnets for the database servers.

Show answer and explanation

Correct answer: Create a public subnet for the web servers and a private subnet for the database servers.

Why "Create a public subnet for the web servers and a private subnet for the database servers"? Public subnets allow instances to be directly accessible from the internet via an internet gateway. In contrast, private subnets do not have direct internet access and are ideal for hosting sensitive resources like database servers.

Incorrect Options:

  • Create public subnets for both web servers and database servers
    This configuration would expose the database servers to the internet, which violates security best practices by allowing unnecessary access to sensitive resources.
  • Create a private subnet for both web servers and database servers
    While this configuration secures the database, the web servers need to be accessible from the internet, so they should be placed in a public subnet.
  • Create public subnets for the web servers and private subnets for the database servers
    This is essentially the correct approach, but the phrasing might imply a misunderstanding in the context of where the web servers should reside. It’s crucial to remember that public access should only be granted to web servers, while database servers should remain private for security.
Question 19
You need to configure DNS resolution between an AWS VPC and a private DNS server located on your corporate network. The VPC must be able to resolve domain names from the on-premises network without using public DNS.
What is the best approach to accomplish this?
  • Set up a Route 53 Resolver outbound endpoint for DNS queries

  • Configure a Route 53 private hosted zone and resolver rules

  • Enable DNS forwarding from VPC to the corporate DNS

  • Use a VPC peering connection with DNS resolution enabled

Show answer and explanation

Correct answer: Configure a Route 53 private hosted zone and resolver rules

Why "Configure a Route 53 private hosted zone and resolver rules"? A private hosted zone in Route 53 allows DNS management within the VPC. By creating resolver rules, you can route DNS queries to your on-premises DNS server, enabling DNS resolution for both internal and external resources.

Incorrect Options:

  • Set up a Route 53 Resolver outbound endpoint for DNS queries
    Outbound endpoints are used to forward DNS queries from AWS to external servers. The requirement is to resolve from VPC to on-premises, which requires inbound configuration.
  • Enable DNS forwarding from VPC to the corporate DNS
    DNS forwarding is part of the resolver setup, but simply enabling forwarding without proper rules or endpoints won’t work effectively.
  • Use a VPC peering connection with DNS resolution enabled
    VPC peering allows connectivity between VPCs but doesn’t handle DNS resolution to external (on-premises) DNS servers.
Question 20
You are troubleshooting a hybrid network issue where traffic is not flowing between your on-premises network and AWS over a VPN connection. The VPN tunnel is established, but there is no connectivity.
What is the most likely cause of the issue?
  • The VPN tunnel endpoint is incorrectly configured in the on-premises router

  • The VPC security group is blocking traffic from the on-premises network

  • There is a missing route in the VPC route table for on-premises traffic

  • The AWS VPN gateway is not associated with the correct virtual private gateway

Show answer and explanation

Correct answer: There is a missing route in the VPC route table for on-premises traffic

Why "There is a missing route in the VPC route table for on-premises traffic"? For hybrid connectivity, the VPC route table must contain routes directing traffic to and from the on-premises network via the VPN tunnel. If these routes are missing or misconfigured, traffic will not flow even if the VPN connection is up.

Incorrect Options:

  • The VPN tunnel endpoint is incorrectly configured in the on-premises router
    If the VPN tunnel is established, the endpoint configuration is most likely correct. The issue here is more likely to be a routing problem in the VPC rather than the on-premises router.
  • The VPC security group is blocking traffic from the on-premises network
    While security group rules are important for controlling traffic, they are not typically the cause of hybrid network connectivity issues, especially when the VPN is established.
  • The AWS VPN gateway is not associated with the correct virtual private gateway
    If the VPN tunnel is up, it is likely associated with the correct gateway. A misconfiguration would have likely prevented the tunnel from being established in the first place.

Ready for the full SOA-C03 practice exam?

Practice the full 200+ question bank