Exam objective 1.1 of the SOA-C02 asks you to configure and manage Amazon VPC, subnets, security groups, and Route 53. Before you touch a single service in the AWS console, you need to understand how these pieces fit together because every single AWS architecture you will ever build sits on top of this networking foundation. If you get the network layer wrong, your applications will be invisible to users or wide open to attackers — and the exam will punish you for both.
Jump to a section
Have you ever tried to get a package delivered to a giant apartment block and it ended up at the wrong building?
Think about a large apartment complex. The entire building has one street address — that is your VPC (Virtual Private Cloud), your private, isolated network in the cloud. Within that building, there are hundreds of individual flats, each with its own number. Those flat numbers are like subnets — smaller sections of your network that group resources together. Some flats are on the ground floor (public-facing, like a web server) and some are on the top floor (internal, like a database server).
Now, how does the postal service know which building is which? They use the street name and postcode — that is your Route 53 DNS (Domain Name System). When you type "www.myapp.com," Route 53 translates that human-friendly name into a numeric IP address, just like a postcode tells the postal van which street to drive to. Once the mail arrives at the correct building (VPC), it still needs to get to the right flat. Security groups are like the front-door lock on each individual flat — they control exactly who can knock. Network ACLs (Access Control Lists) are like the security guard at the main building entrance — they decide which visitors are even allowed into the lobby. Together, they keep the pizza delivery guy from wandering into the boiler room.
So, when you build a VPC and configure Route 53, you are essentially designing the entire postal network for your cloud services — ensuring every letter ends up precisely where it should, and no uninvited guests sneak in through the mail slot.
Let us start with the big picture. A VPC (Virtual Private Cloud) is a logically isolated section of the AWS cloud where you launch your resources. Think of it as your own private data centre inside AWS, but without the physical servers, cables, and air conditioning bills. You define the VPC's IP address range using CIDR notation (Classless Inter-Domain Routing), which is just a way of saying "my network uses these specific IP addresses." For example, 10.0.0.0/16 means your VPC can use any IP address from 10.0.0.0 to 10.0.255.255 — that is over 65,000 addresses. You must choose this range carefully because you cannot change it later without rebuilding the VPC.
Once you have a VPC, you need to divide it into subnets. A subnet is a smaller chunk of the VPC's IP range. Subnets live in a single Availability Zone (AZ) — that is a separate physical data centre in an AWS region. By putting subnets in different AZs, you protect your application from an entire data centre going offline. Each subnet can be either public or private. A public subnet has a route to the internet via an Internet Gateway (IGW) — a virtual router that connects your VPC to the internet. A private subnet does not have a direct internet route, so resources in that subnet (like databases) cannot be reached from the internet, which is a good security practice.
To get traffic into or out of a public subnet, you attach an Internet Gateway to your VPC. That is a one-way glass: you must also update the subnet's route table — a set of rules that tells traffic where to go. For a public subnet, the route table says "all traffic destined for 0.0.0.0/0 (the entire internet) goes to the Internet Gateway." For a private subnet, you might instead use a NAT Gateway (Network Address Translation) or a NAT Instance to allow instances in that subnet to initiate outbound internet traffic (to download patches, for example) while blocking inbound internet traffic from the outside world.
Now, how do you control who can talk to what? Two main tools: Security Groups and Network ACLs (NACLs). A Security Group acts as a virtual firewall for an individual resource, like an EC2 instance (a virtual server). It is stateful, meaning if you allow inbound traffic from a certain port, the response traffic is automatically allowed back out, regardless of outbound rules. You define rules like "allow HTTP (port 80) from 0.0.0.0/0" — meaning anyone on the internet can send web traffic to that instance. You can also reference other security groups: for instance, "allow MySQL traffic (port 3306) from the security group attached to my web servers only." That is powerful because it ties access to logical groups, not IP addresses.
A Network ACL, on the other hand, is stateless and operates at the subnet level. It is a numbered list of rules that are evaluated in order, from lowest number to highest. For each subnet, you have one NACL that applies to all traffic entering or leaving that subnet. Unlike security groups, NACLs require explicit rules for both inbound and outbound traffic. If you allow inbound web traffic but forget to allow outbound response traffic, the connection will fail. Because they are stateless, NACLs are a coarser control — they are good for blocking entire ranges of IP addresses (like a known attacker's IP range) before traffic even reaches your instances.
Finally, we need to connect the human-friendly names to these IP addresses. That is where Route 53 comes in. Route 53 is AWS's DNS (Domain Name System) service. DNS is the phonebook of the internet. When a user types "www.example.com" into their browser, their computer asks a DNS resolver (often their ISP) to find the IP address for that name. Route 53 can act as that authoritative source. You create a hosted zone for your domain, then add records such as an A record that maps a name to an IPv4 address, or a CNAME record that maps a name to another name. The exam tests particularly the following record types:
A record: maps a domain name to an IPv4 address (e.g., 192.0.2.1)
AAAA record: maps a domain name to an IPv6 address
CNAME record: maps a domain name to another domain name (e.g., www.example.com to example.com)
Alias record: a Route 53-specific record that maps a domain name to an AWS resource (like an ELB load balancer or an S3 bucket) and is free of charge, unlike CNAME which cannot be used for the root domain (e.g., example.com)
NS record: specifies the name servers for your domain
SOA record: Start of Authority, provides administrative information about the domain
Route 53 also supports routing policies that control how traffic is directed. Simple routing sends traffic to a single resource (for example, one web server). Weighted routing lets you send a percentage of traffic to different endpoints (useful for A/B testing or blue/green deployments). Latency-based routing directs users to the AWS region that gives them the lowest latency. Failover routing lets you set up an active-passive configuration: if the primary health check fails, Route 53 automatically sends traffic to a secondary resource. Geolocation routing routes traffic based on the user's geographic location. These policies are tested heavily on the exam, especially the differences between weighted, latency, and failover.
To use Route 53 for a domain you own, you must first register the domain (or transfer it from another registrar) and then delegate authority by pointing the domain's registrar NS records to the Route 53 name servers listed in your hosted zone. Once that is done, Route 53 becomes the authoritative DNS for your domain. You can also configure health checks that monitor the health of your endpoints (like a web server). If an endpoint becomes unhealthy, Route 53 can route traffic away from it (used with failover routing or multi-value answer routing).
In summary, the VPC provides the isolated network, subnets segment it into public and private zones, security groups and NACLs lock the doors, and Route 53 translates domain names into the IP addresses of resources inside those VPCs. On the exam, you must know how these pieces interact, what each firewall layer does, and which Route 53 routing policy to choose for a given scenario.
1. Plan your VPC CIDR and create the VPC
Decide on a CIDR block (e.g., 10.0.0.0/16) that does not overlap with any existing network (on-premises or other VPCs). Create the VPC in the AWS console. This defines the entire IP address space for your network.
2. Create subnets across multiple Availability Zones
Divide your VPC CIDR into smaller subnets (e.g., 10.0.1.0/24 for public web servers, 10.0.2.0/24 for private databases). Create at least two public and two private subnets across different AZs for high availability.
3. Attach an Internet Gateway and configure route tables
Create an Internet Gateway and attach it to the VPC. Create a public route table that directs 0.0.0.0/0 to the IGW, and associate it with your public subnets. Create a private route table with no default route to the internet, and associate it with private subnets.
4. Set up security groups and Network ACLs
Create a security group for web servers that allows HTTP/HTTPS from anywhere and SSH only from your office IP. Create a separate security group for databases that allows relevant ports (e.g., 3306) only from the web security group. Then set up a NACL for each subnet to deny known bad IP ranges.
5. Create a public hosted zone in Route 53 and add records
Register your domain (or delegate from an existing registrar). Create a public hosted zone for your domain in Route 53. Add an Alias record for the root domain and a CNAME or Alias record for www, both pointing to your ELB. Optionally configure a routing policy (e.g., weighted) and health checks.
6. Test connectivity and monitor logs
Launch test EC2 instances in each subnet and verify that public instances can be reached from the internet, private instances cannot, but private instances can initiate outbound connections via the NAT Gateway. Use VPC Flow Logs, Reachability Analyzer, and Route 53 health check logs to confirm everything works.
An IT professional at a mid-sized e-commerce company is tasked with migrating their on-premises web application to AWS. They start by designing a VPC with an IP range of 10.1.0.0/16. Inside this VPC, they create two public subnets (one in us-east-1a, one in us-east-1b) for the web servers, and two private subnets (same AZs) for the database servers. Each subnet gets its own route table. The public subnets have a route to an Internet Gateway, while the private subnets have no direct internet route — they use a NAT Gateway placed in a public subnet to download security updates.
Now, the professional must secure traffic. They create a security group for the web servers (call it "Web-SG") that allows inbound HTTP (port 80) and HTTPS (port 443) from anywhere (0.0.0.0/0), and SSH (port 22) only from the company's corporate IP range. They create a separate security group for databases ("DB-SG") that allows inbound MySQL (port 3306) only from the Web-SG security group — not from the internet. They also set up a Network ACL at the subnet level that explicitly denies inbound traffic from a known malicious IP range (like a competitor's bot). The NACL rules are numbered: rule 100 allows HTTP/HTTPS from anywhere, rule 200 allows ephemeral ports (1024-65535) for return traffic, rule 300 denies the malicious IP range, and an asterisk rule (default deny) catches everything else.
For DNS, the company owns "myecomshop.com." The professional creates a public hosted zone in Route 53 for this domain. They add an A record for "www.myecomshop.com" that points to the public IP of an Application Load Balancer (ALB) sitting in front of the web servers. To handle direct traffic to the bare domain "myecomshop.com" (which cannot use a CNAME), they create an Alias record that also points to the same ALB. They set up a weighted routing policy to send 10% of traffic to a new blue version of the application for testing, and 90% to the stable green version. They configure health checks on both endpoints; if the primary fails, Route 53 automatically routes all traffic to the other.
Step by step, the professional:
Creates the VPC, subnets, Internet Gateway, and NAT Gateway.
Attaches route tables to each subnet.
Configures security groups with tight rules.
Sets up Network ACLs with explicit deny rules for known bad actors.
Registers the domain and creates the hosted zone.
Creates Alias and weighted records in Route 53.
Enables health checks and associates them with the routing policy.
Tests that traffic flows correctly by typing the domain name in a browser and checking that it reaches the ALB.
If any step fails (such as a misconfigured route table), the website goes down. The professional troubleshoots using VPC Flow Logs (which record network traffic metadata) and Route 53 health check logs. They also use the AWS console's Reachability Analyzer to verify that a path exists between two resources. This is exactly the kind of end-to-end design you need to be able to step through quickly in the exam.
The SOA-C02 exam loves to test your understanding of the differences between security groups and Network ACLs, and how they interact. Expect at least 5-7 questions on these two firewall layers. The classic trap: a question describes a scenario where an instance cannot reach the internet, and they give you a security group rule that allows outbound traffic, but the instance is in a private subnet without a NAT Gateway. The correct answer is usually "the subnet does not have a route to the internet" or "there is no NAT Gateway in the public subnet." They also love to ask about statefulness: security groups remember connection state, NACLs do not. A typical question: "An EC2 instance in a public subnet can receive SSH traffic (port 22) but cannot send response packets. What is the issue?" The answer: the Network ACL's outbound rule does not allow ephemeral ports (1024-65535) for return traffic.
For Route 53, the exam focuses heavily on routing policies. You need to know when to use each one:
Simple routing: use when you have a single endpoint (e.g., one web server). Simple does not support health checks.
Weighted routing: use when you want to send a percentage of traffic to different endpoints (e.g., A/B testing).
Latency-based routing: use when you want to route users to the AWS region that gives them the lowest network latency.
Failover routing: use when you have an active-passive pair. Requires a health check on the primary.
Geolocation routing: use when you need to serve different content based on the user's country or continent (e.g., show a version of the site in French for users in France).
Multi-value answer routing: use when you have multiple endpoints and you want Route 53 to return up to 8 healthy records in response to a DNS query. Good for simple load balancing without a load balancer.
Another common exam topic: the difference between an Alias record and a CNAME record. Alias records work for the root domain (e.g., example.com) because they are a Route 53 extension to DNS. CNAME records cannot be used for the root domain per DNS standards. A question like "You need to point example.com to an ELB. Which record type do you use?" The correct answer is Alias record, not CNAME. Also, Alias records are free (no charge for DNS queries to AWS resources), while CNAME queries are billed.
The exam will also test VPC peering and VPN connections. VPC peering connects two VPCs in the same or different accounts or regions so they can communicate as if they were on the same network. You need to ensure the route tables in both VPCs have routes pointing to each other's CIDR blocks via the peering connection. A common trap: they ask about transitive peering. VPC peering is not transitive — if VPC A is peered with VPC B, and VPC B is peered with VPC C, VPC A cannot talk to VPC C through VPC B. You must create a direct peering between A and C.
DNS resolution in VPC is another frequent test area. By default, instances in a VPC receive a private DNS hostname (like ip-10-0-0-5.ec2.internal). You can enable DNS hostnames and DNS resolution for the VPC. If you enable "Enable DNS hostnames," instances get public DNS names if they have a public IP. If you enable "Enable DNS resolution," the VPC's DNS resolver (the Route 53 Resolver) can resolve private DNS queries. The exam will ask: "Why can an instance not resolve a private domain name?" Check whether DNS resolution is enabled on the VPC.
Finally, remember the default VPC. Every account gets a default VPC per region with a /16 CIDR, a default subnet per AZ, a default security group, and an Internet Gateway. The exam sometimes uses the default VPC as a starting point. But you are expected to know that using the default VPC is rarely secure for production. They might ask: "Which security group rule is automatically added to the default security group?" The answer: it allows all inbound traffic from other instances within the same security group (self-referencing rule) and all outbound traffic to anywhere.
A VPC is a logically isolated network in AWS where you control the IP address range, subnets, route tables, and gateways.
Security groups are stateful firewalls at the resource level; Network ACLs are stateless firewalls at the subnet level — you need both for defence in depth.
Route 53 Alias records can point a root domain to an AWS resource (like ELB or S3), whereas CNAME records cannot and are only for subdomains.
VPC peering is non-transitive — each VPC pair requires a direct peering connection and explicit route table entries.
A NAT Gateway enables outbound internet access for private subnets but never allows inbound internet traffic.
The exam favours questions that distinguish between weighted, latency-based, failover, geolocation, and multi-value answer routing policies in Route 53.
These come up on the exam all the time. Here's how to tell them apart.
Security Group
Operates at the instance (resource) level
Stateful — automatically allows return traffic
Evaluated as a whole — all rules are considered until a match is found
Network ACL (NACL)
Operates at the subnet level
Stateless — you must explicitly allow both inbound and outbound traffic
Evaluated in numbered order — first matching rule wins, then stops
CNAME Record
Cannot be used at the root domain (e.g., example.com)
Can map a name to any other name (A, CNAME, etc.)
You pay for each CNAME query
Alias Record
Can be used at the root domain
Can only map to an AWS resource (ELB, S3, CloudFront, etc.)
Queries to AWS resources are free
Internet Gateway (IGW)
Allows both inbound and outbound internet traffic
Required for public subnets
Attached directly to the VPC
NAT Gateway
Allows only outbound internet traffic from private subnets
Placed in a public subnet
Requires an Elastic IP address and is managed by AWS
VPC Peering
Direct private connection between two VPCs
Requires no internet exposure
Non-transitive — no multi-hop routing
VPN Connection
Encrypted connection over the public internet to on-premises
Uses IPsec tunnels
Transitive across multiple VPN connections (via virtual private gateway)
Simple Routing Policy
Routes all traffic to a single endpoint
Cannot be used with health checks
Good for basic, single-resource setups
Weighted Routing Policy
Distributes traffic across multiple endpoints based on percentage weights
Supports health checks
Ideal for A/B testing or blue/green deployments
Public Subnet
Has a default route to the Internet Gateway
Resources can have public IP addresses
Typically used for web servers and load balancers
Private Subnet
Has no direct internet route
Resources have only private IP addresses
Used for databases and backend services that should not be internet-facing
Mistake
Security groups and Network ACLs are the same thing and both are stateful.
Correct
Security groups are stateful (return traffic is automatically allowed), while Network ACLs are stateless (you must explicitly allow return traffic). Security groups operate at the instance level, NACLs at the subnet level.
Many beginners assume that a firewall is a firewall. The exam deliberately tests the distinction by showing scenarios where one works and the other does not.
Mistake
You can use a CNAME record to point the root domain (example.com) to an AWS load balancer.
Correct
DNS standards forbid CNAME records at the root zone (the bare domain). You must use an Alias record (a Route 53-specific feature) to point example.com to an ELB or other AWS resource.
This is a very common mistake because in traditional DNS, you simply cannot alias the root — but many people new to Route 53 try it and wonder why it fails.
Mistake
If two VPCs are peered, you can automatically access resources in the other VPC without any additional configuration.
Correct
VPC peering creates a logical connection, but you must still add routes in each VPC's route table pointing to the other VPC's CIDR block via the peering ID. Also, security groups and NACLs must allow the traffic.
Peering is just a link — it does not automatically route traffic. This is a classic trap question where the answer is 'update the route tables.'
Mistake
A NAT Gateway allows inbound traffic from the internet to an instance in a private subnet.
Correct
A NAT Gateway only allows instances in a private subnet to initiate outbound connections to the internet. It does not allow unsolicited inbound connections from the internet.
The name 'Network Address Translation' sounds like it could work both ways, but AWS NAT is specifically designed for outbound-only access to protect private instances.
Mistake
You must use a VPN connection to connect an on-premises network to a VPC.
Correct
You can use AWS Direct Connect (a dedicated physical link) as an alternative to VPN. VPN is encrypted and uses the public internet; Direct Connect is private and lower latency.
People often think encryption is the only way, but Direct Connect bypasses the public internet entirely for better performance.
Reveal each answer, then mark whether you got it right. Score 60%+ to unlock the next chapter.
No, you cannot change the primary CIDR block of a VPC after creation. You can add secondary CIDR blocks, but the primary block is fixed. Plan carefully.
A public subnet has a route to an Internet Gateway, making its resources reachable from the internet. A private subnet does not have a direct internet route, so its resources can only be accessed from within the VPC or via a VPN/Direct Connect.
Yes, a NAT Gateway must be placed in a public subnet and has an Elastic IP address assigned to it. It uses that IP to communicate with the internet on behalf of private instances.
No, security group references only work within the same VPC. For cross-VPC access, you must use VPC peering and reference IP ranges or other mechanisms.
Route 53 is a global service, not a regional one. You manage it from the global AWS console, and it can route traffic to resources in any region.
You cannot delete a security group that is currently associated with any resource. You must first remove all associations, then you can delete it.
You've just covered VPC Networking and DNS with Route 53 — now see how well it sticks with free SOA-C02 practice questions. Full explanations included, no account needed.
Done with this chapter?