A VPC is your own isolated virtual network
coreintermediateA VPC is a private network you define inside AWS, isolated from every other customer's VPC by default. You choose its IP range, then everything else — subnets, routing, gateways — is built inside that boundary.
Think of it as
Your own fenced plot of land inside a shared city — you decide the streets (subnets) and gates (gateways) within the fence, but the fence itself is what keeps your plot separate from the neighbors'.
What we're doing: See the difference between a default VPC (ready to use) and a newly created custom VPC (empty boundary).
- 1
- The default VPC already has subnets, an internet gateway, and DNS settings ready — an instance launched into it can reach the internet immediately.
- 4
- A freshly created custom VPC has only its IP range — no subnets, no gateway, nothing else exists inside it yet.
Why this works: The default VPC exists so a new account can launch something immediately, but production workloads almost always use a deliberately designed custom VPC instead, built up piece by piece from an empty boundary.
Assuming a newly created VPC has any internet access at all
Wrong
Better
What you see: An instance in a brand-new custom VPC has no outbound connectivity at all, unlike one launched into the account's default VPC.
Why: A custom VPC starts as just an isolated IP range — every piece of connectivity (subnets, gateways, routes) that the default VPC comes pre-wired with has to be added explicitly.
- VPC — 10.0.0.0/16
- Public subnet — has a path to the internet
- Private subnet — no direct internet path
- Route table — decides where traffic goes
Remember: A VPC is an isolated IP range you control end to end — a default VPC comes pre-wired for internet access, a custom VPC starts as an empty boundary you build up piece by piece.
See also: public vs private subnets · route tables and egress paths

