Bỏ qua

08.lab publicSubnet BastionHost

🛠️ DEMO: Tạo Internet Gateway & Public Subnet trên AWS (Step-by-step cho người mới)


🎯 Mục tiêu demo này

  • Biến các private subnet thành public subnet có thể kết nối Internet 2-way.
  • Hiểu rõ từng bước cấu hình Internet Gateway, Route Table, Public IP.
  • Chuẩn bị môi trường để launch Bastion Host (phần 2).

📋 Kiểm tra điều kiện trước khi bắt đầu

Yêu cầu môi trường:

  • [x] Đã tạo VPC a4l-vpc1 với CIDR 10.16.0.0/16
  • [x] Đã tạo đủ 12 subnets (3 web, 3 app, 3 db, 3 reserved) trong 3 AZ
  • [x] Login với IAM admin user
  • [x] Region: US East 1 (N. Virginia)

Kiểm tra nhanh:

  1. VPC Console → Subnets → Thấy có 12 subnet của a4l-vpc1
  2. Đặc biệt check có 3 web subnet: web-A, web-B, web-C

Bước 1: Tạo Internet Gateway

1.1. Tạo IGW mới

📍 VPC Console → Internet Gateways → Create Internet Gateway

Name: A4L-VPC1-IGW
Meaning: Animals4Life - VPC1 - Internet Gateway

1.2. Attach IGW vào VPC

📍 Actions → Attach to VPC

Select VPC: A4L-VPC1
Click: Attach Internet Gateway

✅ Status từ "Detached" → "Attached"

Lưu ý: IGW ban đầu luôn ở trạng thái "Detached", phải attach thủ công!


Bước 2: Tạo Route Table cho Public Subnets

2.1. Tạo Route Table mới

📍 VPC Console → Route Tables → Create Route Table

Name: A4L-VPC1-RT-web
VPC: A4L-VPC1  
Meaning: Animals4Life - VPC1 - Route Table - web tier

2.2. Associate Route Table với Web Subnets

📍 Chọn route table vừa tạo → Subnet Associations → Edit Associations

Select 3 subnets:
  ☑️ web-A
  ☑️ web-B  
  ☑️ web-C

Click: Save Associations

Giải thích: Subnet chỉ được associate với 1 route table. Khi associate với custom route table, nó sẽ tự động rời khỏi main route table.


Bước 3: Thêm Default Routes vào Route Table

3.1. Kiểm tra Local Routes hiện tại

📍 Routes tab của route table vừa tạo

Sẽ thấy 2 local routes:
  10.16.0.0/16 → local (IPv4)
  2600:1f14:xxx::/56 → local (IPv6)

3.2. Thêm IPv4 Default Route

📍 Routes → Edit Routes → Add Route

Destination: 0.0.0.0/0  
Target: Internet Gateway → A4L-VPC1-IGW

✅ Meaning: "Mọi traffic IPv4 không match local route  đi ra IGW"

3.3. Thêm IPv6 Default Route

📍 Add Route (tiếp)

Destination: ::/0
Target: Internet Gateway → A4L-VPC1-IGW  

✅ Meaning: "Mọi traffic IPv6 không match local route  đi ra IGW"

Click: Save Changes

Bước 4: Enable Auto-assign Public IP cho Web Subnets

4.1. Cấu hình cho web-A

📍 Subnets → Select web-A → Actions → Edit Subnet Settings

☑️ Enable auto-assign public IPv4 address
Click: Save

4.2. Cấu hình cho web-B

📍 Subnets → Select web-B → Actions → Edit Subnet Settings  

☑️ Enable auto-assign public IPv4 address
Click: Save

4.3. Cấu hình cho web-C

📍 Subnets → Select web-C → Actions → Edit Subnet Settings

☑️ Enable auto-assign public IPv4 address  
Click: Save

🎯 Tổng kết những gì đã làm

✅ Checklist hoàn thành:

  • [x] Internet Gateway: Tạo & attach vào VPC
  • [x] Route Table: Tạo route table riêng cho web tier
  • [x] Subnet Association: Gán 3 web subnet vào route table mới
  • [x] Default Routes: Thêm 0.0.0.0/0 & ::/0 → IGW
  • [x] Public IP: Enable auto-assign cho 3 web subnet

🔄 Luồng hoạt động:

  1. EC2 launch vào web subnet → Tự động có public IP
  2. Traffic ra ngoài → Route table check → Match 0.0.0.0/0 → Đi IGW → Internet
  3. Traffic vào từ Internet → IGW → Route đến private IP của EC2

📚 Kiến thức cần nhớ để thi & đi làm

Public Subnet = 4 điều kiện:

  1. Route table có default route ra IGW
  2. Associate với subnet
  3. IGW attached vào VPC
  4. Auto-assign public IP enabled

Route Priority Rules:

  • Local routes luôn ưu tiên cao nhất (10.16.0.0/16 > 0.0.0.0/0)
  • Prefix càng cao càng ưu tiên (/32 > /24 > /16 > /0)
  • Default route chỉ dùng khi không match rule nào khác

IGW Characteristics:

  • Regionally resilient (1 IGW cho cả region)
  • 1:1 relationship với VPC
  • Managed service (AWS lo availability)

🚀 Chuẩn bị cho phần 2: Launch Bastion Host

Phần 2 sẽ: - Launch EC2 instance vào public subnet - Configure Security Group cho SSH access - Test connectivity từ Internet vào VPC - Tạo "cửa ngõ" vào private infrastructure


Nghỉ ngơi 5 phút rồi tiếp tục phần 2! Tới đây bạn đã hiểu 80% cách AWS networking hoạt động rồi! 💪

Bình luận