Project: Design a VPC with Public and Private Components
By the end of this lesson, you'll be able to:
- Design a simple, secure multi-AZ network architecture applying every concept from this module
- Explain why each component in the design is placed where it is
- Apply this module's Cost & Cleanup discipline to networking resources specifically
Prerequisites: "Load Balancing Basics"
Before you begin: two valid paths, as in every earlier module
As with every hands-on project so far in this course, you can design this directly in a real AWS account or work through it entirely on paper. If you do build any of this in a real account, review your current Free Tier eligibility and current pricing for VPC-related services first — several of the components below (NAT resources, load balancers, public IPv4 addresses, Route 53) can have cost implications independent of each other, and none of them should be assumed automatically free.
The target architecture
Bringing every lesson in this module together into one request path:
Internet
→ Route 53 (Lesson 6) — resolves a domain name to the load balancer
→ Load Balancer (Lesson 7) — distributes traffic, health-checks targets
→ Public subnets across 2 AZs (Lessons 1–2) — hold the load balancer / ingress layer
→ Application targets (EC2) — in public or private subnets depending on design, reached only via the load balancer's Security Group
→ Private subnets (Lesson 2) — hold the application tier and the database
→ Database — never directly reachable from the internet (Module 5)
At least two Availability Zones are used throughout, per Lesson 7's resiliency reasoning — never a single-AZ design for anything meant to stay available.
Why each piece is placed where it is
This is the actual point of the exercise — not memorizing the diagram, but being able to justify each placement:
- Route 53 sits in front of everything because users need a memorable name, not a raw address, and DNS is the layer that resolves one to the other (Lesson 6).
- The load balancer sits in public subnets because it's the one component genuinely meant to be reachable from the internet — and its own Security Group, not a wide-open rule, is what controls that (Lesson 5).
- Application targets are reached only from the load balancer's Security Group, never directly from the internet — the web/app-tier pattern Lesson 5 described.
- The database sits in a private subnet with a Security Group allowing inbound only from the application tier's Security Group — Module 5's warning against direct database exposure, enforced here at the network layer.
- NAT (Lesson 4) gives the private application tier outbound access for updates or external API calls, without ever accepting a new inbound connection initiated from the internet.
- Route tables for the private subnets deliberately carry no
0.0.0.0/0 → Internet Gatewayroute (Lesson 3) — that route belongs only where a subnet is genuinely meant to be reachable from outside.
Cost & Cleanup
If any part of this was built in a real account, work through this checklist before considering the project finished — some of these have dependencies on each other, so order matters: a component often can't be deleted while something else still depends on it.
- Delete or deregister the load balancer first, since other resources may depend on it.
- Delete associated target groups, if any were created separately from the load balancer.
- Release NAT resources created for this project, and any Elastic IP/public IP addresses allocated for them or for the load balancer.
- Remove Route 53 records and, if created solely for this training exercise, the hosted zone itself.
- Delete Security Groups created for this project, once nothing still references them.
- Delete subnets, then route tables, then detach and delete the Internet Gateway, and finally delete the VPC itself — roughly the reverse order of how the pieces were created, since AWS won't let you delete a VPC that still contains dependent resources.
- Confirm nothing training-related remains by checking the VPC dashboard directly — the same "verify, don't assume" discipline every earlier module's project applied to its own resources.
Exercise
Using the target architecture from this lesson, explain in your own words why the database's Security Group should reference the application tier's Security Group as its only allowed source, rather than allowing a broader range of addresses "to avoid connectivity issues." Then list the cleanup order for a load balancer, its NAT resources, and the VPC itself, explaining briefly why the order matters.
Show hint
For the first part, revisit Module 5's warning against direct database exposure and Lesson 5's least-privilege Security Group reasoning. For the second, think about which resources depend on which.
Project: Design a VPC with Public and Private Components Quiz
My Notes
Log in to keep private notes on this lesson.
Questions about this lesson
No questions yet — be the first to ask.
Log in to ask a question about this lesson.
Summary
This closing project ties the whole module together into one design exercise — a request flowing from Route 53 through a load balancer into public subnets, on to application targets, and finally to a database kept in a private subnet — with the learner explaining why each piece belongs where it does, and a networking-specific Cost & Cleanup checklist for anyone who built this in a real account.