AWS căn bản – Bài 3: VPC và các thành phần của VPC
Chào các bạn lại là mình đây, như đã nói ở bài trước ngày hôm nay chúng ta sẽ cùng tìm hiểu về VPC cũng như các thành phần của VPC nhé. Về lý thuyết có vẻ hơi dài dòng tuy nhiên phần này khá là quan trọng khi bắt đầu làm việc với AWS, cho nên các bạn ráng đọc cho người viết vui lòng hén, bởi về kiến thức thì không có cái nào gọi là dư thừa đâu nhen.
Trước khi bắt đầu vào chi tiết thì câu hỏi được đặt ra là VPC là gì? Các thành phần của VPC là gì? EC2 là gì? Security Group là gì? … Với bài viết này, sẽ giải thích cho các bạn 1 loạt khái niệm để bạn hiểu rõ hơn về chúng và dần hình tượng ra từng bước từng bước lên “Mây” của mìn hnhư nào, còn bây giờ thì bắt đầu nhé!
Amazon Virtual Private Cloud (Amazon VPC) là hệ thống mạng riêng ảo gần giống với mạng truyền thống trong các DC (Data Center) của các công ty. Khi chúng ta tạo ra một VPC đồng nghĩa với việc chúng ta đang tạo một DC trong đó sẽ có các Server ảo được định nghĩa là EC2.
Trong VPC sẽ có đầy đủ các thành phần tương tự một DC hoàn chỉnh, chúng ta có thể tạo ra một Network Topology nằm trong VPC bao gồm các IP address ranges, subnet, route table. Ngoài ra VPC cũng có chức năng đóng vai trò là Firewall điều khiển dữ liệu vào (Inbound Traffic) và dữ liệu ra (Outbound Traffic) cho hệ thống mạng của chúng ta được định nghĩa là Security Group (Stateless Firewall) hoạt động trong phạm vi Subnet và Network ACLs (Stateful Firewall) hoạt động trong phạm vi Instances EC2.
VPC cũng hổ trợ các dịch vụ giúp chúng ta mở rộng VPC của mình bằng cách kết nối chúng lại với nhau các dịch vụ hổ trợ kết nối VPC phổ biến có thể kể đến như VPN Connections, AWS Direct Connect, và VPC Peering. Ngoài việc kết nối các VPC lại với nhau các dịch vụ kể trên còn có thể kết nối giữa mỗi trường truyền thống (On-Premise) với AWS Cloud.
Không lang mang nữa, bây giờ chúng ta sẽ bắt đầu với các thành phần cơ bản của VPC. Subnet sẽ được chia làm hai loại đó là Private Subnet và Public Subnet. Vậy sự khác biệt giữa chúng là gì? Xin thưa rằng sự khác nhau cơ bản giữa chúng nằm ở Route Table. Trong khi Route Table của Private Subnet chỉ Route local (cùng CIDR) thì Route Table của Public subnet sẽ có thêm Default Route ra Internet. Khi tạo một VPC thì hệ thống sẽ yêu cầu tạo một CIDR (một địa chỉ Network chứa các Subnet)
Ví dụ chúng ta muốn chia hệ thống thành 4 subnet thì chúng ta cần tạo một CIDR có thể chứa 4 subnet đó. Để dễ hình dung thì CIDR 10.10.0.0/16 sẽ có thể chứa 4 subnet con như sau 10.10.1.0/24, 10.10.2.0/24, 10.10.3.0/24, 10.10.4.0/24. Mỗi subnet có thể nằm trên một A-Z riêng biệt để đảm bảo tính HA cho hệ thống
Tiếp theo chúng ta sẽ tiếp tục đến với cách định tuyến cho các Subnet và định tuyến các traffic ra vào Internet. Trong mỗi VPC sẽ có một bảng định tuyến riêng được gọi là Route Table. Với Route Table sẽ có 2 phần đó là địa chỉ đích muốn traffic đi đến (Destination) và mục đi thông qua để tới địa chỉ đích (Target). Chẳng hạn, ta muốn route một traffic đi Internet thì địa chỉ đích sẽ là Default Route (0.0.0.0/0) và Target sẽ là đi qua Intetnet Gateway.
Để đi được Internet ở môi trường On-Prem chúng ta cũng cần một thiết bị đóng vai trò là Internet Gateway giúp NAT các IP local thành các IP public để giao tiếp với môi trường Internet. Vậy đối vời môi trường Cloud thì AWS đã định nghĩa sẳn một thành phần được gọi là Internet Gateway (IGW) giúp nội bộ VPC của chúng ta có thể đi ra được Internet. Mỗi VPC sẽ chỉ tạo được một IGW. Các IGW sẽ chỉ giúp được các Public subnet đi Internet.
Đối với các Private Subnet muốn giao tiếp với môi trường Internet thì phải thông qua NAT Gateway và đặc điểm của NAT Gateway đó là chỉ có những EC2 bên trong Private Subnet có thể kết nối trực tiếp ra ngoài nhưng ngược lại traffic bên ngoài không thể kết nối trực tiếp với EC2 bên trong. Thay vào đó, Private Subnet mà phải thông qua EC2 nằm trong Public Subnet để kết nối. Mỗi NAT Gateway sẽ cần một IP Public để đi Internet nó được gọi là Elastic IP. NAT gateway sẽ được đặt ở Public Subnet để có thể kết nối đến Internet.
Đến đây, về cơ bản chúng ta đã tương đối làm rõ các khái niệm đã đề cập lúc đầu, nếu có bất kỳ vấn đề gì chưa hiểu hay có thêm câu hỏi gì về các các khái niệm trên các bạn cứ bình luận bên dưới nhé! Ở bài kế tiếp, chúng ta sẽ đi sâu vào AWS với khái niệm Auto Scaling Group, vậy Auto Scaling Group là gì và tính năng nó ra sao, hẹn mọi người ở bài tiếp theo nhé!