Amazon VPC - Basic
📖 1. Giới thiệu về Amazon VPC
Amazon Virtual Private Cloud (VPC) là dịch vụ mạng ảo, cho phép bạn tạo ra một môi trường mạng cô lập hoàn toàn trong AWS Cloud. VPC hoạt động như một data center ảo riêng biệt, nơi bạn có thể triển khai các tài nguyên AWS một cách an toàn và có kiểm soát hoàn toàn.
🎯 Tại sao cần VPC?
- Bảo mật: Tách biệt hoàn toàn với các tài khoản AWS khác
- Kiểm soát: Tự định nghĩa dải IP, subnet, routing, và gateway
- Linh hoạt: Có thể kết nối với on-premises hoặc VPC khác
- Tuân thủ: Đáp ứng các yêu cầu compliance và audit
🔧 2. Core Components
VPC bao gồm các thành phần chính sau:
2.1. Public Subnet vs Private Subnet - Mạng trong VPC
Public Subnet:
-
Có route
0.0.0.0/0trỏ tới Internet Gateway (IGW) -
Instance đặt trong public subnet cần có Public IP
Private Subnet:
-
Không có route tới IGW
-
Muốn ra Internet (để cập nhật OS), phải đi qua NAT Gateway nằm ở public subnet.
NAT Gateway tính phí theo giờ và theo dung lượng xử lý.
Nếu traffic ra Internet quá lớn (VD: tải ảnh từ S3), hãy dùng VPC Endpoint (Gateway Type) cho S3.
Nó miễn phí và đi qua đường mạng nội bộ AWS.
📚 Tài liệu tham khảo:
2.2. Route Table và Internet Gateway, NAT Gateway
2.2.1. 🗺️ Route Table (Bảng định tuyến)
⚡ Route Table là gì?
Bảng định tuyến quy định traffic từ subnet sẽ được chuyển hướng đến đâu trong hệ thống mạng.
🎯 Chức năng:
-
📝 Chứa các quy tắc định tuyến (destination + target)
-
🔗 Mỗi subnet bắt buộc phải liên kết với 1 route table
-
🚦 Quyết định đường đi cho mọi gói tin mạng ra/vào subnet
2.2.2. 🌐 Internet Gateway (IGW)
⚡ Internet Gateway là gì?
Cổng kết nối cho phép VPC giao tiếp trực tiếp với Internet công cộng.
🎯 Chức năng:
-
🔓 Cho phép tài nguyên trong VPC truy cập Internet trực tiếp
-
📍 Chỉ hoạt động với public subnet
-
🏷️ EC2 instance tại public subnet cần có public IP để sử dụng IGW
-
💰 Hoàn toàn miễn phí
2.2.3. 🛡️ NAT Gateway
⚡ NAT Gateway là gì?
Dịch vụ Network Address Translation cho phép private subnet kết nối ra Internet một cách an toàn.
🎯 Chức năng:
-
🔒 EC2 instance tại private subnet có thể đi ra Internet mà không cần public IP
-
⬅️ Chỉ cho phép outbound connection (bảo mật cao hơn)
-
💸 Có phí theo giờ + data transfer
📊 So sánh IGW vs NAT Gateway
| 🔍 Tiêu chí | 🌐 Internet Gateway | 🛡️ NAT Gateway |
|---|---|---|
| 🎯 Mục đích | Kết nối trực tiếp Internet | Kết nối Internet cho resources trong private subnet |
| 📍 Vị trí | Gắn vào VPC | Đặt trong Public subnet |
| 🔒 Bảo mật | Ít bảo mật hơn | Bảo mật cao hơn |
| 💰 Chi phí | Miễn phí | Có phí theo giờ + data transfer |
2.2.4. 🔄 Luồng traffic
Tóm tắt:
-
Route Table là bản đồ đường đi
-
IGW là cổng trực tiếp ra Internet
-
NAT GW là cổng an toàn cho resources trong private subnet
Luồng traffic điển hình:
-
EC2 tại public subnet: 🖥️ EC2 Instance → 🌐 Internet Gateway → 🌍 Internet
-
EC2 tại private subnet: 🖥️ EC2 Instance → 🔄 NAT Gateway → 🌐 Internet Gateway → 🌍 Internet
📚 Tài liệu tham khảo:
🛠️ 3. Other Components
Ngoài các thành phần cốt lõi như Route Table, IGW và NAT Gateway, AWS VPC còn cung cấp nhiều tài nguyên bổ sung để tăng cường tính năng và độ tin cậy cho hạ tầng mạng của bạn.
3.1. Elastic IP - Địa chỉ IP tĩnh
🎯 Mục đích:
-
Cung cấp địa chỉ IP tĩnh cho các tài nguyên AWS
-
Đảm bảo tính liên tục khi instance bị lỗi hoặc restart
-
Hỗ trợ failover và high availability
💰 Chi phí:
-
Miễn phí khi gắn vào instance đang chạy
-
$0.005/giờ khi không sử dụng (để tránh lãng phí IP)
-
Không giới hạn số lượng EIP per account (có thể request tăng limit)
📚 Tài liệu tham khảo:
3.2. VPC Endpoint - Truy cập riêng tư AWS Services
So sánh VPC Endpoint Types:
| Loại | Gateway Endpoint | Interface Endpoint |
|---|---|---|
| Dịch vụ hỗ trợ | S3, DynamoDB | Hầu hết dịch vụ AWS khác |
| Chi phí | Miễn phí | $0.01/giờ + data transfer |
| Cách hoạt động | Route Table | ENI + Private DNS |
| Bảo mật | VPC chỉ có thể truy cập | Security Group + NACL |
📚 Tài liệu tham khảo:
🔒 4. Security Layers
AWS cung cấp 2 lớp bảo mật chính để kiểm soát traffic:
4.1. Security Group
Security group là tường lửa ảo hoạt động ở cấp độ instance, kiểm soát traffic đến và đi từ các instance thông qua các rule allow (chỉ cho phép, không có rule deny).
Security Group là Stateful, tức là:
-
Khi cho phép traffic inbound, response outbound tự động được cho phép
-
Khi cho phép traffic outbound, response inbound tự động được cho phép
-
Không cần tạo rule riêng cho traffic trả về
Ví dụ: Với Security Group, chỉ cần rule cho phép TCP inbound port 22, response sẽ tự động được phép đi ra.
AWS giới hạn tối đa 5 security groups trên mỗi network interface.
4.2. Network ACL
Network ACL là tường lửa hoạt động ở cấp độ subnet, kiểm soát traffic vào và ra khỏi subnet thông qua các rule được đánh số theo thứ tự ưu tiên, hỗ trợ cả rule allow và deny.
Network ACL là Stateless, tức là:
-
Phải tạo rule riêng cho cả inbound và outbound traffic
-
Traffic đi vào cần rule inbound, traffic trả về cần rule outbound tương ứng
-
Mỗi chiều traffic được đánh giá độc lập theo các rule riêng biệt
Ví dụ: Với Network ACL, cần cả rule inbound port 80 và rule outbound cho ephemeral ports (1024-65535) để response có thể trả về.
NACL rất dễ cấu hình sai (quên mở Ephemeral Ports cho chiều về).
Trong 99% trường hợp, bạn chỉ cần dùng Security Group là đủ. Chỉ dùng NACL khi cần chặn (Deny) một IP cụ thể nào đó.
4.3. So sánh Security Groups và Network ACL
| Tính năng | Security Group (SG) | Network ACL (NACL) |
|---|---|---|
| Cấp độ | Instance (ENI) | Subnet |
| Trạng thái | Stateful (Cho phép chiều đi → Tự động cho phép chiều về) | Stateless (Phải mở cả chiều đi và về) |
| Quy tắc | Chỉ Allow | Allow & Deny |
📚 Tài liệu tham khảo: