Amazon VPC Explained: Networking, Subnets, and Security Boundaries

Ronald M. Bieber

Amazon VPC is a logically isolated virtual network inside AWS where you define IP address ranges, subnets, routing, and security controls for your resources. It is not a consumer VPN, and simply creating a VPC does not make an application secure or highly available on its own—those outcomes depend on how you configure subnets, gateways, security groups, and the services running inside them.

Amazon VPC is the networking layer that most AWS workloads sit on top of. Before adjusting routing or security settings, it helps to understand what each component actually controls, because VPC is really a set of separate building blocks—subnets, route tables, gateways, and security rules—that you assemble rather than a single switch you turn on.


Table Of Contents

What Amazon VPC Actually Is (and Isn't)

According to AWS's VPC documentation, a VPC is a logically isolated virtual network dedicated to your AWS account within a chosen AWS Region, and it is not the same thing as a traditional VPN connection—a VPC is the network itself, while a VPN connection is one optional way to link that network to something outside AWS. A VPC is also not automatically cut off from the internet by default; whether resources can reach or be reached from the internet depends on the route tables, gateways, and security rules you apply, not on the existence of the VPC alone.

It's also worth being clear that having multiple VPCs does not create automatic application-level high availability. If one workload fails, AWS does not fail over your application into another VPC for you—that kind of resilience has to be designed using load balancing, health checks, and multi-Availability Zone deployment within your application architecture, not assumed from VPC networking alone.


Core Components and What Each One Does

A VPC is made up of several distinct pieces, each with its own scope and job. Treating them separately makes troubleshooting and cost review much easier than thinking of "the VPC" as one monolithic thing.

Component What It Controls Scope
VPC Defines the configured IP address ranges for your resources Regional
Subnet A segment of the VPC's IP range; hosts resources Single Availability Zone
Route table Determines the next hop for traffic from a subnet Associated per subnet
Internet Gateway Lets resources with public IPs reach and be reached from the internet VPC-wide
NAT Gateway Lets private-IP resources initiate outbound IPv4 traffic without exposing them to inbound internet connections Depends on zonal or regional availability mode
VPC Endpoint Connects to supported AWS services privately, without traversing the public internet Per VPC/subnet
Security Group Stateful allow rules attached to individual resources Per resource
Network ACL Stateless allow/deny rules applied at the subnet boundary Per subnet
Flow Logs Records metadata about traffic (source, destination, ports) for visibility VPC/subnet/interface

Beyond this table, AWS also documents VPC peering, Transit Gateway, and VPN connections as separate mechanisms for connecting VPCs to each other or to on-premises networks—each is its own component with its own configuration, not a default feature of simply having a VPC.


Public and Private Subnets: The Real Difference

The distinction between a "public" and "private" subnet is not a label you assign—it comes entirely from the route table. As AWS's subnet configuration guide explains, a subnet is public because its route table sends internet-bound traffic through an Internet Gateway; a subnet is private because it lacks that direct route. Naming a subnet "public-subnet" does nothing on its own.

A subnet also always exists entirely within one Availability Zone—it cannot span AZs, and each subnet needs its own distinct IP range within the VPC. For direct IPv4 internet access through an internet gateway, a resource also needs an associated public IPv4 address and security group and network ACL rules that permit the traffic; route existence alone does not grant access.


A Simple Two-Tier Layout for Resilience Planning

A common pattern for thinking through resilience is placing a load balancer in public subnets while keeping application and database instances in private subnets, with each tier spread across at least two Availability Zones. This is a planning reference, not a mandatory topology—AWS does not require this design, and it only works as intended when paired with actual health checks and service-level configuration, not network layout alone.

Whether this layout actually delivers resilience depends on load balancer health checks, database replication settings, and application logic—the subnet structure only provides the network boundaries, not the failover behavior itself.


Checking Connectivity: Separate Layers to Troubleshoot

When something can't connect, it helps to check each layer independently rather than assuming the problem is "the network" broadly:

  1. IP addressing: Confirm the resource has the IP address type it needs (public or private) for the connection you expect.
  2. Route tables: Confirm the subnet's route table actually sends traffic where it needs to go.
  3. Security groups: Per the AWS security group documentation, these are stateful and attached to the resource—check that inbound rules permit the traffic and are scoped to specific, trusted sources rather than left open broadly.
  4. Network ACLs: Unlike security groups, network ACLs are stateless and apply at the subnet level, so both inbound and outbound rules matter for return traffic—this is a distinct check from security groups and from IAM permissions.
  5. DNS resolution: Confirm the resource can resolve the hostname it's trying to reach before assuming a routing or security issue.

Flow Logs can help at this stage, but they record connection metadata—source, destination, ports, accept/reject—not packet payloads. Traffic Mirroring is a separate feature that copies actual packet data for deeper inspection; the two serve different purposes and shouldn't be treated as interchangeable.


What Can Add to Your AWS Bill

AWS's VPC pricing page notes that there is no additional charge for creating a VPC itself, but several components inside it can carry costs—NAT gateways typically bill by the hour plus data processed, public IPv4 addresses can carry charges, and certain VPC endpoints and network monitoring tools may also cost extra. Exact rates vary by Region and change over time, so this review does not quote specific figures; check the pricing page directly for current numbers relevant to your Region and usage.

Also worth noting: A public NAT gateway commonly provides private IPv4 outbound access. AWS also supports DNS64/NAT64 for IPv6-to-IPv4 access; native IPv6 outbound-only access can use an egress-only internet gateway. Choose based on the required traffic path rather than assuming every private subnet needs the same gateway.


Shared Responsibility for VPC Security

Per AWS's shared responsibility model, AWS secures the underlying infrastructure—hardware, networking, and facilities—while customers are responsible for how they configure their own resources, including VPC routing, security group rules, identity permissions, and data protection. A VPC is not a guarantee of maximum security or a substitute for correctly configuring access controls; it's a boundary you have to configure deliberately, and misconfigured routes or overly permissive security group rules remain a customer responsibility to fix.


Bottom Line

Amazon VPC gives you the building blocks—subnets, route tables, gateways, and security controls—to define exactly how your AWS resources connect to each other and to the outside world, but none of that happens automatically just because a VPC exists. Treating each component (routing, IP addressing, security groups, network ACLs) as a separate, checkable layer is the most reliable way to design and troubleshoot AWS networking. For current details and configuration options, AWS's own VPC documentation remains the primary reference.

Featured Reviews

323,928 Reviews Analyzed
3,717 Reviews Analyzed
40,525 Reviews Analyzed
213,629 Reviews Analyzed
55,091 Reviews Analyzed
33,756 Reviews Analyzed

Related Posts