[THÀNH PHẦN MẠNG CƠ BẢN TRÊN AWS] PHẦN 3: PEERING CONNECTION, TRANSIT GATEWAY

11/11/2021 28
thanh phan aws
CODEWELL

Nằm trong chuỗi bài Thành phần cơ bản mạng trên AWS, trong phần 3 này, CO-WELL Asia sẽ tiếp tục giới thiệu đến bạn cách tạo Peering Connection, Transit Gateway.

Trước khi đọc bài viết này, bạn có thể tham khảo các bài viết trước về thành phần mạng cơ bản của AWS tại đây:

 

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

  • Peering connections: Như đã nhắc đến ở bài trước, VPC là một thành phần độc lập trên AWS, chính vì vậy, 2 VPC khác nhau không thể giao tiếp với nhau một cách bình thường. Từ đó, peering connection sinh ra để giải quyết bài toán này khi cho phép 2 VPC giao tiếp với nhau một cách bảo mật.
  • Transit gateway: Là một trung tâm chuyển tiếp các gói tin mà ta có thể sử dụng để kết nối các VPC và mạng ở local.
  • Autonomous System Number (ASN): Số hiệu mạng ASN là số thường được dùng trong các thủ tục định tuyến động trên mạng internet. ASN được thể hiện dưới dạng số nguyên.
  • Equal Cost Multi-Path (ECMP): Là cơ chế định tuyến mà trong đó gói tin được chuyển tiếp đến một đích duy nhất có thể xẩy ra qua nhiều đường dẫn tốt nhất với mức độ ưu tiên định tuyến như nhau.

 

2. Peering connection

0

Giả sử ta có 2 VPC (techsharing-vpc và test-vpc) trong cùng một AWS Account, một server A trong techsharing-vpc và một server B trong test-vpc. Để server A có thể ping được với server B ta sẽ thiết lập một peering connection giữa techsharing-vpc và test-vpc.

Bước 1: Tạo Peering connection

Mở VPC Console → Chọn Peering Connections ở menu bên trái → Chọn Create Peering Connection → Nhập và chọn thông tin cần thiết → Chọn Create Peering Connection

 

1

 

  • Peering connection name tag: Tên của peering connection để dễ nhận biết.
  • VPC (Requester): Chọn VPC yêu cầu kết nối.
  • Account: Chọn account AWS sở hữu VPC chấp nhận kết nối.
    Như vậy ta có thể thấy Peering connection cho phép kết nối đến một VPC khác không nằm trong cùng một AWS Account. Trong trường hợp này, nếu chọn ở AWS Account khác ta chỉ cần nhập AWS Account ID (12 chữ số).
  • Region: Chọn region mà VPC chấp nhận kết nối đã được tạo.
    Peering connection cũng cho phép ta kết nối đến VPC khác không cùng nằm trong một region.
  • VPC (Accepter): Chọn VPC sẽ chấp nhận kết nối.

 

Bước 2: Chấp thuận kết nối

2

 

Sau khi tạo xong peering connection thì sẽ hiển thị trạng thái là Pending Acceptance (chờ chấp thuận). Để chấp thuận kết nối ta làm như sau:

Chọn peering connection vừa tạo → Chọn Actions → Chọn Accept Request → Chọn Yes, Accept → Chọn Close

Bước 3: Cập nhập bảng định tuyến

Tiếp theo, ta cần phải cập nhật lại bảng định tuyến để các gói tin từ server A có thể đến server B.

Mở VPC Console → Chọn Route Tables ở menu bên trái → Chọn bảng định tuyến của techsharing-vpc mà server A đang ở trong đó → Chọn Routes ở tab phía dưới → Chọn Edit routes → Chọn Add route → Nhập thông tin cần thiết → Chọn Save routes

 

 

  • Destinations: dải IP của test-vpc
  • Target: Peering connection vừa tạo

Tương tự như vậy ta cập nhập bảng định tuyến của test-vpc mà server B đang ở trong đó.

 

Bước 4: Kiểm tra kết nối

Cấu hình các thứ đã xong, ta sẽ ping thử từ server A đến server B.
Không ping được, có lỗi gì đó chăng? Chúng ta cùng kiểm tra nhé.

4

Lý do là chưa mở kết nối với giao thức ICMP. Ta cần thêm vào security group của server B cho phép giao thức ICMP với nơi đến là dải IP của techsharing-vpc. Cùng thử lại nhé!

thanh-phan-aws

 

Ping thành công, lần này thì không có vấn đề gì cả.

4. Transit Gateway

 

 

Tuy nhiên, VPC peering connection chỉ là cầu nối giữa 2 VPC. Giả sử techsharing-vpc peering với test-01-vpc và techsharing-vpc cũng peering với test-02-vpc nhưng server C ở test-02-vpc không thể giao tiếp được với server B ở test-01-vpc, đây được gọi là Transitive Peering và AWS không hỗ trợ trường hợp này.

Giải pháp đơn giản là ta chỉ cần tạo peering connection giữa test-01-vpc và test-02-vpc là xong, nhưng nếu có quá nhiều VPC kết nối với nhau thì việc quản lý sẽ trở nên phúc tạp hơn rất nhiều. Từ đó, AWS đã giới thiệu dịch vụ có tên là Transit Gateway có chức năng như một trung tâm trung chuyển.

 

 

Ta sẽ tạo Transit Gateway để liên kết giữa techsharing-vpc và test-vpc thử xem nhé!

 

 

Bước 1: Tạo Transit Gateway (TGW)

Mở VPC Console → Chọn Transit Gateways ở menu bên trái → Chọn Create Transit Gateway → Nhập thông tin cần thiết → Chọn Create Transit Gateway

 

 

  • Name tag: tên của TGW để dễ nhận biết.
  • Description: mô tả về TGW.
  • Amazon side ASN: là số hiệu mạng ASN được quản lý và cấp phát bởi Amazon. Amazon khuyến cáo nên sử dụng một ASN duy nhất cho mỗi TGW khi triển khai liên vùng (multi-region).
  • DNS support: hỗ trợ dịch địa chỉ IP thành tên miền.
  • VPN ECMP support: hỗ trợ định tuyến ECMP giữa các VPN tunnel.
  • Default route table association: tự động liên kết TGW đính kém với bảng định tuyến mặc định cho TGW.
  • Default route table propagation: tự động truyền TGW đính kém đến bảng định tuyến mặc định cho TGW.
  • Multicast support: sử dụng TGW như một bộ định tuyến đa hướng.
  • Auto accept shared attachments: tự động cho phép đính kèm liên tài khoản (cross-account).

Ta chỉ cần nhập tên và mô tả của TGW còn lại có thể giữ nguyên.

Bước 2: Gắn TGW với techsharing-vpc

Mở VPC Console → Chọn Transit Gateway Attachments ở menu bên trái → Chọn Create Transit Gateway Attachment → Nhập và chọn thông tin cần thiết → Chọn Create attachment

 

 

  • Transit Gateway ID: ID của TGW vừa tạo ở bước 1.
  • Attachment type: chọn loại đính kèm là VPC, VPN hay Peering Connection. Ở ví dụ này ta sẽ chọn VPC.
  • Attachment name tag: tên của sự đính kèm để dễ nhận biết.
  • VPC ID: ID của VPC muốn đính kèm. Ở ví dụ này ta sẽ chọn techsharing-vpc.
  • Subnet IDs: ID của subnet trong VPC mà ta muốn liên kết. Mỗi một AZ sẽ chọn một subnet.

Bước 3: Gắn TGW với test-vpc

Tương tự bước 2 ta sẽ tạo một sự đính kèm giữa TGW tạo ở bước 1 và test-vpc.

Bước 4: Cập nhật bảng định tuyến của cả 2 vpc đến TGW

Tương tự như ở bước 3 của khi tạo Peering Connection, ta sẽ thêm route với đích đến là TGW được tạo ở trên với cả 2 bảng định tuyến của techsharing-vpc và test-vpc.

11

 

Bước 5: Kiểm tra

Ta sẽ thử ping từ server A đến server B. Ô kê la, đã ping thành công!

thanh-phan-aws

 

5. Chi phí (ở region Tokyo)

  • Transit Gateway:
    • Mỗi một sự đính kèm là $0.07
    • Mỗi 1GiB dữ liệu được xử lý là  $0.02
  • Peering Connection: Ở trong cùng region Tokyo không tính phí cho mỗi connection và $0.01 cho mỗi GiB được xử lý.

Như vậy với sự kết nối giữa 2 VPC và xử lý khoảng 5GiB dữ liệu một tháng thì chi phí lần lượt là:

  • Trasit Gateway: $0.07 x 2 +  $0.02 x 5 = $0.24
  • Peering Connection: $0.01 x 5 = $0.05

6. Vậy nên sử dụng Peering Connection hay Transit Gateway?

Ta có thể thấy chi phí sử dụng của Peering Connection rẻ hơn nhiều so với Transit Gateway. Nếu chỉ cần xử lý kết nối đơn giản giữa một vài VPC với nhau thì nên sử dụng Peering Connection còn nếu giữa nhiều VPC có sự kết nối phức tạp thì ta nên sử dụng Transit Gateway để tiện cho việc quản lý. Hơn nữa, Transit Gateway còn hỗ trợ kết nối giữa nhiều VPC và mạng local qua VPN.

7. Tạm kết

Thông thường một công ty có nhiều dự án (application) cùng triển khai trên AWS thì mỗi dự án sẽ được xây dựng trên một VPC riêng biệt. Giả sử có một dự án yêu cầu kết nối đến các dự án khác thì ta có thể sử dụng Peering Connection hoặc Transit Gateway để giải quyết bài toán này.

Các thành phần còn lại của AWS sẽ được giới thiệu ở phần tiếp theo, cùng chú ý đón đọc nhé!

Giới hạn của các dịch vụ:
Peering Connection 1
Transit Gateway 1

Nguồn tham khảo

Peering Connection
Transit Gateway
Giá của Peering Connection
Giá của Transit Gateway
Wiki về ECMP
ASN là gì?

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