AWS VPC: Hướng Dẫn Chi Tiết Về Virtual Private Cloud
Giới Thiệu
Amazon Virtual Private Cloud (VPC) là một trong những dịch vụ nền tảng quan trọng nhất trong AWS, cho phép bạn tạo ra một môi trường mạng riêng biệt, được cô lập logic trong AWS cloud. Hãy nghĩ về nó như một data center riêng của bạn trong cloud, nơi bạn có toàn quyền kiểm soát môi trường mạng ảo, bao gồm dải địa chỉ IP, subnets, route tables và network gateways.
Khi bạn triển khai các tài nguyên AWS như EC2 instances, RDS databases, hay Lambda functions, chúng đều chạy bên trong một VPC. Việc hiểu rõ VPC là vô cùng quan trọng đối với bất kỳ chuyên gia AWS nào, bởi vì nó là xương sống của kiến trúc bảo mật hạ tầng cloud và network architecture.
Nói một cách đơn giản:
VPC = Mạng riêng của bạn trong AWS, nơi bạn kiểm soát mọi thứ: dải IP, subnets, routing, firewalls và kết nối.
Dù bạn là một DevOps engineer dày dạn kinh nghiệm thiết kế ứng dụng đa tầng, hay là một developer đang triển khai ứng dụng đầu tiên, việc nắm vững các khái niệm VPC là thiết yếu để xây dựng các giải pháp cloud an toàn, có khả năng mở rộng và tuân thủ các best practices.
Các Tính Năng Cốt Lõi
1. IP Address Management (IPAM)
VPC cho phép bạn định nghĩa dải địa chỉ IP riêng bằng cách sử dụng ký hiệu CIDR (Classless Inter-Domain Routing). Bạn có thể chọn từ các dải IP private (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) hoặc thậm chí đưa địa chỉ IP public của riêng bạn vào. Mỗi VPC có thể có một CIDR block chính và tối đa bốn CIDR blocks phụ, mang lại sự linh hoạt khi hạ tầng của bạn phát triển.
Lưu ý quan trọng: Hãy lập kế hoạch cẩn thận để tránh trùng lặp CIDR blocks, đặc biệt khi có kế hoạch kết nối hybrid. Một lỗi phổ biến là chọn CIDR block quá nhỏ (như /24), điều này sẽ hạn chế khả năng mở rộng. Hãy cân nhắc sử dụng /16 cho các production VPCs.
2. Subnets (Mạng Con)
Subnets là các phân đoạn nhỏ hơn của dải địa chỉ IP trong VPC của bạn. Chúng cho phép bạn phân chia mạng thành các phần nhỏ hơn, dễ quản lý hơn. Mỗi subnet tồn tại trong một Availability Zone duy nhất, giúp bạn thiết kế kiến trúc có tính sẵn sàng cao. Bạn có thể tạo:
- Public Subnets: Các tài nguyên có địa chỉ IP public có thể giao tiếp trực tiếp với internet
- Private Subnets: Các tài nguyên không có quyền truy cập internet trực tiếp, lý tưởng cho databases và internal services
Best Practice: Sử dụng subnet segmentation theo chức năng:
- Public subnets: Load balancers, bastion hosts
- Private subnets: Application servers
- Private isolated subnets: Databases
3. Route Tables (Bảng Định Tuyến)
Route tables chứa các rules (routes) xác định nơi mà network traffic được điều hướng đến. Mỗi subnet phải được liên kết với một route table, kiểm soát việc định tuyến traffic. Bạn có thể tạo custom route tables để triển khai các chiến lược định tuyến phức tạp, chẳng hạn như điều hướng traffic qua NAT gateways, virtual private gateways, hoặc transit gateways.
4. Internet Gateway (IGW)
Internet Gateway là một VPC component được mở rộng theo chiều ngang, dự phòng và có tính sẵn sàng cao, cho phép giao tiếp giữa VPC của bạn và internet. Nó cung cấp một đích trong route tables cho internet-routable traffic và thực hiện network address translation (NAT) cho các instances có địa chỉ IP public.
5. NAT Gateway và NAT Instance
NAT (Network Address Translation) gateways cho phép các instances trong private subnets kết nối với internet hoặc các AWS services khác trong khi ngăn chặn các kết nối inbound từ internet.
- NAT Gateway: Được quản lý bởi AWS, cung cấp high availability và bandwidth cao
- NAT Instance: Là các EC2 instances mà bạn tự quản lý (phương pháp legacy)
Best Practice: Sử dụng Managed NAT Gateway thay vì NAT Instances vì tính resilient, autoscaling và bảo trì đơn giản hơn. Dù tốn kém hơn nhưng đây là best practice.
Cost Optimization Tip: Deploy NAT Gateways ở nhiều AZs để tránh single points of failure. Cấu hình route tables sao cho mỗi private subnet định tuyến qua NAT Gateway trong cùng AZ.
6. Security Groups
Security groups hoạt động như virtual firewalls ở instance level. Chúng kiểm soát inbound và outbound traffic bằng cách sử dụng stateful rules. Khi bạn cho phép inbound traffic, return traffic sẽ tự động được cho phép, bất kể outbound rules. Security groups chỉ hỗ trợ allow rules—bạn không thể tạo deny rules.
Best Practice: Security groups nên là tuyến phòng thủ đầu tiên của bạn. Chúng stateful, dễ quản lý hơn và ít gây lỗi hơn NACLs. Sử dụng NACLs chỉ trong các trường hợp đặc biệt như block IP ranges.
7. Network Access Control Lists (NACLs)
NACLs cung cấp một lớp bảo mật bổ sung ở subnet level. Không giống như security groups, NACLs là stateless, nghĩa là bạn phải explicitly cho phép cả inbound và outbound traffic. Chúng hỗ trợ cả allow và deny rules và được đánh giá theo thứ tự số rule.
8. VPC Peering
VPC Peering cho phép bạn kết nối hai VPCs, cho phép các tài nguyên trong các VPCs khác nhau giao tiếp với nhau bằng private IP addresses. Peering connections có thể được thiết lập giữa các VPCs trong cùng account, các accounts khác nhau, hoặc thậm chí các AWS regions khác nhau (inter-region peering).
9. VPN và Direct Connect
- Virtual Private Gateway (VGW): Cho phép VPN connections giữa on-premises network và AWS VPC
- AWS Direct Connect: Cung cấp dedicated, private network connections từ premises của bạn đến AWS, mang lại hiệu suất mạng ổn định hơn so với kết nối qua internet
Use Case: Các công ty kết nối on-premises networks với AWS sử dụng VPN hoặc Direct Connect. Use case: migration dần dần, disaster recovery, hoặc hybrid workloads.
10. VPC Endpoints
VPC Endpoints cho phép bạn kết nối riêng tư VPC của mình với các supported AWS services mà không cần internet gateway, NAT device, VPN connection, hoặc AWS Direct Connect. Có hai loại:
- Interface Endpoints: Được hỗ trợ bởi AWS PrivateLink, sử dụng elastic network interfaces với private IPs
- Gateway Endpoints: Route table entries cho S3 và DynamoDB (miễn phí)
Cost Optimization: Sử dụng Gateway Endpoints cho S3 và DynamoDB để tránh NAT Gateway charges và cải thiện performance.
11. VPC Flow Logs
VPC Flow Logs capture thông tin về IP traffic đi vào và ra khỏi network interfaces trong VPC của bạn. Tính năng này vô cùng quý giá cho network monitoring, troubleshooting connectivity issues và security analysis. Logs có thể được publish đến CloudWatch Logs, S3, hoặc Kinesis Data Firehose.
Best Practice: Luôn enable Flow Logs cho production VPCs. Gửi logs đến S3 để lưu trữ và phân tích dài hạn. Sử dụng CloudWatch Logs Insights hoặc third-party tools để phân tích traffic patterns và phát hiện anomalies.
12. Transit Gateway
AWS Transit Gateway hoạt động như một cloud router, kết nối nhiều VPCs và on-premises networks qua một central hub. Điều này đơn giản hóa kiến trúc mạng và giảm số lượng peering connections cần thiết trong môi trường multi-VPC phức tạp.
Best Practice: Khi kết nối nhiều VPCs, chọn Transit Gateway thay vì peering để có khả năng mở rộng tốt hơn.
Yêu cầu đăng nhập
Vui lòng đăng nhập để truy cập nội dung này
Additional Resources
Course Guide
Comprehensive PDF guide with examples
GitHub Repository
Example code for all lessons
Discussion
Have a question about this lesson? Post it here and get answers from instructors and peers.
