- vừa được xem lúc

VPC Peering - Tạo kết nối giữa 2 VPC

0 0 19

Người đăng: Trần Thái Dương

Theo Viblo Asia

1. Knowledge

1.1. Giới thiệu tổng quan

Nếu đã từng làm việc với AWS (Amazon Web Services) chắc hẳn bạn đã nghe đến khái niệm VPC (Virtual Private Cloud). Những tài nguyên chúng ta thường sử dụng đều được đặt trong các VPC. Nếu bạn cần kết nối từ tài nguyên thuộc VPC A sang VPC B (các tài nguyên này đều không kết nối trực tiếp từ internet), thì việc tạo ra một kết nối từ VPC A sang VPC B là điều bắt buộc. VPC Peering sẽ giúp bạn giải quyết điều này.

1.2. VPC Peering là gì?

VPC peering là một phương thức giúp ta tạo ra một kết nối riêng giữa 2 VPC, trong đó, ta có thể chỉ định VPC nguồn và VPC đích. Khi các VPC được kết nối với nhau bằng cách sử dụng VPC peering, những dịch vụ trong các VPC đó có thể giao tiếp bằng IP riêng từ VPC nguồn đến VPC đích và ngược lại.

Các VPC không nhất thiết nằm cùng trong một region, nó có thể nằm ở các khu vực khác nhau, thậm chí ở các tài khoản AWS khác nhau. Tức là nếu có đủ thông tin kết nối bạn có thể kết nối đến VPC của bạn bè, thật tiện lợi.

Ngoài ra, khi bạn sử dụng VPC Peering để kết nối tới các VPC thuộc nhiều region khác nhau, tốc độ sẽ được cải thiện nhiều hơn so với kết nối trực tiếp từ internet.

2. Hand on

Bài lab này chúng ta sẽ dựng theo sơ đồ sau

2.1. Tạo và config VPCs, subnet

2.1.1. Config VPCs

Bước đầu tiên chúng ta cần tạo ra 2 VPC, mình sẽ tránh không sử dụng VPC default để các bạn có được cái nhìn rõ ràng nhất. Chúng ta cần đăng nhập vào AWS console, tìm và chọn service VPC 0C18FB75-9962-4356-A61C-198B8D7B0F02_1_105_c.jpeg

Sau đó chọn Create VPC

Ở phần "Name tag auto-generation" ta nhập "request-peering" (đặt tên gì cũng được nhé các bạn)

  • Number of Availability Zones (AZs) ta chọn 1
  • Number of public subnets ta cũng chọn 1
  • Number of private subnets ta chọn 0
  • VPC endpoints chọn "None"
  • Enable auto-assign public IPv4 address click chọn enable (Bước này không cần áp dụng đối với private subnet ta sẽ thực hiện ở bên dưới)
  • NOTE: config setting trên các bạn để mặc định cungx được tuy nhiên để lát đến phần tạo resource trên các VPC trở nên đơn giản hơn thì mình sẽ config 1 cách đơn giản nhất

Sau đó ta chỉ cần chọn button "Create VPC" ở bên dưới là đã hoàn thành tạo xong VPC với 1 public subnet rồi

Tiếp đến ta sẽ tạo VPC chứa private subnet Tương tự các bước trên, tuy nhiên ta sẽ config như thế này NOTE: Các bạn sửa lại giúp mình CIDR là : 172.0.1.0/28 nhé

2.1.2. Config public subnet

Ta cần config lại route table cho các subnet

Ở phần VPC ta filter chọn "request-peering-vpc", ở phần navigator bên trái chọn "Route tables", rồi click checkbox chọn "request-peering-rtb", tiếp đến chọn actions ở bên góc trên bên phải và cuối cùng là chọn "set main route table" Sau đó chúng ta confirm và nhấn "ok"

Làm tương tự với accept-peering-rtb nhé các bạn

2.2. Tạo resource EC2

Ở bước này ta sẽ tạo 2 con EC2 ở 2 subnet (trong 2 VPC vừa tạo) bên trên

2.2.1. Tạo EC2 ở public subnet

Ta cần truy cập vào EC2 dashboard và chọn "launch instance"

Tiếp đến ta config EC2 với các config sau

Ở phần "key pair" ta chọn "create new key pair" Ta nhập tên key pair xong thì nhất "create key pair" (Nhớ lưu key pair về máy với đuôi .pem nhé các bạn)

Tiếp đến ở phần "Network settings" ta chọn button "Edit" VPC ta chọn "request-peering-vpc"

Check lại configs xem đã đúng nhu cầu chưa, đúng rồi thì ta chọn button "Launch instance" ở bên phải màn hình là ok, đã xong bước tạo EC2 ở public subnet

2.2.1. Tạo EC2 ở private subnet

Tương tự như tạo ở public subnet, ta sẽ tạo 1 EC2 có tên "EC2-private-subnet" ở private subnet nằm trong VPC "accept-peering-vpc" (Quan trọng nhất là phần "Network settings", các bạn nhớ chọn VPC là "accept-peering-vpc" nhé). Xong thì ta launch instance là được

2.3. Test traffic lần 1

Từ đầu đến giờ chúng ta mới chỉ tạo VPCs, subnets, EC2 nhưng chưa hề đụng đến VPC peering, vì vậy chắc chắn ở lần test này, khi chúng ta đứng ở con "EC2-public-subnet" ping sang con "EC2-private-subnet" thì sẽ không ping được. Để chứng minh điều đó ta sẽ cùng thử ssh vào "EC2-public-subnet" rồi ping sang private IP của "EC2-private-subnet" (Ở đây mình nghĩ các bạn đã biết cách ssh vào 1 instance rồi nên mình sẽ làm nhanh đoạn này) IP private của instance "EC2-private-subnet" của mình là "10.0.142.136". Khi mình ping đến ip này kết qủa là sẽ 100% lost packages (Xin lỗi các bạn ở phần IP private này mình có hơi conflick với phần bên dưới 1 chút vì mình gặp chút trục trặc cần tạo lại EC2 => IP ở đây sẽ khác bên dưới nhưng không sao, mình chỉ cần lâys đúng IP private để test là được)

=> Chúng ta đã thấy được răng hoàn toàn không giao tiếp được giữa instance ở public subnet và instance ở private subnet. Để giải quyết vấn đề này ta sẽ cần thực hiện tạo VPC peering connection

2.4. Tạo VPC peering connection

2.4.1. Tạo connection

Ta truy cập vào "VPC dashboard", tìm và chọn "Peering connections". Tiếp đến click button "create peering connection"

Ở phần setting, ta sẽ thực hiện các setting như sau

Sau đó click button "Create peering connection" bên dưới cùng là được

2.4.2. Config route table

Điều kiện để kết nối VPC peering có thể hoạt động được đó là route table của các subnet request cần route CIDR block của VPC accept và ngược lại Cụ thể ở lab này, route table của public subnet cần có route đến CIDR block của accept-peering-vpc và route table của private subnet cần có route đến CIDR của request-peering-vpc Ta sẽ thực hiện các bước trên như sau

Vào VPC dashboard -> chọn your VPCs -> quan sát ta sẽ thấy ở 2 VPC của chúng ta đều có column "IPv4 CIDR" -> ta lưu lại 2 dải IP này vào đâu đó

Filter "request-peering-vpc" -> chọn "Route tables" ở navigator bên trái -> click checkbox "request-peering-rtb" -> ở bên dưới chọn tab "Routes" -> chọn button "Edit routes" Chọn button "Add route" và nhập thông tin như sau:

  • Destination: nhập CIDR của accept-peering-vpc
  • Target: Tìm kiếm và chọn "Peering Connection" => Click button "Save changes" => Tương tự với "accept-peering-vpc" ta sẽ config route table của private subnet và nhập destination là CIDR của request-peering-vpc

2.4.3. Accept VPC peering connection

VPC dashboard -> chọn peering connections -> click connection đã tạo bên trên -> chọn actions -> chọn accept request

2.4.4. Allow traffic

Để có thể ping đến EC2-private-subnet, ta cần 1 thao tác nữa là config security group (SG) để allow traffic từ EC2-public-subnet Mình sẽ nhập CIDR của request-peering-vpc trong allow rule inbound của SG attach với private subnet

2.5. Test traffic lần 2

Sau khi làm xong các bước trên, các bạn thử đứng từ con EC2-public-subnet ping lại đến con EC2-private-subnet sẽ thấy giờ đây đã có sự giao tiếp đc

Cảm ơn các bạn đã bỏ thời gian ra đọc, nếu có gì sai sót mong các bạn cmt bài viết góp ý cho mình nhé ạ !

Nguồn tài liệu tham khảo:

Bình luận

Bài viết tương tự

- vừa được xem lúc

PDF Export, cẩn thận với những input có thể truyền vào

Giới thiệu. Dạo gần đây mình tình cờ gặp rất nhiều lỗi XSS, tuy nhiên trang đó lại có sử dụng dữ liệu người dùng input vào để export ra PDF.

0 0 49

- vừa được xem lúc

Giới thiệu về AWS Batch

Khi sử dụng hệ thống cloud service, điều chúng ta thường phải quan tâm đến không chỉ là hiệu suất hoạt động (performance) mà còn phải chú ý đến cả chi phí bỏ ra để duy trì hoạt động của hệ thống. Chắn hẳn là hệ thống lớn hay nhỏ nào cũng đã từng phải dùng đến những instance chuyên để chạy batch thực

0 0 127

- vừa được xem lúc

Tìm hiểu về AWS KMS

1. AWS KMS là gì. Ở KMS bạn có thể lựa chọn tạo symetric key (khóa đối xứng) hoặc asymetric key (khóa bất đối xứng) để làm CMK (Customer Master Key). Sau khi tạo key thì có thể thiết đặt key policy để control quyền access và sử dụng key.

0 0 52

- vừa được xem lúc

AWS VPC cho người mới bắt đầu

Tuần này, tôi trình bày lại những gì tôi đã học được về Virtual Private Cloud (VPC) của Amazon. Nếu bạn muốn xem những gì tôi đã học được về AWS, hãy xem Tổng quan về DynamoDB và Tổng quan về S3. VPC là gì. Những điều cần lưu ý:.

0 0 68

- vừa được xem lúc

AWS Essentials (Phần 6): Guildline SNS Basic trên AWS

Tiếp tục với chuỗi bài viết về Basic AWS Setting, chúng ta tiếp tục tìm hiểu tiếp tới SNS (Simple Notification Service). Đây là một service của AWS cho phép người dùng setting thực hiện gửi email, text message hay push notification tự động tới mobile device dựa trên event người dùng setting phía AWS

0 0 124

- vừa được xem lúc

Sử dụng Amazon CloudFront Content Delivery Network với Private S3 Bucket — Signing URLs

Trong nhiều trường hợp, thì việc sử dụng CDN là bắt buộc. Mình đã trải nghiệm với một số CDN nhưng cuối cùng mình lựa chọn sử dụng AWS CloudFront.

0 0 104