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 CIDR10.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:¶
- VPC Console → Subnets → Thấy có 12 subnet của
a4l-vpc1
- Đặ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:¶
- EC2 launch vào web subnet → Tự động có public IP
- Traffic ra ngoài → Route table check → Match 0.0.0.0/0 → Đi IGW → Internet
- 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:¶
- ✅ Route table có default route ra IGW
- ✅ Associate với subnet
- ✅ IGW attached vào VPC
- ✅ 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! 💪