Route tables configuration in AWS - Commands & Configuration
Start learning this pattern below
Jump into concepts and practice - no test required
provider "aws" { region = "us-east-1" } resource "aws_vpc" "example_vpc" { cidr_block = "10.0.0.0/16" tags = { Name = "example-vpc" } } resource "aws_internet_gateway" "example_igw" { vpc_id = aws_vpc.example_vpc.id tags = { Name = "example-igw" } } resource "aws_route_table" "example_route_table" { vpc_id = aws_vpc.example_vpc.id tags = { Name = "example-route-table" } } resource "aws_route" "internet_access" { route_table_id = aws_route_table.example_route_table.id destination_cidr_block = "0.0.0.0/0" gateway_id = aws_internet_gateway.example_igw.id } resource "aws_subnet" "example_subnet" { vpc_id = aws_vpc.example_vpc.id cidr_block = "10.0.1.0/24" availability_zone = "us-east-1a" tags = { Name = "example-subnet" } } resource "aws_route_table_association" "example_association" { subnet_id = aws_subnet.example_subnet.id route_table_id = aws_route_table.example_route_table.id }
This Terraform file creates a virtual private cloud (VPC) with a subnet and an internet gateway. It defines a route table that sends all traffic (0.0.0.0/0) to the internet gateway, allowing internet access. The route table is then linked to the subnet so that instances in the subnet use this route.
provider: sets the AWS region.
aws_vpc: creates a private network.
aws_internet_gateway: allows internet access.
aws_route_table: holds routing rules.
aws_route: defines a rule sending all traffic to the internet gateway.
aws_subnet: a smaller network inside the VPC.
aws_route_table_association: links the route table to the subnet.
terraform init
terraform apply -auto-approve
-auto-approve - Automatically approves the plan without asking for confirmationaws ec2 describe-route-tables --filters "Name=vpc-id,Values=vpc-0a1b2c3d4e5f6g7h8"--filters - Filters results to show only route tables for the specified VPCIf you remember nothing else from this pattern, remember: route tables tell your cloud network where to send traffic, like a map for your data.
Practice
Solution
Step 1: Understand the role of route tables
Route tables control how network traffic moves inside a cloud network by defining paths.Step 2: Identify what route tables connect
They connect subnets to gateways or other networks, enabling communication.Final Answer:
To direct network traffic between subnets and gateways -> Option CQuick Check:
Route tables = traffic direction [OK]
- Confusing route tables with security groups
- Thinking route tables store data
- Mixing route tables with monitoring tools
Solution
Step 1: Identify the correct AWS CLI command for association
The command to associate a route table with a subnet is 'associate-route-table'.Step 2: Check the correct syntax and parameters
The correct syntax uses '--subnet-id' and '--route-table-id' flags with IDs.Final Answer:
aws ec2 associate-route-table --subnet-id subnet-12345 --route-table-id rtb-67890 -> Option BQuick Check:
Associate route table = associate-route-table command [OK]
- Using 'create-route-table' instead of 'associate-route-table'
- Wrong parameter names like '--subnet' instead of '--subnet-id'
- Using non-existent commands like 'attach-route-table'
Destination: 0.0.0.0/0, Target: igw-12345Destination: 10.0.1.0/24, Target: localWhat happens when an instance in subnet 10.0.1.0/24 tries to reach 8.8.8.8?
Solution
Step 1: Analyze the route for 0.0.0.0/0
This route sends all traffic not matching other routes to the internet gateway (igw-12345).Step 2: Determine route for 8.8.8.8
Since 8.8.8.8 is outside the local subnet, it matches the 0.0.0.0/0 route and goes to the internet gateway.Final Answer:
Traffic is sent to the internet gateway (igw-12345) -> Option AQuick Check:
Default route sends traffic to internet gateway [OK]
- Assuming traffic is blocked without explicit deny
- Confusing local route with internet access
- Thinking NAT gateway is used without configuration
Solution
Step 1: Check route table routes for internet access
Internet access requires a route to an internet gateway (igw) for 0.0.0.0/0.Step 2: Identify missing or incorrect routes
If the route to the internet gateway is missing, instances cannot reach the internet despite association.Final Answer:
The route table lacks a route to an internet gateway -> Option AQuick Check:
Internet needs 0.0.0.0/0 route to igw [OK]
- Assuming subnet association alone grants internet access
- Confusing NAT gateway with internet gateway routes
- Ignoring security group rules as cause
Solution
Step 1: Understand NAT gateway purpose
NAT gateway allows instances in private subnet (Subnet A) to access internet outbound.Step 2: Configure Subnet B's route table (NAT subnet)
Subnet B must have 0.0.0.0/0 to internet gateway so NAT can reach internet. Direct access for instances in B can be restricted via security groups.Step 3: Configure Subnet A's route table
Subnet A has 0.0.0.0/0 to NAT gateway.Final Answer:
Associate Subnet A's route table with a route 0.0.0.0/0 to the NAT gateway; Subnet B's route table with 0.0.0.0/0 to the internet gateway -> Option DQuick Check:
Private to NAT; NAT subnet to igw [OK]
- Omitting igw route in NAT subnet (B), breaking NAT functionality
- Routing private subnet (A) directly to igw
- Confusing NAT gateway and internet gateway roles
