- Tác giả

- Name
- Nguyễn Đức Xinh
- Ngày xuất bản
- Ngày xuất bản
AWS NAT Gateway là gì? Hướng dẫn chi tiết cách hoạt động và cấu hình NAT Gateway trong Amazon VPC
1. Giới thiệu
Khi thiết kế Amazon VPC, bạn thường cần chia hệ thống thành hai phần:
- Public Subnet: chứa các tài nguyên có thể truy cập Internet (ví dụ: Web Server).
- Private Subnet: chứa các tài nguyên nội bộ (ví dụ: Database, Application Server).
Vấn đề là: Các instance trong Private Subnet cần truy cập Internet để tải bản cập nhật, gửi request API, nhưng không được phép nhận truy cập từ Internet. 👉 AWS NAT Gateway ra đời để giải quyết chính xác nhu cầu này.
so sánh NAT instance và NAT gateway
- NAT instance là một EC2 instance mà bạn tự cấu hình và quản lý để cung cấp chức năng Network Address Translation (NAT)
- NAT gateway là một dịch vụ được AWS quản lý hoàn toàn để thực hiện NAT.
NAT Gateway dễ sử dụng hơn, có khả năng mở rộng linh hoạt và độ sẵn sàng cao hơn cho các ứng dụng hiện đại. Ngược lại, NAT Instance yêu cầu nhiều công việc quản trị hơn như quản lý phần mềm, mở rộng và xử lý lỗi, nhưng có thể là lựa chọn tiết kiệm chi phí cho các trường hợp sử dụng nhỏ hoặc đặc thù.
2. AWS NAT Gateway là gì?
AWS NAT Gateway (Network Address Translation Gateway) là dịch vụ được AWS quản lý, cho phép các instance trong Private Subnet:
- Truy cập Internet (Outbound Traffic) để tải gói, cập nhật phần mềm, gọi API, v.v.
- Không nhận lưu lượng từ Internet (Inbound Traffic), đảm bảo an toàn tuyệt đối.
NAT Gateway hoạt động như một cổng trung gian — nó thay đổi địa chỉ IP private của instance thành địa chỉ IP public của chính nó trước khi gửi ra Internet.
3. Cách hoạt động của NAT Gateway
Cơ chế hoạt động của NAT Gateway dựa trên Network Address Translation (NAT):
- Instance trong Private Subnet gửi gói tin ra ngoài (ví dụ: tải update từ
amazon.com). - Gói tin đi qua Route Table, trỏ đến NAT Gateway.
- NAT Gateway thay thế địa chỉ nguồn (Private IP) bằng Public IP của NAT Gateway.
- Gói tin được gửi đến Internet thông qua Internet Gateway (IGW).
- Khi nhận phản hồi, NAT Gateway dịch ngược lại và gửi về đúng instance gốc.
NAT Gateway chỉ hỗ trợ kết nối outbound (ra ngoài Internet). Không thể dùng NAT Gateway để nhận kết nối inbound từ Internet.
4. Các loại NAT trong AWS
AWS hiện hỗ trợ hai loại NAT:
| Loại NAT | Mô tả | Quản lý | Chi phí | Hiệu suất |
|---|---|---|---|---|
| NAT Instance | Instance EC2 tự cài NAT | Tự quản lý | Thấp | Phụ thuộc vào loại instance |
| NAT Gateway | Dịch vụ do AWS quản lý | Tự động | Cao hơn | Cực cao, sẵn sàng cao (HA) |
NAT Gateway là lựa chọn được AWS khuyến nghị vì dễ triển khai, hiệu năng cao và không cần bảo trì.
5. Hướng dẫn cấu hình NAT Gateway
Bước 1: Tạo NAT Gateway
- Vào VPC Dashboard → NAT Gateways → Create NAT Gateway
- Chọn Subnet (public) để đặt NAT Gateway
- Gán Elastic IP (EIP) cho NAT Gateway
- Bấm Create NAT Gateway
Bước 2: Cập nhật Route Table cho Private Subnet
-
Mở Route Tables → Chọn Route Table của Private Subnet
-
Thêm route:
Destination: 0.0.0.0/0 Target: nat-xxxxxxxxxxxxxxxxx
Bước 3: Kiểm tra kết nối
-
SSH vào instance trong Private Subnet thông qua Bastion Host
-
Thử chạy:
curl https://aws.amazon.comNếu có phản hồi → NAT Gateway hoạt động đúng.
6. NAT Gateway trong Multi-AZ Environment
Để đảm bảo High Availability, bạn nên tạo một NAT Gateway cho mỗi Availability Zone.
Lý do:
- NAT Gateway không tự động cross-AZ failover.
- Nếu AZ chứa NAT Gateway gặp sự cố, private subnet ở AZ đó sẽ mất kết nối Internet.
✅ Best Practice: Mỗi AZ → Một public subnet → Một NAT Gateway → Các private subnet cùng AZ route đến NAT Gateway tương ứng.
7. So sánh NAT Gateway với Internet Gateway & VPC Endpoint
| Tiêu chí | NAT Gateway | Internet Gateway | VPC Endpoint |
|---|---|---|---|
| Chức năng chính | Cho phép instance private truy cập Internet outbound | Kết nối 2 chiều với Internet | Kết nối nội bộ đến dịch vụ AWS |
| Hướng lưu lượng | Outbound only | Inbound & Outbound | Nội bộ AWS |
| Cần Public IP? | Không (chỉ NAT có Public IP) | Có | Không |
| Bảo mật cao | ✅ | ⚠️ | ✅✅ |
| Chi phí | Có (theo lưu lượng & giờ) | Miễn phí | Có thể miễn phí (Interface Endpoint tính phí nhỏ) |
8. Use Cases – Khi nào nên dùng NAT Gateway?
✅ Truy cập Internet từ Private Subnet
Các instance trong private subnet cần:
- Cập nhật hệ điều hành, cài dependency.
- Gửi request API ra Internet.
✅ Kết nối tới dịch vụ bên thứ ba
Ví dụ: Gửi log đến Datadog, gọi API từ GitHub hoặc Slack.
⚠️ Không dùng NAT Gateway khi:
- Ứng dụng chỉ cần truy cập dịch vụ AWS nội bộ (nên dùng VPC Endpoint).
- Môi trường chỉ gồm public subnet.
9. Best Practices
- Tạo NAT Gateway theo từng AZ để đảm bảo độ sẵn sàng.
- Theo dõi chi phí qua AWS Cost Explorer, vì NAT Gateway có thể tăng chi phí nếu lưu lượng lớn.
- Giới hạn truy cập outbound bằng Security Group hoặc Route Table.
- Dùng CloudWatch Metrics để theo dõi lưu lượng và lỗi NAT.
- Kết hợp với VPC Endpoint để giảm chi phí lưu lượng AWS nội bộ.
10. Kết luận
AWS NAT Gateway là giải pháp hiệu quả, an toàn và dễ quản lý để giúp các instance trong private subnet truy cập Internet mà không cần public IP. Với NAT Gateway, bạn có thể đảm bảo:
- Bảo mật cao
- Hiệu năng ổn định
- Khả năng mở rộng tự động
Đây là một thành phần quan trọng khi xây dựng kiến trúc mạng VPC chuẩn AWS.
