Last updated on December 26, 2025
Amazon VPC Cheat Sheet
- Amazon Virtual Private Cloud (VPC) allows you to create a virtual network in the cloud dedicated to your AWS account where you can launch AWS resources. Amazon VPC is the networking layer for Amazon EC2 and other AWS services.
- A VPC spans all the Availability Zones (AZs) in a region. After creating a VPC, you can add one or more subnets in each Availability Zone.
Features
- Specify IPv4 and IPv6 CIDR ranges for VPC and subnets.
- Create Public, Private, and VPN-only subnets.
- Security Groups: instance-level, stateful, ALLOW rules only; can now be shared across accounts and associated with multiple VPCs.
- Network ACLs: subnet-level, stateless, supports ALLOW & DENY rules.
- Flow Logs: capture IP traffic info to CloudWatch Logs or S3 for monitoring and troubleshooting.
- Route Tables: associate per subnet, supports IPv4 & IPv6, supports dynamic routing via VPC Route Server.
- Internet Gateway: enables communication with the internet.
- Egress-only Internet Gateway: for outbound IPv6 traffic only.
- NAT Gateway & NAT Instances: enable private subnet internet access. Supports MTU 8500, up to 55,000 simultaneous connections per destination; now regional NAT gateways automatically expand across AZs.
- DHCP Options: domain name and DNS server configuration, including IPv6 lease preferences.
- DNS: enableDnsHostnames and enableDnsSupport for Route 53 resolution.
- VPC Peering: connect VPCs privately across accounts or regions; supports intra- and inter-region peering.
- Elastic IP: static public IPv4 for instances and network interfaces.
- VPC Endpoints (PrivateLink): Interface & Gateway endpoints for private AWS service access; supports cross-account and cross-region access.
- VPN Connections: AWS Managed VPN, VPN CloudHub, third-party appliances, and AWS Direct Connect.
- VPC Traffic Mirroring: replicate traffic for monitoring and content inspection.
- Amazon VPC Lattice: simplifies cross-VPC/service networking with routing, security, and monitoring.
- IP Address Manager (IPAM): central IP planning, tracking, and overlap detection.
- Reachability & Network Access Analyzers: static connectivity analysis & security audits.
- VPC encryption controls: enforce encryption in transit for traffic within your VPC.
- Advanced routing: route inbound VPC traffic to specific public IP addresses.
- VPC Block Public Access (BPA): block internet access at subnet or VPC level, with declarative policies for AWS Organizations.
- AWS-managed policy updates: AmazonVPCFullAccess, AmazonVPCReadOnlyAccess, AmazonVPCCrossAccountNetworkInterfaceOperations updated.
Key Concepts
- A VPC allows you to specify an IP range, add subnets, associate security groups, and configure route tables.
- A Subnet is a range of IP addresses in your VPC:
- Public Subnet – connected to the internet.
- Private Subnet – not connected to the internet.
- VPN-only Subnet – uses virtual private gateway for VPN connections.
- Protect resources using Security Groups and Network ACLs.
- Expand your VPC by adding secondary IP ranges.
- Optionally associate an IPv6 CIDR block; IPv6 traffic is separate from IPv4, and route tables must include IPv6 routes.
Default vs Non-Default VPC
Default VPC:
- Each Availability Zone comes with a default subnet.
- Internet Gateway is automatically included, allowing internet communication.
- Instances receive both a private IPv4 and a public IPv4 address.
- Outbound internet access is allowed without additional configuration.
- Optional IPv6 support by associating an IPv6 CIDR block.
Non-Default VPC:
- You must create and configure your own subnets; additional subnets in a default VPC are considered non-default.
- Internet Gateway is not automatically included; must be attached manually for internet access.
- Instances receive only a private IPv4 address by default; public IP must be assigned manually.
- Outbound internet access is allowed via a NAT device or Internet Gateway.
- Optional IPv6 support by associating an IPv6 CIDR block, but route tables must include IPv6 routes.
A diagram of default VPC
A diagram of non-default VPC
Accessing a Corporate or Home Network
-
Connect your VPC to a corporate data center using an IPsec AWS Managed VPN.
-
Components:
-
Virtual Private Gateway (VGW): AWS side of the VPN.
-
Customer Gateway (CGW): Your side (physical or software appliance).
-
-
VPN connections can now leverage AWS Transit Gateway for scalable multi-VPC connectivity.
-
AWS PrivateLink: Enables private connections to supported AWS services, VPC endpoint services, and Marketplace partner services without internet, NAT, or VPN.
-
Supports cross-region access and intra/inter-VPC peering.
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-
- You can create a VPC peering connection between your VPCs, or with a VPC in another AWS account, and enable routing of traffic between the VPCs using private IP addresses. You cannot create a VPC peering connection between VPCs that have overlapping CIDR blocks.
- Applications in an Amazon VPC can securely access AWS PrivateLink endpoints across VPC peering connections. The support of VPC peering by AWS PrivateLink makes it possible for customers to privately connect to a service even if that service’s endpoint resides in a different Amazon VPC that is connected using VPC peering.
- AWS PrivateLink endpoints can now be accessed across both intra- and inter-region VPC peering connections.
VPC Use Case Scenarios
- VPC with a Single Public Subnet
- VPC with Public and Private Subnets (NAT)
- VPC with Public and Private Subnets and AWS Managed VPN Access
- VPC with a Private Subnet Only and AWS Managed VPN Access
Subnets
- When you create a VPC, you must specify a range of IPv4 addresses for the VPC in the form of a Classless Inter-Domain Routing (CIDR) block (example: 10.0.0.0/16). This is the primary CIDR block for your VPC.
- You can add one or more subnets in each Availability Zone of your VPC’s region.
- You specify the CIDR block for a subnet, which is a subset of the VPC CIDR block.
- A CIDR block must not overlap with any existing CIDR block that’s associated with the VPC.
- Types of Subnets
- Public Subnet – has an internet gateway
- Private Subnet – doesn’t have an internet gateway
- VPN-only Subnet – has a virtual private gateway instead
- IPv4 CIDR block size should be between a /16 netmask (65,536 IP addresses) and /28 netmask (16 IP addresses).
- The first four IP addresses and the last IP address in each subnet CIDR block are NOT available for you to use, and cannot be assigned to an instance.
- You cannot increase or decrease the size of an existing CIDR block.
- When you associate a CIDR block with your VPC, a route is automatically added to your VPC route tables to enable routing within the VPC (the destination is the CIDR block and the target is local).
- You have a limit on the number of CIDR blocks you can associate with a VPC and the number of routes you can add to a route table.
- The following rules apply when you add IPv4 CIDR blocks to a VPC that’s part of a VPC peering connection:
- If the VPC peering connection is active, you can add CIDR blocks to a VPC provided they do not overlap with a CIDR block of the peer VPC.
- If the VPC peering connection is pending-acceptance, the owner of the requester VPC cannot add any CIDR block to the VPC. Either the owner of the accepter VPC must accept the peering connection, or the owner of the requester VPC must delete the VPC peering connection request, add the CIDR block, and then request a new VPC peering connection.
- If the VPC peering connection is pending-acceptance, the owner of the accepter VPC can add CIDR blocks to the VPC. If a secondary CIDR block overlaps with a CIDR block of the requester VPC, the VPC peering connection request fails and cannot be accepted.
- If you’re using AWS Direct Connect to connect to multiple VPCs through a direct connect gateway, the VPCs that are associated with the direct connect gateway must not have overlapping CIDR blocks.
- The CIDR block is ready for you to use when it’s in the associated state.
- You can disassociate a CIDR block that you’ve associated with your VPC; however, you cannot disassociate the primary CIDR block.
Subnet Routing
- Each subnet must be associated with a route table, which specifies the allowed routes for outbound traffic leaving the subnet.
- Every subnet that you create is automatically associated with the main route table for the VPC.
- You can change the association, and you can change the contents of the main route table.
- You can allow an instance in your VPC to initiate outbound connections to the internet over IPv4 but prevent unsolicited inbound connections from the internet using a NAT gateway or NAT instance.
- To initiate outbound-only communication to the internet over IPv6, you can use an egress-only internet gateway.
Subnet Security
- Security Groups — control inbound and outbound traffic for your instances
- You can associate one or more (up to five) security groups to an instance in your VPC.
- If you don’t specify a security group, the instance automatically belongs to the default security group.
- When you create a security group, it has no inbound rules. By default, it includes an outbound rule that allows all outbound traffic.
- Security groups are associated with network interfaces.
- Network Access Control Lists — control inbound and outbound traffic for your subnets
- Each subnet in your VPC must be associated with a network ACL. If none is associated, automatically associated with the default network ACL.
- You can associate a network ACL with multiple subnets; however, a subnet can be associated with only one network ACL at a time.
- A network ACL contains a numbered list of rules that is evaluated in order, starting with the lowest numbered rule, to determine whether traffic is allowed in or out of any subnet associated with the network ACL.
- The default network ACL is configured to allow all traffic to flow in and out of the subnets to which it is associated.
- For custom ACLs, you need to add a rule for ephemeral ports, usually with the range of 32768-65535. If you have a NAT Gateway, ELB or a Lambda function in a VPC, you need to enable 1024-65535 port range.
- Flow logs — capture information about the IP traffic going to and from network interfaces in your VPC that is published to CloudWatch Logs.
- Flow logs can help you with a number of tasks, such as:
- Diagnosing overly restrictive security group rules
- Monitoring the traffic that is reaching your instance
- Determining the direction of the traffic to and from the network interfaces
- Flow log data is collected outside of the path of your network traffic, and therefore does not affect network throughput or latency. You can create or delete flow logs without any risk of impact to network performance.
- After you’ve created a flow log, it can take several minutes to begin collecting and publishing data to the chosen destinations. Flow logs do not capture real-time log streams for your network interfaces.
- VPC Flow Logs can be sent directly to an Amazon S3 bucket which allows you to retrieve and analyze these logs yourself.
- Amazon security groups and network ACLs don’t filter traffic to or from link-local addresses or AWS-reserved IPv4 addresses. Flow logs do not capture IP traffic to or from these addresses.
|
Security Group |
Network ACL |
|
Operates at the instance level |
Operates at the subnet level |
|
Supports ALLOW rules only |
Supports ALLOW rules and DENY rules |
|
Is stateful: Return traffic is automatically allowed, regardless of any rules |
Is stateless: Return traffic must be explicitly allowed by rules |
|
We evaluate all rules before deciding whether to allow traffic |
We process rules in number order when deciding whether to allow traffic |
|
Applies only to EC2 instances and similar services that use EC2 as a backend. |
Automatically applies to all |
|
Security group is specified when launching the instances, or is associated with the instance later on |
Instances in the subnets it’s associated with |
- Diagram of security groups and NACLs in a VPC
VPC Networking Components
-
Network Interfaces
- a virtual network interface that can include:
- a primary private IPv4 address
- one or more secondary private IPv4 addresses
- one Elastic IP address per private IPv4 address
- one public IPv4 address, which can be auto-assigned to the network interface for eth0 when you launch an instance
- one or more IPv6 addresses
- one or more security groups
- a MAC address
- a source/destination check flag
- a description
- Network interfaces can be attached and detached from instances, however, you cannot detach a primary network interface.
- a virtual network interface that can include:
-
Route Tables
- contains a set of rules, called routes, that are used to determine where network traffic is directed.
- A subnet can only be associated with one route table at a time, but you can associate multiple subnets with the same route table.
- You cannot delete the main route table, but you can replace the main route table with a custom table that you’ve created.
- You must update the route table for any subnet that uses gateways or connections.
- Uses the most specific route in your route table that matches the traffic to determine how to route the traffic (longest prefix match).
-
Internet Gateways
- Allows communication between instances in your VPC and the internet.
- Imposes no availability risks or bandwidth constraints on your network traffic.
- Provides a target in your VPC route tables for internet-routable traffic, and performs network address translation for instances that have been assigned public IPv4 addresses.
- The following table provides an overview of whether your VPC automatically comes with the components required for internet access over IPv4 or IPv6.
- To enable access to or from the Internet for instances in a VPC subnet, you must do the following:
- Attach an Internet Gateway to your VPC
- Ensure that your subnet’s route table points to the Internet Gateway.
- Ensure that instances in your subnet have a globally unique IP address (public IPv4 address, Elastic IP address, or IPv6 address).
- Ensure that your network access control and security group rules allow the relevant traffic to flow to and from your instance
|
Default VPC |
Non-default VPC |
|
|
Internet gateway |
Yes |
Yes, if you created the VPC using the first or second option in the VPC wizard. Otherwise, you must manually create and attach the internet gateway. |
|
Route table with route to internet gateway for IPv4 traffic (0.0.0.0/0) |
Yes |
Yes, if you created the VPC using the first or second option in the VPC wizard. Otherwise, you must manually create the route table and add the route. |
|
Route table with route to internet gateway for IPv6 traffic (::/0) |
No |
Yes, if you created the VPC using the first or second option in the VPC wizard, and if you specified the option to associate an IPv6 CIDR block with the VPC. Otherwise, you must manually create the route table and add the route. |
|
Public IPv4 address automatically assigned to instance launched into subnet |
Yes (default subnet) |
No (non-default subnet) |
|
IPv6 address automatically assigned to instance launched into subnet |
No (default subnet) |
No (non-default subnet) |
-
Egress-Only Internet Gateways
- VPC component that allows outbound communication over IPv6 from instances in your VPC to the Internet, and prevents the Internet from initiating an IPv6 connection with your instances.
- An egress-only Internet gateway is stateful.
- You cannot associate a security group with an egress-only Internet gateway.
- You can use a network ACL to control the traffic to and from the subnet for which the egress-only Internet gateway routes traffic.
-
NAT
- Enable instances in a private subnet to connect to the internet or other AWS services, but prevent the internet from initiating connections with the instances.
- NAT Gateways
- You must specify the public subnet in which the NAT gateway should reside.
- You must specify an Elastic IP address to associate with the NAT gateway when you create it.
- Each NAT gateway is created in a specific Availability Zone and implemented with redundancy in that zone.
- Deleting a NAT gateway disassociates its Elastic IP address, but does not release the address from your account.
- A NAT gateway supports the following protocols: TCP, UDP, and ICMP.
- You cannot associate a security group with a NAT gateway.
- A NAT gateway can support up to 55,000 simultaneous connections to each unique destination.
- A NAT gateway cannot send traffic over VPC endpoints, VPN connections, AWS Direct Connect, or VPC peering connections.
- A NAT gateway uses ports 1024-65535. Make sure to enable these in the inbound rules of your network ACL.
- NAT Instance vs NAT Gateways
-
DHCP Options Sets
- Dynamic Host Configuration Protocol (DHCP) provides a standard for passing configuration information to hosts on a TCP/IP network.
- You can assign your own domain name to your instances, and use up to four of your own DNS servers by specifying a special set of DHCP options to use with the VPC.
- Creating a VPC automatically creates a set of DHCP options, which are domain-name-servers=AmazonProvidedDNS, and domain-name=domain-name-for-your-region, and associates them with the VPC.
- After you create a set of DHCP options, you can’t modify them. Create a new set and associate a different set of DHCP options with your VPC, or use no DHCP options at all.
-
DNS
- AWS provides instances launched in a default VPC with public and private DNS hostnames that correspond to the public IPv4 and private IPv4 addresses for the instance.
- AWS provides instances launched in a non-default VPC with private DNS hostname and possibly a public DNS hostname, depending on the DNS attributes you specify for the VPC and if your instance has a public IPv4 address.
- Set VPC attributes enableDnsHostnames and enableDnsSupport to true so that your instances receive a public DNS hostname and Amazon-provided DNS server can resolve Amazon-provided private DNS hostnames.
- If you use custom DNS domain names defined in a private hosted zone in Route 53, the enableDnsHostnames and enableDnsSupport attributes must be set to true.
- VPC Peering
- A networking connection between two VPCs that enables you to route traffic between them privately. Instances in either VPC can communicate with each other as if they are within the same network.
-
Elastic IP Addresses
- A static, public IPv4 address.
- You can associate an Elastic IP address with any instance or network interface for any VPC in your account.
- You can mask the failure of an instance by rapidly remapping the address to another instance in your VPC.
- Your Elastic IP addresses remain associated with your AWS account until you explicitly release them.
- AWS imposes a small hourly charge when EIPs aren’t associated with a running instance, or when they are associated with a stopped instance or an unattached network interface.
- You’re limited to five Elastic IP addresses.
-
VPC Endpoints
- Privately connect your VPC to supported AWS services and VPC endpoint services powered by PrivateLink without requiring an internet gateway, NAT device, VPN connection, or AWS Direct Connect connection.
- Endpoints are virtual devices.
- Two Types
- Interface Endpoints
- An elastic network interface with a private IP address that serves as an entry point for traffic destined to a supported service.
- Can be accessed through AWS VPN connections or AWS Direct Connect connections, through intra-region VPC peering connections from Nitro instances, and through inter-region VPC peering connections from any type of instance.
- For each interface endpoint, you can choose only one subnet per Availability Zone. Endpoints are supported within the same region only.
- You can add endpoint policies to interface endpoints. The Amazon VPC endpoint policy defines which principal can perform which actions on which resources. An endpoint policy does not override or replace IAM user policies or service-specific policies. It is a separate policy for controlling access from the endpoint to the specified service.
- An interface endpoint supports IPv4 TCP traffic only.
- Interface Endpoints
-
-
- Gateway Endpoints
- A gateway that is a target for a specified route in your route table, used for traffic destined to a supported AWS service.
- You can create multiple endpoints in a single VPC, for example, to multiple services. You can also create multiple endpoints for a single service, and use different route tables to enforce different access policies from different subnets to the same service.
- You can modify the endpoint policy that’s attached to your endpoint, and add or remove the route tables that are used by the endpoint.
- Endpoints are supported within the same region only. You cannot create an endpoint between a VPC and a service in a different region.
- Endpoints support IPv4 traffic only.
- You must enable DNS resolution in your VPC, or if you’re using your own DNS server, ensure that DNS requests to the required service (such as S3) are resolved correctly to the IP addresses maintained by AWS.
- You can create your own application in your VPC and configure it as an AWS PrivateLink-powered service (referred to as an endpoint service). You are the service provider, and the AWS principals that create connections to your service are service consumers.
-
VPN Connections
|
VPN connectivity option |
Description |
|
AWS managed VPN |
You can create an IPsec VPN connection between your VPC and your remote network. On the AWS side of the VPN connection, a virtual private gateway provides two VPN endpoints (tunnels) for automatic failover. You configure your customer gateway on the remote side of the VPN connection. |
|
AWS VPN CloudHub |
If you have more than one remote network, you can create multiple AWS-managed VPN connections via your virtual private gateway to enable communication between these networks. |
|
Third-party software VPN appliance |
You can create a VPN connection to your remote network by using an Amazon EC2 instance in your VPC that’s running a third-party software VPN appliance. AWS does not provide or maintain third-party software VPN appliances; however, you can choose from a range of products provided by partners and open source communities. |
|
AWS Direct Connect |
You can also use AWS Direct Connect to create a dedicated private connection from a remote network to your VPC. You can combine this connection with an AWS-managed VPN connection to create an IPsec-encrypted connection. |
- Specify a private Autonomous System Number (ASN) for the virtual private gateway. If you don’t specify an ASN, the virtual private gateway is created with the default ASN (64512). You cannot change the ASN after you’ve created the virtual private gateway.
- When you create a VPN connection, you must:
- Specify the type of routing that you plan to use (static or dynamic)
- Update the route table for your subnet
- If your VPN device supports Border Gateway Protocol (BGP), specify dynamic routing when you configure your VPN connection. If your device does not support BGP, specify static routing.
- VPG uses path selection to determine how to route traffic to your remote network. Longest prefix match applies.
- Each VPN connection has two tunnels, with each tunnel using a unique virtual private gateway public IP address. It is important to configure both tunnels for redundancy.
VPC Traffic Mirroring
- Allows you to replicate the network traffic from EC2 instances within your VPC to security and monitoring appliances for content inspection, threat monitoring, troubleshooting, and more.
- Both Nitro and non-Nitro instances are supported.
Advanced VPC Management & Networking
- Amazon VPC Lattice
Definition: A fully managed application networking service that simplifies connecting, securing, and monitoring services across multiple accounts and VPCs.
Why use it: It handles complexity like network address translation (NAT) and overlapping IP addresses automatically, removing the need for sidecar proxies or manual route table management.
Traffic Management: Supports granular traffic controls (request-level routing, weighted targets) useful for blue/green and canary deployments. - IP Address Manager (IPAM)
Definition: A centralized resource to plan, track, and monitor IP addresses across your entire AWS Organization.
Capabilities: Automates IP assignment to VPCs and subnets, tracks IP history (who used what IP and when), and helps identify IP overlaps.
Public IP Insights: A free feature within IPAM that provides a unified view of all public IPv4 addresses in use across your organization to help optimize costs. - Network Access & Reachability Analyzers
Reachability Analyzer: A static configuration analysis tool that enables you to perform connectivity testing between resources without sending actual packets.
Network Access Analyzer: Helps you identify unintended network access to your resources to help you meet security and compliance requirements.
Amazon VPC Pricing
- NAT Gateway
- Charged per NAT Gateway-hour.
- Data processing charge per GB processed.
- Standard AWS data transfer charges still apply.
- VPN Connection
- Charged per VPN Connection-hour.
- Elastic IP (EIP) hourly charge for all public IPv4 addresses, whether attached to a running instance or not. Additional fees apply for remapping more than 100 times per month.
- VPC Lattice charged per service-hour plus data processing (GB) and request volume.
- IP Address Manager (IPAM)
- Advanced Tier billed hourly per active IP address managed.
- Traffic MirroringHourly charge per ENI with mirroring enabled.
- Reachability Analyzer
- Pay-per-use fee for each connectivity analysis run.
Amazon VPC Overview from AWS re:Invent
Amazon VPC-related Cheat Sheets:
Note: If you are studying for the AWS Certified Advanced Networking Specialty exam, we highly recommend that you take our AWS Certified Advanced Networking – Specialty Practice Exams and read our Advanced Networking Specialty exam study guide.
Validate Your Knowledge
Question 1
An Amazon Virtual Private Cloud (VPC) has a fleet of EC2 instances hosted in a private subnet that connects to an Amazon S3 bucket via its VPC Gateway Endpoint. The VPC doesn’t have an attached Internet Gateway since the application is only used internally. You were instructed to configure the security group of the instances to only allow traffic to and from the public IP ranges of the S3 endpoint. To get the required IP ranges, you used the information provided by the aws ec2 describe-prefix-lists AWS CLI command. The solution worked but after a few weeks, you noticed that the outgoing requests are timing out and the instances can’t connect to the bucket any longer.
Which of the following is the most suitable solution that you can do to solve this issue with LEAST effort?
- Create a new customer-managed prefix-list that contains the public IP ranges of the S3 endpoint. Modify the outbound VPC security group rule to use the prefix-list in connecting to the Gateway VPC endpoint.
- Set up a CloudFront Function for the Amazon S3 bucket to have a static public IP range that doesn’t change.
- Create a Lambda function that updates the security group. Use the AWS-managed
AmazonIpSpaceChangedtopic in Amazon SNS as the trigger for the function. - Configure the outbound VPC security group rule to use the AWS-managed prefix-list in connecting to the Gateway VPC endpoint.
Question 2
A company has multiple VPCs with IPv6 enabled for its suite of web applications. The Solutions Architect attempted to deploy a new Amazon EC2 instance but encountered an error indicating that there were no available IP addresses on the subnet. The VPC has a combination of IPv4 and IPv6 CIDR blocks, but the IPv4 CIDR blocks are nearing exhaustion. The architect needs a solution that will resolve this issue while allowing future scalability.
How should the Solutions Architect resolve this problem?
- Set up a new IPv4 subnet with a larger CIDR range. Associate the new subnet with the VPC and then launch the instance.
- Ensure that the VPC has IPv6 CIDRs only. Remove any IPv4 CIDRs associated with the VPC.
- Set up a new IPv6-only subnet with a large CIDR range. Associate the new subnet with the VPC then launch the instance.
- Disable the IPv4 support in the VPC and use the available IPv6 addresses.
For more AWS practice exam questions with detailed explanations, visit the Tutorials Dojo Portal:
Additional Training Materials: Amazon VPC Video Courses on Udemy
Amazon VPC Cheat Sheet References:
https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html
https://aws.amazon.com/vpc/details/
https://aws.amazon.com/vpc/pricing/
https://aws.amazon.com/vpc/faqs/





















