03.Custom VPCs1
🏗️ Xây dựng VPC Custom đa tầng trên AWS – Lý thuyết nền tảng cho người mới¶
PHẦN 1: Lý thuyết nền tảng (CẦN NHỚ ĐỂ LÀM VÀ THI)¶
1. Custom VPC là gì?¶
- VPC (Virtual Private Cloud): Mạng riêng ảo, tách biệt hoàn toàn, chỉ bạn kiểm soát trong 1 AWS Region.
- Custom VPC là VPC do bạn tự thiết kế, tự cấu hình IP, subnet, bảo mật, khác hoàn toàn với Default VPC (AWS tạo sẵn, cứng nhắc, ít tùy biến).
- Multi-tier VPC: VPC chia thành nhiều lớp (tier) – ví dụ: Web, App, Database, Reserved – để tăng bảo mật, mở rộng, dễ quản trị.
2. Tư duy thiết kế từng bước như chơi Lego¶
- Đừng sợ sơ đồ phức tạp! Xây từng layer, từng phần, giống như lắp Lego.
- Bắt đầu từ “vỏ” (shell) VPC, sau đó thêm subnet, gateway, routing, security…
- Mục tiêu: Đến cuối section này, bạn sẽ tự tin xây dựng mạng riêng phức tạp trên AWS.
3. IP Plan thực tế (ví dụ cho account general, US region 1)¶
- CIDR cho VPC:
10.16.0.0/16
(65,536 IP usable) - 4 tiers x 4 AZ = 16 subnet (Web, App, DB, Reserved × AZ a/b/c/d)
- Demo này tạo 4 tier × 3 AZ (A, B, C) = 12 subnet. Dành phần AZ D để mở rộng về sau (theo best practice “luôn dự phòng”).
4. Các thành phần sẽ bổ sung dần:¶
- Internet Gateway: Cho phép tài nguyên trong VPC ra/vào Internet (sau bài shell sẽ tạo).
- NAT Gateway: Cho phép private subnet truy cập Internet (outbound only).
- Bastion Host: Máy chủ “trạm trung gian” SSH vào VPC (dùng để học, thực tế sẽ thay bằng giải pháp an toàn hơn).
- NACLs (Network ACL): Tường lửa lớp mạng, bổ sung bảo mật cho VPC.
- Data transfer cost: Cần tính toán khi thiết kế mạng (in-out giữa VPC, Internet, cross-AZ…).
5. Lý thuyết kiến trúc VPC cần nhớ để thi & đi làm¶
- VPC là dịch vụ “regional” – tạo trong 1 region, dùng được tất cả AZ của region đó
- Một account có thể có nhiều VPC, mỗi VPC là “rào chắn” bảo vệ – không gì tự do ra/vào nếu chưa explicit allow
- VPC = blast radius boundary: Nếu bị hack/lỗi, chỉ ảnh hưởng trong VPC (giới hạn thiệt hại)
- Default VPC: AWS tự cấu hình, 1 subnet/AZ, IP range giống nhau, không cần setup gì
- Custom VPC: Bạn tự quyết định mọi thứ, phù hợp cho production, dễ mở rộng/hybrid
- Hỗ trợ Hybrid networking: Kết nối VPC với on-premises hoặc cloud khác (VPN, Direct Connect, Peering...)
6. Tùy chọn Tenancy (RẤT hay ra đề thi)¶
- Default tenancy: Tài nguyên dùng shared hardware (dùng chung vật lý, tách biệt logical). Có thể chọn dedicated khi tạo EC2.
- Dedicated tenancy: Toàn bộ tài nguyên chạy trên dedicated hardware riêng biệt, đắt tiền, chỉ chọn khi có nhu cầu compliance đặc biệt (PCI, ngân hàng…). Nếu chọn nhầm thì không đổi lại được, chỉ dùng khi thực sự cần.
7. Cấu hình IP cho VPC¶
- Bắt buộc có 1 dải private IPv4 khi tạo VPC (CIDR block), ví dụ: /16 = 65,536 IP, /28 = 16 IP (dùng được ~11 IP do AWS giữ lại 5).
- Có thể gán thêm tối đa 5 CIDR block phụ sau khi tạo (mở support request thì tăng được)
- IPv6: Có thể thêm /56 IPv6 CIDR, AWS cấp range (không chọn được như IPv4). IPv6 trên AWS đều là public-routeable (bật/tắt kết nối Internet bằng security, chứ không phân public/private IP như IPv4).
- Tip: Dù IPv6 là public, nhưng phải cấu hình rule thì mới kết nối ra ngoài được – mặc định vẫn an toàn.
8. DNS trong VPC (Rất hay bị hỏi & dính lỗi thật khi đi làm)¶
- Route53 Resolver: Mỗi VPC auto có DNS. IP DNS là [Base IP của VPC] + 2 (ví dụ VPC 10.0.0.0/16 → DNS server: 10.0.0.2).
- 2 Option quan trọng:
1. enableDnsSupport
Đây là công tắc chính để bật dịch vụ phân giải tên miền (DNS) cho toàn bộ VPC.
- Chức năng: Cho phép các máy chủ (EC2 instance) trong VPC của bạn có thể sử dụng tên miền (ví dụ:
google.com
) thay vì phải nhớ địa chỉ IP. - Ví dụ ngắn gọn: Khi bật tính năng này, các EC2 instance trong VPC có thể truy cập
s3.amazonaws.com
. Nếu tắt, chúng không thể làm điều đó. - Vị trí máy chủ DNS: AWS tự động tạo một máy chủ DNS và gán cho nó địa chỉ IP đặc biệt: địa chỉ IP đầu tiên của VPC cộng 2 (ví dụ:
10.0.0.2
nếu VPC là10.0.0.0/16
).
2. enableDnsHostnames
Đây là công tắc phụ, dựa trên enableDnsSupport
đã được bật.
- Chức năng: Gán một tên miền công cộng (public DNS name) cho các EC2 instance có địa chỉ IP công cộng (Public IP).
- Ví dụ ngắn gọn: Một EC2 instance có địa chỉ IP công cộng là
34.200.1.20
sẽ được gán tên miền công cộng làec2-34-200-1-20.compute.amazonaws.com
. - Điều kiện: Thuộc tính này chỉ hoạt động khi
enableDnsSupport
đã được bật.
Tóm tắt đơn giản:
enableDnsSupport
: Bật chức năng DNS cho VPC, giúp các máy chủ trong đó truy cập được các tên miền.enableDnsHostnames
: Gán tên miền công cộng cho các máy chủ có Public IP.
PHẦN 2: Checklist kiến thức cần nhớ để đi thi & đi làm¶
- [x] VPC là gì? Tách biệt, bảo mật, giới hạn blast radius
- [x] VPC là dịch vụ regional, dùng được mọi AZ của region
- [x] Default VPC vs Custom VPC: khác biệt lớn về tùy chỉnh, bảo mật, mở rộng
- [x] Tùy chọn tenancy (Default vs Dedicated): khi nào dùng, lưu ý chi phí
- [x] Khi tạo VPC phải chọn IPv4 CIDR, có thể thêm IPv6
- [x] IPv4 chia subnet theo AZ, mỗi subnet nằm trong 1 AZ duy nhất
- [x] IPv6 là public, không phân biệt public/private, quản bằng security
- [x] DNS trong VPC: nhớ 2 setting enableDnsHostnames & enableDnsSupport
- [x] File IP plan là “bảo bối” khi làm dự án thật
PHẦN 3: Ứng dụng thực tế & bài tập hands-on¶
Tình huống thực tế¶
- Công ty cần VPC riêng cho từng môi trường (general, prod, dev), mỗi VPC theo chuẩn 4 tier × 4 AZ → 16 subnet. Dễ mở rộng, dễ quản trị, bảo mật tốt, dễ kết nối hybrid.
- Mỗi khi tạo VPC, luôn lưu lại IP plan, subnet plan để tránh trùng lặp, dễ audit, dễ troubleshoot.
Câu hỏi phỏng vấn/cert hay gặp¶
- So sánh Default VPC và Custom VPC?
- Tenancy là gì? Khi nào chọn dedicated?
- IPv6 trên AWS khác gì IPv4 về khái niệm public/private?
- DNS trong VPC hoạt động thế nào? Nếu EC2 không resolve được DNS thì kiểm tra gì trước?
- Maximum/minimum CIDR VPC là gì? (Min: /28, Max: /16)
Practice: Tạo VPC shell đầu tiên cho Animals4Life¶
- VPC CIDR: 10.16.0.0/16
- Chọn 3 AZ đầu tiên (A, B, C), mỗi AZ sau này sẽ có 4 subnet (web, app, db, reserved)
- Enable DNS support & DNS hostnames
- Tenancy: Default
- Chưa tạo subnet, gateway – để ở bài sau
PHẦN 4: Tổng kết & tips nhớ lâu¶
- Xây VPC custom là bước đầu tiên, cực kỳ quan trọng khi làm cloud thực tế và đi thi AWS.
- Đừng ngại sơ đồ phức tạp, cứ chia nhỏ từng bước, làm từng phần (giống chơi Lego).
- Ghi nhớ: VPC là “rào chắn” bảo mật, blast radius, mỗi VPC là 1 vùng an toàn tách biệt.
- Lúc nào cũng phải có file IP plan/subnet plan – đi làm không có là “toang”!
- Khi gặp lỗi DNS/route, luôn check 2 setting enableDnsHostnames & enableDnsSupport trước!