Trong môi trường điện toán đám mây, yếu tố bảo mật và khả năng kiểm soát mạng luôn được đặt lên hàng đầu. Khi triển khai ứng dụng trên AWS, mọi tài nguyên của bạn như EC2, RDS, Load Balancer… đều cần một hạ tầng mạng riêng. Giải pháp mà AWS cung cấp chính là VPC (Virtual Private Cloud) – một mạng riêng ảo, nơi bạn có thể định nghĩa không gian mạng an toàn, linh hoạt và tách biệt.
Nếu coi AWS là một thành phố, thì VPC chính là khu đất riêng của bạn trong thành phố đó. Bạn có thể xây nhà (EC2), đặt cổng bảo vệ (Security Group), tạo lối ra/vào (Internet Gateway, NAT Gateway) theo cách bạn muốn.
VPC là gì?
VPC (Virtual Private Cloud) là một mạng riêng ảo trong AWS, nơi bạn có toàn quyền kiểm soát:
-
Dải IP của mạng (CIDR Block).
-
Cách chia subnet (public/private).
-
Định tuyến traffic qua Route Table.
-
Kiểm soát truy cập bằng Security Group và Network ACL.
-
Kết nối internet, kết nối giữa các VPC, hoặc kết nối với hệ thống tại chỗ (on-premises).
Tóm gọn: VPC = Datacenter mini của bạn trên cloud.
Các thành phần chính trong VPC
Subnet
-
Chia VPC thành các mạng con nhỏ hơn.
-
Public Subnet: có thể truy cập internet (thường chứa Load Balancer, Web Server).
-
Private Subnet: bị cách ly khỏi internet (thường chứa App Server, Database).
Route Table
-
Quy định đường đi của dữ liệu.
-
Mỗi subnet phải gắn với một route table.
Internet Gateway (IGW)
-
Giúp tài nguyên trong public subnet có thể kết nối với internet.
NAT Gateway / NAT Instance
-
Dùng cho private subnet để kết nối ra internet (cập nhật package, gọi API) mà không bị truy cập ngược lại.
Security Group
-
Tường lửa ở mức instance (EC2, RDS, ALB).
-
Kiểm soát inbound (traffic đi vào) và outbound (traffic đi ra).
Network ACL (NACL)
-
Tường lửa ở mức subnet.
-
Có thể chặn hoặc cho phép traffic theo luật.
VPC Peering & Transit Gateway
-
Kết nối nhiều VPC với nhau.
-
Giúp hệ thống đa VPC giao tiếp an toàn.
Ví dụ kiến trúc VPC cơ bản
Một VPC phổ biến thường được thiết kế như sau:
-
VPC CIDR Block:
10.0.0.0/16
-
Public Subnet:
10.0.1.0/24
(EC2 Web + Load Balancer). -
Private Subnet:
10.0.2.0/24
(EC2 App, RDS Database).
-
-
Internet Gateway: gắn với VPC để public subnet ra internet.
-
NAT Gateway: đặt ở public subnet, cho phép private subnet ra internet an toàn.
-
Security Group Rules:
-
Chỉ ALB → App Server (port 80/443).
-
Chỉ App Server → Database (port 3306).
-
Sơ đồ (mô tả bằng chữ):
Internet | [Internet Gateway] | [Public Subnet] --- [NAT Gateway] ---> Internet (Outbound only) | | [Load Balancer] [Private Subnet] | | | [App Server] ---> [Database]
Hướng dẫn tạo VPC trên AWS Console (Step-by-Step)
Bước 1: Tạo VPC
-
Vào AWS Console → VPC → Create VPC.
-
Chọn
VPC only
. -
Đặt tên:
my-vpc
. -
CIDR Block:
10.0.0.0/16
.
Bước 2: Tạo Subnet
-
Public Subnet:
10.0.1.0/24
(chọn AZus-east-1a
). -
Private Subnet:
10.0.2.0/24
(chọn AZus-east-1a
).
Bước 3: Tạo Internet Gateway
-
Vào Internet Gateway → Create IGW.
-
Attach IGW vào
my-vpc
.
Bước 4: Cấu hình Route Table
-
Route Table Public: thêm route
0.0.0.0/0 → Internet Gateway
. -
Route Table Private: thêm route
0.0.0.0/0 → NAT Gateway
(sau khi tạo NAT).
Bước 5: Tạo NAT Gateway
-
Tạo Elastic IP (EIP).
-
NAT Gateway đặt trong Public Subnet, gắn EIP.
Bước 6: Khởi tạo EC2 để test
-
EC2 trong Public Subnet: ping ra internet OK.
-
EC2 trong Private Subnet: không ping được internet trực tiếp, nhưng có thể update package qua NAT Gateway.
Lợi ích khi sử dụng VPC
-
Bảo mật cao: tách biệt hoàn toàn với tài nguyên của người khác.
-
Toàn quyền kiểm soát: từ dải IP đến firewall.
-
Mở rộng linh hoạt: thêm subnet, peering VPC, multi-region dễ dàng.
-
Kết nối đa dạng: hỗ trợ VPN, Direct Connect, Transit Gateway.
Best Practices khi thiết kế VPC
-
Chia public/private subnet rõ ràng.
-
Luôn dùng NAT Gateway thay vì NAT Instance.
-
Thiết kế multi-AZ để tăng độ sẵn sàng.
-
Tránh mở Security Group
0.0.0.0/0 inbound
trừ khi cần thiết. -
Bật VPC Flow Logs để giám sát traffic.
Kết luận
VPC là nền móng của mọi hạ tầng trên AWS. Một VPC được thiết kế chuẩn sẽ giúp hệ thống của bạn bảo mật, ổn định và dễ mở rộng. Nếu bạn mới bắt đầu, hãy thử triển khai một VPC cơ bản, rồi dần nâng cấp với NAT Gateway, multi-AZ và các kết nối nâng cao.