AWS - SOA-C02

(SOA-C02)Tổng quan về VPC Peering: Kết nối mạng ảo trên nền tảng đám mây

VPC Peering là một tính năng quan trọng của Amazon Web Services (AWS) cho phép kết nối hai Virtual Private Cloud (VPC) với nhau, giúp các tài nguyên trong hai VPC giao tiếp trực tiếp thông qua địa chỉ IP riêng. Hãy cùng tìm hiểu sâu về AWS VPC Peering, cách thức hoạt động, triển khai và các ứng dụng thực tế.

VPC Peering trong AWS là gì?

AWS VPC Peering là kết nối mạng giữa hai VPC cho phép định tuyến lưu lượng giữa chúng bằng cách sử dụng địa chỉ IP riêng. Các instance trong hai VPC kết nối với nhau có thể giao tiếp như thể chúng nằm trong cùng một mạng. Kết nối này được thiết lập qua hạ tầng của AWS, không đi qua internet hoặc gateway, đảm bảo băng thông cao và độ trễ thấp.

Đặc điểm chính của AWS VPC Peering

  • Kết nối non-transitive: Nếu VPC A kết nối với VPC B, và VPC B kết nối với VPC C, thì VPC A không thể giao tiếp với VPC C thông qua VPC B.
  • Kết nối trong và ngoài region: Hỗ trợ peering giữa các VPC trong cùng region hoặc khác region.
  • Kết nối giữa các tài khoản AWS: Có thể thiết lập giữa các VPC thuộc các tài khoản AWS khác nhau.
  • Không có Single Point of Failure: Không có thành phần gateway trung gian nên không tồn tại điểm lỗi đơn.
  • Giới hạn: Mỗi VPC có thể có tối đa 125 kết nối peering hoạt động cùng lúc.

Các trường hợp sử dụng phổ biến

  1. Tách biệt môi trường: Kết nối các môi trường phát triển, thử nghiệm và sản xuất riêng biệt.
  2. Chia sẻ tài nguyên: Chia sẻ dịch vụ trung tâm như cơ sở dữ liệu, hệ thống file, dịch vụ xác thực.
  3. Kết nối các tài khoản AWS: Kết nối các VPC từ các tài khoản AWS khác nhau trong tổ chức.
  4. Kiến trúc microservices: Triển khai các dịch vụ độc lập trên các VPC riêng.
  5. Mở rộng CIDR: Khi một VPC cần thêm không gian IP mà không thể mở rộng dải CIDR hiện tại.

Cách thức hoạt động của VPC Peering

Khi thiết lập VPC Peering, AWS tạo một kết nối mạng ảo giữa hai VPC. Lưu lượng mạng sẽ đi trực tiếp qua hạ tầng của AWS, không qua internet công cộng hay các thiết bị trung gian nào khác. Để kết nối peering hoạt động, phải cập nhật bảng định tuyến (route tables) của cả hai VPC để định tuyến lưu lượng đến dải IP của VPC đối tác thông qua kết nối peering.

Hướng dẫn thiết lập VPC Peering trong AWS

1. Khởi tạo kết nối peering

Yêu cầu: Hai VPC với các dải CIDR không chồng chéo
VPC A: 10.0.0.0/16
VPC B: 172.16.0.0/16

Trên AWS Console:

  1. Điều hướng đến VPC Dashboard
  2. Chọn “Peering Connections” từ menu bên trái
  3. Nhấp “Create Peering Connection”
  4. Nhập thông tin:
    • Tên kết nối peering (ví dụ: “VPC-A-to-VPC-B”)
    • VPC Requester (VPC yêu cầu kết nối – VPC A)
    • VPC Accepter (VPC nhận kết nối – VPC B)
    • Tài khoản Accepter (tài khoản của bạn hoặc tài khoản khác)
    • Region của Accepter (cùng region hoặc khác region)
  5. Nhấp “Create Peering Connection”

2. Chấp nhận yêu cầu peering

Nếu VPC accepter thuộc cùng một tài khoản AWS:

  1. Chọn kết nối peering vừa tạo
  2. Từ menu Actions, chọn “Accept Request”
  3. Xác nhận và nhấp “Accept Request”

Nếu VPC accepter thuộc tài khoản AWS khác:

  1. Đăng nhập vào tài khoản AWS chứa VPC accepter
  2. Điều hướng đến VPC Dashboard > Peering Connections
  3. Bạn sẽ thấy kết nối peering đang ở trạng thái “Pending Acceptance”
  4. Chọn kết nối và từ menu Actions, chọn “Accept Request”

3. Cập nhật bảng định tuyến

Sau khi kết nối peering được thiết lập, cần cập nhật bảng định tuyến của cả hai VPC để cho phép lưu lượng giữa chúng:

Cập nhật bảng định tuyến cho VPC A:

  1. Điều hướng đến VPC Dashboard > Route Tables
  2. Chọn bảng định tuyến liên kết với subnet trong VPC A
  3. Chọn tab “Routes” và nhấp “Edit routes”
  4. Nhấp “Add route”
  5. Destination: Nhập CIDR block của VPC B (172.16.0.0/16)
  6. Target: Chọn “Peering Connection” và chọn ID kết nối peering đã tạo
  7. Nhấp “Save routes”

Cập nhật bảng định tuyến cho VPC B:

  1. Chọn bảng định tuyến liên kết với subnet trong VPC B
  2. Thêm route mới với:
    • Destination: CIDR block của VPC A (10.0.0.0/16)
    • Target: ID kết nối peering đã tạo
  3. Lưu thay đổi

4. Cập nhật Security Groups và Network ACLs

Đảm bảo Security Groups và Network ACLs cho phép lưu lượng mạng giữa các instance trong hai VPC. Ví dụ:

Cập nhật Security Group trong VPC A:

  • Thêm quy tắc inbound cho phép lưu lượng từ CIDR block của VPC B (172.16.0.0/16)

Cập nhật Security Group trong VPC B:

  • Thêm quy tắc inbound cho phép lưu lượng từ CIDR block của VPC A (10.0.0.0/16)

Cách kiểm tra kết nối VPC Peering

Sau khi thiết lập, bạn có thể kiểm tra kết nối bằng cách:

  1. Sử dụng ping: Từ EC2 instance trong VPC A, ping đến EC2 instance trong VPC B (đảm bảo ICMP được cho phép trong security groups)
  2. Telnet: Kiểm tra kết nối đến các port cụ thể
  3. Traceroute: Xem lộ trình mạng giữa hai instance
  4. Test kết nối ứng dụng: Đảm bảo ứng dụng có thể giao tiếp giữa các instance

VPC Peering với các Region khác nhau

AWS hỗ trợ Inter-Region VPC Peering, cho phép kết nối các VPC ở các region AWS khác nhau:

Những lưu ý khi sử dụng Inter-Region VPC Peering:

  1. Mã hóa lưu lượng: AWS tự động mã hóa lưu lượng giữa các region
  2. Chi phí: Có phí dữ liệu truyền giữa các region
  3. Độ trễ cao hơn: Lưu lượng phải di chuyển qua khoảng cách địa lý xa hơn
  4. Không hỗ trợ IPv6: Chỉ các địa chỉ IPv4 được hỗ trợ trong một số trường hợp

Các giới hạn của AWS VPC Peering

  1. CIDR Blocks không chồng chéo: Các VPC không thể có dải CIDR chồng chéo nhau
  2. Non-Transitive: Không hỗ trợ định tuyến bắc cầu
  3. Giới hạn số lượng: Tối đa 125 kết nối peering/VPC
  4. DNS Resolution: Theo mặc định, DNS hostnames không được phân giải qua kết nối peering (nhưng có thể bật tính năng này)
  5. VPC Endpoint Services: Một số dịch vụ VPC Endpoint không thể truy cập qua kết nối peering

So sánh VPC Peering với các giải pháp kết nối AWS khác

Tính năngVPC PeeringAWS Transit GatewayAWS PrivateLinkDirect Connect
Mục đích chínhKết nối trực tiếp giữa 2 VPCHub-and-spoke kết nối nhiều VPCChia sẻ dịch vụ không cần kết nối mạngKết nối mạng on-premise với AWS
Transitive RoutingKhôngKhôngCó (với Transit Gateway)
Số lượng kết nối125/VPCHàng nghìn kết nốiKhông giới hạnGiới hạn bởi bandwidth
Chi phíMiễn phí (trong region)Cao hơnDựa trên sử dụngCao nhất
Độ phức tạpThấpTrung bìnhThấpCao
Sử dụng tốt nhấtKết nối 1-1 giữa các VPCKiến trúc hub-spoke phức tạpChia sẻ dịch vụ cụ thểKết nối hybrid cloud

Các mẫu thiết kế với VPC Peering

1. Mô hình hub-and-spoke với VPC Peering

      VPC-Shared (Hub)
       /    |    \
      /     |     \
VPC-Dev  VPC-Test  VPC-Prod

Trong mô hình này, VPC-Shared chứa các dịch vụ dùng chung như Active Directory, hệ thống giám sát, và được kết nối với mỗi VPC môi trường thông qua VPC Peering riêng biệt.

2. Mô hình peering toàn phần (full-mesh)

VPC-1 <----> VPC-2
  ^           ^
  |           |
  v           v
VPC-3 <----> VPC-4

Mỗi VPC được kết nối với tất cả các VPC khác. Phù hợp cho số lượng VPC nhỏ yêu cầu kết nối đầy đủ.

3. Mô hình kết hợp nhiều tài khoản AWS

Account A      Account B
  VPC-A <-----> VPC-B
    ^
    |
    v
Account C
  VPC-C

Kết nối các VPC từ các tài khoản AWS khác nhau trong một tổ chức.

Các bước khắc phục sự cố kết nối VPC Peering

  1. Kiểm tra trạng thái kết nối: Đảm bảo kết nối ở trạng thái “Active”
  2. Kiểm tra bảng định tuyến: Xác nhận các route đã được thêm chính xác vào cả hai VPC
  3. Kiểm tra CIDR blocks: Đảm bảo không có chồng chéo
  4. Kiểm tra Security Groups và NACLs: Đảm bảo chúng không chặn lưu lượng
  5. Kiểm tra DNS Resolution: Nếu gặp vấn đề với phân giải DNS, kiểm tra cài đặt DNS resolution cho kết nối peering
  6. Kiểm tra giới hạn MTU: Đôi khi các vấn đề kết nối có thể do MTU không phù hợp

Các biện pháp bảo mật cho VPC Peering

  1. Tuân thủ nguyên tắc đặc quyền tối thiểu: Chỉ cho phép lưu lượng cần thiết giữa các VPC
  2. Security Groups: Cấu hình chặt chẽ trên mỗi instance
  3. Network ACLs: Thêm lớp bảo vệ ở cấp subnet
  4. Flow Logs: Bật VPC Flow Logs để giám sát lưu lượng
  5. Đánh giá định kỳ: Rà soát định kỳ các kết nối peering để đảm bảo chúng vẫn cần thiết
  6. Tài liệu chi tiết: Ghi lại mục đích và thông tin chi tiết về mỗi kết nối peering

Quản lý chi phí

Mặc dù AWS không tính phí cho VPC Peering trong cùng region, nhưng vẫn có chi phí liên quan:

  1. Data transfer giữa các region: Phí cho dữ liệu truyền giữa các region qua kết nối Inter-Region Peering
  2. Data transfer ra internet: Nếu dữ liệu cuối cùng được định tuyến ra internet
  3. Tài nguyên bổ sung: EC2 instances, gateways, hoặc dịch vụ khác được sử dụng kết hợp với VPC Peering

Kết luận

AWS VPC Peering là một công cụ mạnh mẽ để kết nối các mạng ảo trong AWS. Với chi phí thấp, hiệu suất cao và cấu hình đơn giản, đây là lựa chọn tuyệt vời cho nhiều trường hợp sử dụng. Tuy nhiên, do giới hạn về kết nối non-transitive, nó có thể không phải là giải pháp tối ưu cho những kiến trúc phức tạp với nhiều VPC. Trong những trường hợp đó, bạn có thể cần xem xét AWS Transit Gateway hoặc các giải pháp khác.

Với kiến thức về AWS VPC Peering, bạn có thể thiết kế và triển khai các kiến trúc đám mây phức tạp, đảm bảo giao tiếp hiệu quả giữa các tài nguyên ở các VPC khác nhau, đồng thời duy trì tính bảo mật và hiệu suất cao.

15 Views

Leave a Reply

Your email address will not be published. Required fields are marked *