You get a network, and you must design it
The first surprise of AWS is that compute does not arrive connected to anything useful. You are given a virtual network to lay out, and the layout determines what can reach what for the life of the system.
The primitives are few, and they map onto physical networking closely enough to reason about:
- VPC. Your private network within a region, with an address range you choose. Nothing outside it reaches inside except through something you place deliberately.
- Subnets. Slices of that range, each pinned to one availability zone. This is where AZ redundancy becomes concrete: multi-AZ means subnets in several zones.
- Route tables. What each subnet may reach and by which path. The distinction between a public and a private subnet is entirely a routing decision, not a property of the subnet itself.
- Internet gateway. Attached to a VPC to allow traffic to and from the internet.
- NAT gateway. Lets instances in private subnets make outbound connections without being reachable inbound.
Key idea: the default posture is deny. A resource cannot be reached until something you configured permits it, which is the opposite of a physical office network and the reason cloud misconfigurations tend to be things left open on purpose rather than things forgotten.

