Subnet

Tổng quan
Subnet (mạng con) là một phân đoạn của không gian địa chỉ IP trong VPC của bạn. Subnet cho phép bạn chia VPC thành nhiều phân đoạn nhỏ hơn, mỗi phân đoạn nằm trong một Availability Zone cụ thể. Mỗi subnet có thể được cấu hình là public (có thể truy cập từ internet) hoặc private (chỉ có thể truy cập từ bên trong VPC). Subnet giúp bạn tổ chức và quản lý tài nguyên dựa trên yêu cầu bảo mật và kết nối.

- AWS dành riêng 5 địa chỉ IP (4 địa chỉ đầu & 1 địa chỉ cuối) trong mỗi subnet
- 5 địa chỉ IP này không có sẵn để sử dụng và không thể gán cho instance EC2
Ví dụ: nếu CIDR là 10.0.0.0/24, thì các địa chỉ IP dành riêng là:
- 10.0.0.0 – Địa chỉ mạng
- 10.0.0.1 – dành riêng bởi AWS cho VPC Router
- 10.0.0.2 – dành riêng bởi AWS để ánh xạ đến Amazon-provided DNS
- 10.0.0.3 – dành riêng bởi AWS để sử dụng trong tương lai
- 10.0.0.255 – Network Broadcast Address. AWS không hỗ trợ quảng bá trong VPC, do đó địa chỉ này được dành riêng
- Mẹo cho kỳ thi, nếu bạn cần 29 địa chỉ IP cho các instance EC2:
- Bạn không thể chọn subnet có kích thước /27 (32 địa chỉ IP, 32 - 5 = 27 < 29)
- Bạn cần chọn subnet có kích thước /26 (64 địa chỉ IP, 64 - 5 = 59 > 29)
Chia VPC thành các subnet
Trên một Availability Zone (AZ), bạn có thể tạo nhiều subnet, và chúng có thể là bất kỳ kết hợp nào của subnet công khai (public) và riêng tư (private).
Cụ thể:
- Bạn có thể tạo nhiều subnet public trong cùng một AZ
- Bạn có thể tạo nhiều subnet private trong cùng một AZ
- Bạn có thể tạo cả subnet public và private trong cùng một AZ
Điều quan trọng là các subnet này phải có dải CIDR không chồng lấp nhau, và tổng số subnet phải nằm trong giới hạn subnet tối đa của AWS cho mỗi VPC
Việc chia VPC thành các subnet có nhiều lợi ích quan trọng:
- Phân bổ ứng dụng theo vùng địa lý: Mỗi subnet nằm trong một Availability Zone riêng biệt, giúp bạn triển khai các ứng dụng trên nhiều vùng vật lý khác nhau để tăng tính sẵn sàng và khả năng chịu lỗi.
- Kiểm soát bảo mật tốt hơn: Bạn có thể áp dụng các Network ACL và Security Group khác nhau cho từng subnet, giúp cô lập và bảo vệ các nhóm tài nguyên khác nhau.
- Phân chia công khai/riêng tư: Bạn có thể tạo subnet công khai (có thể truy cập từ internet) và subnet riêng tư (không thể truy cập trực tiếp từ internet), giúp giảm thiểu bề mặt tấn công.
- Kiểm soát định tuyến: Bạn có thể kiểm soát luồng lưu lượng giữa các subnet thông qua bảng định tuyến.
- Thiết kế kiến trúc nhiều tầng: Cho phép tạo kiến trúc nhiều tầng như tầng web, tầng ứng dụng và tầng cơ sở dữ liệu, mỗi tầng nằm trong một subnet riêng với chính sách bảo mật phù hợp.
- Tối ưu chi phí và kết nối: Bạn có thể định cấu hình các subnet khác nhau với các tùy chọn kết nối khác nhau (Direct Connect, VPN, Internet Gateway), giúp tối ưu chi phí cho các nhóm tài nguyên khác nhau.