🔥 [GIẢI MÃ VPC TRONG AWS – MẠNG ẢO KHỞI NGUỒN MỌI THỨ] 🔥
Trong AWS, nếu bạn chưa hiểu về VPC thì gần như bạn chưa bước chân vào thế giới mạng đám mây thực thụ. Bài này dành cho anh em đang xây dựng hệ thống trong cloud và cần quản lý tài nguyên một cách an toàn, có tổ chức.
🧠 1. Virtual Private Cloud (VPC) là gì?
VPC là một mạng riêng ảo trong AWS – bạn tạo nó để chứa các tài nguyên như EC2, RDS, Lambda. Khi tạo VPC, bạn phải cấp cho nó một dải địa chỉ IP theo chuẩn CIDR. Ví dụ: 172.16.0.0/16 – tương đương 65,536 IP.
Lưu ý:
CIDR ban đầu không thể chỉnh sửa hay xóa, dù sau này bạn có thể thêm thêm CIDR phụ nếu hết địa chỉ.
🌐 2. Subnet – phân mảnh không gian mạng
Từ VPC ban đầu, bạn sẽ chia ra các subnet nhỏ hơn để phục vụ cho các mục đích khác nhau. Ví dụ:
Subnet cũng dùng CIDR, nhưng là một phần nhỏ hơn từ CIDR của VPC. Bạn có thể thêm subnet sau khi tạo, miễn là không trùng và nằm trong phạm vi VPC đã cấp.
🔐 3. Security Group – tường lửa "stateful"
AWS cung cấp một cơ chế bảo mật gọi là Security Group, hoạt động như một firewall thông minh để kiểm soát:
Ví dụ phổ biến nhất là mở port cho HTTP và HTTPS:
Và đây là điểm cực kỳ quan trọng:
Security Group là “stateful” — nghĩa là nếu bạn cho phép outbound ra port 443, thì AWS tự động cho phép traffic hồi đáp quay lại, mà bạn không cần viết rule inbound tương ứng. Đây là sự khác biệt lớn so với các firewall thông thường.
🛠️ 4. TIPS thực chiến
🚀 Ví dụ dùng CLI để tạo Security Group cho Web
aws ec2 create-security-group \ --group-name web-sg \ --description "Allow HTTP and HTTPS" \ --vpc-id vpc-0abc1234 aws ec2 authorize-security-group-ingress \ --group-name web-sg \ --protocol tcp \ --port 80 \ --cidr 0.0.0.0/0 aws ec2 authorize-security-group-ingress \ --group-name web-sg \ --protocol tcp \ --port 443 \ --cidr 0.0.0.0/0
📌 Tổng kết
Nếu coi AWS như một trung tâm dữ liệu ảo, thì:
Nắm vững 3 thành phần này, bạn sẽ dễ dàng mở rộng hệ thống, phân tách môi trường (dev, test, prod), triển khai CI/CD, hoặc quản lý multi-tier app.
Trong AWS, nếu bạn chưa hiểu về VPC thì gần như bạn chưa bước chân vào thế giới mạng đám mây thực thụ. Bài này dành cho anh em đang xây dựng hệ thống trong cloud và cần quản lý tài nguyên một cách an toàn, có tổ chức.
🧠 1. Virtual Private Cloud (VPC) là gì?
VPC là một mạng riêng ảo trong AWS – bạn tạo nó để chứa các tài nguyên như EC2, RDS, Lambda. Khi tạo VPC, bạn phải cấp cho nó một dải địa chỉ IP theo chuẩn CIDR. Ví dụ: 172.16.0.0/16 – tương đương 65,536 IP.
Lưu ý:
CIDR ban đầu không thể chỉnh sửa hay xóa, dù sau này bạn có thể thêm thêm CIDR phụ nếu hết địa chỉ.
🌐 2. Subnet – phân mảnh không gian mạng
Từ VPC ban đầu, bạn sẽ chia ra các subnet nhỏ hơn để phục vụ cho các mục đích khác nhau. Ví dụ:
- Subnet 172.16.1.0/24 dành cho public web server
- Subnet 172.16.2.0/24 chứa database hoặc backend
Subnet cũng dùng CIDR, nhưng là một phần nhỏ hơn từ CIDR của VPC. Bạn có thể thêm subnet sau khi tạo, miễn là không trùng và nằm trong phạm vi VPC đã cấp.
🔐 3. Security Group – tường lửa "stateful"
AWS cung cấp một cơ chế bảo mật gọi là Security Group, hoạt động như một firewall thông minh để kiểm soát:
- Traffic đi vào (ingress)
- Traffic đi ra (egress)
Ví dụ phổ biến nhất là mở port cho HTTP và HTTPS:
- Mở TCP port 80 từ bất kỳ IP nào (0.0.0.0/0)
- Mở TCP port 443 cũng cho toàn thế giới (0.0.0.0/0)
Và đây là điểm cực kỳ quan trọng:
Security Group là “stateful” — nghĩa là nếu bạn cho phép outbound ra port 443, thì AWS tự động cho phép traffic hồi đáp quay lại, mà bạn không cần viết rule inbound tương ứng. Đây là sự khác biệt lớn so với các firewall thông thường.
🛠️ 4. TIPS thực chiến
- Khi tạo VPC, hãy lên kế hoạch CIDR kỹ lưỡng. Nếu không, bạn sẽ phải tạo lại VPC mới nếu cần thay đổi.
- Dùng subnet khác nhau cho mỗi tầng ứng dụng: frontend, backend, database.
- Hạn chế tối đa việc dùng 0.0.0.0/0 cho các port nhạy cảm như SSH (22). Hãy dùng VPN hoặc Bastion Host để truy cập.
- Sử dụng Terraform hoặc CloudFormation để quản lý Security Group, Subnet, Route Table một cách có kiểm soát.
🚀 Ví dụ dùng CLI để tạo Security Group cho Web
aws ec2 create-security-group \ --group-name web-sg \ --description "Allow HTTP and HTTPS" \ --vpc-id vpc-0abc1234 aws ec2 authorize-security-group-ingress \ --group-name web-sg \ --protocol tcp \ --port 80 \ --cidr 0.0.0.0/0 aws ec2 authorize-security-group-ingress \ --group-name web-sg \ --protocol tcp \ --port 443 \ --cidr 0.0.0.0/0
📌 Tổng kết
Nếu coi AWS như một trung tâm dữ liệu ảo, thì:
- VPC là trung tâm mạng
- Subnet là từng khu vực nhỏ
- Security Group là lính gác cổng ra vào
Nắm vững 3 thành phần này, bạn sẽ dễ dàng mở rộng hệ thống, phân tách môi trường (dev, test, prod), triển khai CI/CD, hoặc quản lý multi-tier app.