search

AWS Transit Gateway: Hướng dẫn kết nối 2 VPC từ A–Z

calendar_today Đăng ngày: 24/10/2026

Để kết nối 2 VPC bằng AWS Transit Gateway, trước tiên, tạo một Transit Gateway và tạo attachment để kết nối cả hai VPC với TGW. Tiếp theo, cấu hình route table của mỗi VPC bằng cách thêm route đến CIDR của VPC còn lại, với target là Transit Gateway. Cuối cùng, cập nhật Security Group để cho phép lưu lượng ICMP và sử dụng private IP của các EC2 instance để kiểm tra kết nối bằng lệnh ping.

AWS Transit Gateway hoạt động như thế nào?

AWS Transit Gateway (TGW) hoạt động như một router trung tâm, cho phép kết nối nhiều VPC thông qua mô hình hub-and-spoke. Thay vì kết nối trực tiếp từng cặp VPC, bạn chỉ cần kết nối mỗi VPC với TGW thông qua một attachment.

Với hai VPC, bạn có thể sử dụng VPC Peering để thiết lập kết nối. Tuy nhiên, khi số lượng VPC tăng lên 5–10 hoặc nhiều hơn, việc quản lý các kết nối peering riêng lẻ sẽ trở nên phức tạp. Transit Gateway giúp đơn giản hóa kiến trúc bằng cách tập trung kết nối và quản lý định tuyến tại một điểm duy nhất.

Các khái niệm cần nắm

  • Attachment: Kết nối một VPC với Transit Gateway, cho phép lưu lượng mạng đi qua TGW.
  • TGW Route Table: Bảng định tuyến bên trong Transit Gateway, xác định lưu lượng sẽ được chuyển tiếp đến attachment nào dựa trên địa chỉ đích.
  • Association: Xác định attachment nào sử dụng TGW Route Table để tra cứu tuyến đường khi gửi lưu lượng qua TGW.
  • Propagation: Cho phép các tuyến đường, thường là CIDR của VPC, được tự động quảng bá vào TGW Route Table để Transit Gateway có thể định tuyến đến mạng tương ứng.
  • VPC Route Table: Bảng định tuyến bên trong VPC. Bạn vẫn cần thêm route với destination là CIDR của VPC đích và target là Transit Gateway để lưu lượng được chuyển đến TGW. Transit Gateway không tự động thêm các route này vào VPC Route Table.

Luồng hoạt động tổng quát

Khi EC2 trong VPC1 gửi lưu lượng đến EC2 trong VPC2, lưu lượng sẽ đi theo trình tự:

  1. EC2 trong VPC1 gửi gói tin đến private IP của EC2 trong VPC2.
  2. VPC Route Table của VPC1 xác định route đến CIDR của VPC2 và chuyển gói tin đến TGW.
  3. TGW tra cứu TGW Route Table được liên kết với attachment của VPC1 để xác định attachment đích.
  4. TGW chuyển tiếp gói tin qua attachment của VPC2.
  5. VPC Route Table của VPC2 định tuyến gói tin đến EC2 đích.

Kiến trúc

Sơ đồ logic:

VPC-A (10.10.0.0/16)                         VPC-B (10.20.0.0/16)
Public subnet 10.10.1.0/24                   Private subnet 10.20.1.0/24
EC2-A (có public IP)  ---- TGW ----------->  EC2-B (chỉ private IP)

Bước 1: Tạo VPC A và VPC B

Vào VPC Console → Your VPCs → Create VPC → VPC and more.

VPC A (có public subnet để SSH từ máy bạn):

Mục Giá trị
Name tag auto-generation Tích Auto-generate, nhập lab-tgw-a
IPv4 CIDR block 10.10.0.0/16
IPv6 CIDR block No IPv6 CIDR block
Tenancy Default
Number of Availability Zones 1
Number of public subnets 1
Number of private subnets 0
Customize subnets CIDR blocks Public subnet: 10.10.1.0/24
NAT gateways None
VPC endpoints None
DNS options Tích cả Enable DNS hostnames và Enable DNS resolution

Nhấn Create VPC và đợi workflow báo hoàn tất.

Tạo VPC A

VPC B (hoàn toàn private):

Mục Giá trị
Name tag auto-generation Tích Auto-generate, nhập lab-tgw-b
IPv4 CIDR block 10.20.0.0/16
Number of Availability Zones 1 (chọn cùng AZ với VPC A)
Number of public subnets 0
Number of private subnets 1
Customize subnets CIDR blocks Private subnet: 10.20.1.0/24
NAT gateways None
VPC endpoints None
DNS options Tích cả hai

Nhấn Create VPC.

Tạo VPC B

 

Bước 2: Tạo Security Group

Security Group cho VPC A (lab-tgw-sg-a, VPC lab-tgw-a-vpc), inbound:

Type Source
All traffic 10.20.0.0/16

Security Group cho VPC B (lab-tgw-sg-b, VPC lab-tgw-b-vpc), inbound:

Type Source
All traffic 10.10.0.0/16

Bước 3: Tạo Transit Gateway

Vào VPC Console → Transit gateways → Create transit gateway:

  • Name tag: lab-tgw
  • Description: Transit Gateway for lab 2 VPC
  • Amazon side ASN: giữ mặc định
  • DNS support: Enable
  • Bỏ chọn Default route table association
  • Bỏ chọn Default route table propagation
  • Các tùy chọn còn lại giữ mặc định

Nhấn Create transit gateway và đợi trạng thái chuyển sang Available (khoảng 1–3 phút).

Tạo aws transit gateway

Bước 4: Tạo Transit Gateway Attachment

Attachment là “dây nối” thật sự giữa VPC và TGW. Mỗi VPC cần một attachment.

Vào Transit gateway attachments → Create transit gateway attachment, tạo 2 lần:

Attachment A

  • Name tag: lab-tgw-att-a
  • Transit gateway ID: lab-tgw
  • Attachment type: VPC
  • VPC ID: lab-tgw-vpc-a
  • Subnet IDs: lab-tgw-subnet-a-public

Attachment B

  • Name tag: lab-tgw-att-b
  • Transit gateway ID: lab-tgw
  • Attachment type: VPC
  • VPC ID: lab-tgw-vpc-b
  • Subnet IDs: lab-tgw-subnet-b-private

Tạo transit gateway attachment

Bước 5: Cấu hình Transit Gateway Route Table (Association và Propagation)

Nhớ đơn giản: Association = attachment tra route ở bảng nào, Propagation = attachment đẩy CIDR của mình vào bảng nào.

Tạo route table: vào Transit gateway route tables → Create transit gateway route table:

  • Name tag: lab-tgw-rt-main
  • Transit gateway ID: lab-tgw

Cấu hình Transit Gateway Route Table

Tạo Association: chọn lab-tgw-rt-main → tab Associations → Create association, lần lượt thêm lab-tgw-att-a và lab-tgw-att-b.

Tạo Association

Tạo Association

Tạo Propagation: tab Propagations → Create propagation, lần lượt thêm lab-tgw-att-a và lab-tgw-att-b.

Kiểm tra kết quả: mở tab Routes, bạn phải thấy 2 route dạng propagated:

CIDR Attachment Type
10.10.0.0/16 lab-tgw-att-a propagated
10.20.0.0/16 lab-tgw-att-b propagated

 

Bước 6: Cấu hình route trong VPC trỏ về Transit Gateway

Vào Route tables → Edit routes:

lab-tgw-rt-a (thêm vào route sẵn có):

Destination Target
10.20.0.0/16 Transit Gateway → lab-tgw

lab-tgw-rt-b:

Destination Target
10.10.0.0/16 Transit Gateway → lab-tgw

Cấu hình route trong VPC trỏ về Transit Gateway

Dọn dẹp tài nguyên sau lab như thế nào?

Phải xóa theo đúng thứ tự, vì TGW không xóa được khi vẫn còn attachment. Mình ghi theo thứ tự an toàn nhất:

  1. Xóa Transit Gateway Attachments: lab-tgw-att-a, lab-tgw-att-b (Actions → Delete). Đợi trạng thái chuyển sang Deleted, thường 1–2 phút.
  2. Xóa Transit Gateway Route Table: lab-tgw-rt-main.
  3. Xóa Transit Gateway: lab-tgw (Actions → Delete transit gateway).
  4. Terminate 2 EC2: lab-tgw-ec2-a, lab-tgw-ec2-b.
  5. Xóa Security Group: lab-tgw-sg-a, lab-tgw-sg-b.
  6. Xóa Internet Gateway: detach lab-tgw-igw-a khỏi VPC A rồi delete.
  7. Xóa Subnet và Route Table (nếu cần), sau đó xóa 2 VPC.