[THÀNH PHẦN MẠNG CƠ BẢN TRÊN AWS] PHẦN 2: INTERNET GATEWAY, NAT GATEWAY, ROUTE TABLES

14/04/2021 1765
thanh-phan-mang-co-ban-aws
CODEWELL

Nằm trong chuỗi bài Thành phần cơ bản mạng trên AWS, trong phần 2 này, CO-WELL Asia sẽ tiếp tục gửi đến bạn cách tạo Internet Gateway, NAT Gateway và Route Tables.

Trước khi đọc bài viết này, bạn có thể tham khảo cách tạo VPC, Subnet trong bài viết [THÀNH PHẦN MẠNG CƠ BẢN TRÊN AWS]: PHẦN 1: TẠO VPC, SUBNET 

 

1. Một số khái niệm cơ bản

  • Internet Gateway: là một thành phần của VPC, cho phép giao tiếp giữa VPC và Internet. Nói một cách dễ hiểu hơn là một server trong VPC muốn giao tiếp được với Internet thì cần có Internet Gateway.
  • Network Address Translation (NAT): có nghĩa là “dịch địa chỉ mạng”. Như chúng ta đều biết, để kết nối với Internet thì thiết bị cần có một Public IP, nhưng các thiết bị trong mạng private thì không. Vì vậy, NAT sẽ dịch địa chỉ Private IP sang Public IP để kết nối tới Internet nhưng vẫn đảm bảo tính bảo mật cho thiết bị ở mạng private.

 

NAT

  • NAT Gateway: là một thành phần cho phép server ảo trong mạng private có thể kết nối tới Internet hoặc dịch vụ khác của AWS nhưng lại ngăn không cho Internet kết nối đến server đó.
  • NAT Instance: là một server ảo được chúng ta tạo ra và quản lý có chức năng tương tự như NAT Gateway. Bạn có thể tham khảo sự khác nhau giữa NAT Gateway và NAT Instance được mô tả chi tiết tại đây
  • Elastic IP (EIP): là một địa chỉ public IPv4, có thể kết nối được từ Internet.
  • Route table: là bảng định tuyến, bao gồm một tập hợp các rule (được gọi là route), được sử dụng để xác định đường đi, nơi đến của các gói tin từ mạng con hay gateway.

Ở bài viết Phần 1 chúng ta đã tạo ra 4 subnet, 2 public subnet và 2 private subnet. Vậy public subnet và private subnet là gì?

  • Public subnet: là một mạng con được định tuyến tới Internet Gateway và một server ảo trong public subnet có thể giao tiếp được với Internet.
  • Private subnet: trái ngược với Public subnet, private subnet là một mạng con không được định tuyến tới Internet Gateway và không thể kết nối tới server trong private subnet từ Internet. Nhưng ta có thể định tuyến mạng con này đến NAT Gateway hay NAT Instance.

 

2. Cấu hình Internet Gateway (IGW)

Bước 1: Tạo IGW

Mở AWS Console → Chọn Services ở phía trên bên trái → Trong mục Networking & Content Delivery → Chọn VPC → Chọn Internet Gateways ở menu bên trái → Chọn Create internet gateway → Nhập tên của gateway → Create internet gateway

 

igw

 

(Ở phần Name tag, hãy đặt tên cho Internet Gateway để dễ nhận biết)

 

Bước 2: Gắn IGW vào VPC

Gắn IGW với VPC đã được tạo theo hướng dẫn Phần 1.
Chọn IGW vừa tạo → Chọn Actions → Chọn Attach to VPC → Chọn VPC đã tạo ở bài trước → Attach internet gateway

AttachIGW

AttachIGW 2

3. Cấu hình NAT Gateway

3.1. Tạo NAT Gateway

Chọn NAT Gateways ở menu bên trái → Chọn Create NAT gateway → Nhập các thông tin cần thiết → Create NAT gateway

 

NAT GW

Trong đó

  • Name tag: hãy đặt tên cho NAT gateway để dễ nhận biết
  • Subnet: ở mục này ta sẽ chọn một public subnet đã tạo ở bài viết phần 1. NAT gateway sẽ kết nối tới Internet, vì vậy NAT gateway sẽ ở trong public subnet.
  • Elastic IP allocation ID: để NAT gateway có thể kết nối với Internet thì nó cần một Public IP. Do vậy ta cần assign EIP bằng cách chọn “Allocate Elastic IP

 

3.2. Chi phí của NAT Gateway

Chi phí của NAT Gateway: tùy thuộc vào khu vực địa lý và lượng dữ liệu được truyền qua khác nhau mà NAT gateway sẽ có chi phí khác nhau.

Ví dụ: Ở Tokyo và 5GiB dữ liệu được truyền qua mỗi tháng thì NAT gateway sẽ tốn khoảng  $45.47/ month ~ hơn 1 triệu VNĐ/ tháng, một mức phí tương đối đắt.

 

4. Cấu hình NAT Instance

4.1. Tạo NAT Instance

Bước 1: Tạo Security Group

Trước hết ta sẽ tạo security group cho NAT Instance với mục đích chỉ cho phép nhận traffic từ private subnet qua cổng 80 và 443; cho phép traffic đi ra internet qua cổng 80 và 443. Bạn có thể tham khảo hướng dẫn chi tiết tạo security group cho NAT Instance tại đây. Còn Security group là gì sẽ được giải thích kỹ hơn ở phần sau.

Bước 2: Tạo NAT instance

Ta sẽ tạo server ảo làm NAT instance đặt bên trong một public subnet của VPC đã tạo theo hướng dẫn Phần 1 (Lưu ý cho phép tự động gán Public IP) và sử dụng security group đã tạo ở trên. Tham khảo hướng dẫn chi tiết tạo NAT instance tại đây.

 

4.2. Chi phí 

Chi phí của NAT instance khác nhau tùy thuộc vào type của instance mà ta sử dụng. Giả sử ở đây ta sử dụng instace có type – t2.small (1vCPu, 2GiB Memory), storage – 10GiB và luôn ở trạng thái running, với cùng 5GiB dữ liệu được truyền qua thì sẽ tốn khoảng $23.85/tháng – 550.000VNĐ/tháng.

 

5. Cấu hình bảng định tuyến

Sau khi đã có VPC, Subnte, Internet Gateway, NAT Gateway/NAT Instance thì ta sẽ tạo bảng định tuyến định để nghĩa đường đi của các gói tin.

5.1. Cấu hình Public Route Table

Bước 1: Tạo Public route table

Public route table cho phép các thành phần trong public subnet có thể giao tiếp được với internet.
Mở VPC Console → Chọn Route Tables ở menu bên trái → Chọn Create route table → Nhập thông tin cần thiết → Chọn Create

pubRTB

Trong đó

  • Name tag: tên của bảng định tuyến để dễ nhận biết
  • VPC: chọn VPC được sử dụng cho bảng định tuyến

 

Bước 2: Thêm route

Chọn public route table vừa được tạo → Chọn Routes ở tap phía dưới → Chọn Edit routes → Chọn Add route → Nhập thông tin → Chọn Save routes

pubRoute

Trong đó

  • Destination: 0.0.0.0/0 (cho phép bất cứ đâu đến từ internet)
  • Target: Internet gateway tạo ở mục 3

 

Bước 3: Gắn public subnet vào bảng định tuyến

Chọn public route table vừa được tạo → Chọn Subnet Associations ở tap phía dưới → Chọn Edit subnet associations → Chọn 2 public subnet → Chọn Save

pubSubnet

 

5.2. Cấu hình Private Route Table

Tương tự như public route table, ta sẽ tạo private route table với route đến từ bất cứ đâu trên Internet và target là NAT gateway hoặc NAT instance. Sau đó gắn 2 private subnet vào route table này.

6. Tạm kết

Ta có thể thấy so với việc sử dụng NAT Gateway thì NAT Instance có chi phí rẻ hơn gần một nửa. Tuy nhiên tùy thuộc vào type của instance mà chi phí có thể thay đổi, hơn nữa ta có thể dừng NAT instance khi không cần thiết để tiết kiệm chi phí. Nhưng về băng thông thì NAT Gateway hỗ trợ lên tới 45Gb/s còn NAT Instance phụ thuộc vào type của instance. (Ví dụ: với t2.small rơi vào khoảng 125Mb/s). Tùy thuộc vào đặc điểm của từng dự án mà ta sẽ lựa chọn phương án thích hợp và tối ưu nhất.

Còn một điều mình muốn nói đến là việc thiết kế VPC có tính sẵn sàng cao trên AWS ta có thể tạo thêm một NAT GW/NAT Instance ở public subnet còn lại. Khi một AZ bị down thì các thành phần trong private subnet vẫn có thể kết nối tới Internet bình thường thông qua NAT GW/NAT Instance ở AZ còn lại.

Vậy là trong 2 phần đầu, chúng ta đã đi qua cách tạo VPC, Subnet, IGW, NAT GW cũng như bảng định tuyến trong VPC. Hẹn gặp lại các bạn ở các phần tiếp theo của chuỗi bài Thành Phần Mạng Cơ Bản trên AWS nhé!

 

Tham khảo

https://calculator.aws/#/createCalculator
https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-comparison.html
https://docs.aws.amazon.com/vpc/latest/userguide/VPC_NAT_Instance.html

 

Trần Hữu Tài – CO-WELL Asia

 
Join us