Saturday, January 18, 2025

[AWS] Internet Gateway (IGW)

-

Internet Gateway (IGW) là một dịch vụ của AWS cho phép các tài nguyên (ví dụ như các EC2 instances) trong một VPC kết nối tới Internet. Tính năng của IGW đó là có khả năng mở rộng ngang và có khả năng chịu lỗi cao, đồng thời cũng có khả năng dự phòng.

Tuy nhiên, IGW phải được tạo riêng biệt với VPC và mỗi VPC chỉ có thể được gắn kết với một IGW duy nhất và ngược lại. Mặc dù IGW cho phép các tài nguyên trong VPC kết nối tới Internet, tuy nhiên để truy cập Internet thì IGW chưa đủ, bạn phải sửa đổi các bảng định tuyến (route tables) của VPC để chỉ định tài nguyên nào được kết nối tới IGW để truy cập Internet.

Tóm lại, để cho phép các tài nguyên trong VPC kết nối tới Internet, bạn cần tạo một IGW riêng biệt với VPC, sau đó chỉ định trong bảng định tuyến của VPC rằng các tài nguyên nào được kết nối tới IGW để truy cập Internet.

Bảng thể hiện vị trí của Internet Gateway

Và đây là hình ảnh thể hiện khi Internet Gateway được thêm vào bảng routing.

Hãy nhìn lại các subnet trong DemoVPC mà bài trước tôi đã tạo, tôi chắc chắn rằng nếu bạn tạo 1 EC2 sử dụng 1 trong số subnet dưới thì vẫn chưa thể kết nối ra internet được.

Để chứng minh, bây giờ mình sẽ tạo EC2 sử dụng một trong bốn subnet trên. Mình sẽ không mô tả hết các chi tiết quá trình tạo EC2, chỉ nhấn mạnh vào phần subnet thôi.

Trong phần thiết lập khi tạo EC2 nếu bạn chọn VPC là DemoVPC thì phần subnet bạn có thể thấy có 4 subnet bạn có thể sử dụng như hình dưới.

Bạn để ý phần Auto-assign public IP nó đang được để mặc định là Disable.

Auto-assign public IP là một tính năng trong Amazon VPC cho phép tự động gán địa chỉ IP công khai vào các EC2 instances trong VPC. Khi tính năng này được bật, mỗi khi một instance được khởi tạo, nó sẽ được gán một địa chỉ IP công khai. Điều này cho phép các instance có thể kết nối tới Internet và được truy cập từ bên ngoài mạng.

Khi tạo một subnet trong VPC, bạn có thể bật hoặc tắt tính năng auto-assign public IP cho subnet đó. Nếu tính năng này được bật, các instance trong subnet sẽ được gán một địa chỉ IP công khai mỗi khi khởi tạo. Nếu tính năng này được tắt, các instance sẽ không có địa chỉ IP công khai và chỉ có thể kết nối tới Internet thông qua một gateway hoặc một NAT instance.

Nếu bạn muốn mặc định Enable cho 1 subnet tại phần Auto-assign public IP, bạn hãy làm theo các bước dưới.

Giả sử mình edit subnet này.

Tại phần Auto-assign IP settings bạn hãy tích vào Enable auto-assign public IPv4 address.

Enable auto-assign public IPv4 address là một tùy chọn trong Amazon EC2 cho phép tự động gán địa chỉ IP công khai vào các EC2 instances khi chúng được khởi tạo. Khi tính năng này được bật, mỗi instance được gán một địa chỉ IP công khai, cho phép chúng có thể truy cập tới Internet và được truy cập từ bên ngoài mạng.

Tùy chọn này hữu ích khi bạn muốn các EC2 instances có thể được truy cập từ bên ngoài mạng hoặc cần thiết lập các kết nối tới các dịch vụ ngoài Internet. Bạn cũng có thể tắt tính năng này nếu muốn giữ các instances của mình trong một môi trường cô lập hoặc muốn sử dụng các kết nối mạng khác để truy cập Internet hoặc các dịch vụ ngoài.

Tuy nhiên, việc bật tính năng auto-assign public IPv4 address có thể làm tăng chi phí sử dụng của bạn, do mỗi địa chỉ IP công khai được sử dụng đều tương ứng với một khoản phí. Nếu bạn không cần sử dụng địa chỉ IP công khai, bạn nên tắt tính năng này để giảm chi phí sử dụng của mình.

Vậy bây giờ nếu bạn chọn subnet PublicSubnetA, tuỳ chọn Auto-assign public IP mặc định sẽ được bật.

Phần inbound rule mình chỉ sử dụng mỗi ssh để thử nghiệm.

Sau khi thiết lập xong bạn có thể bấm Launch instance để tạo instance.

Và đây là kết quả khi bạn tạo xong instance và instance này sẽ được cấp 1 public ip. Bây giờ chúng ta có thể bấm vào connect để kiểm tra xem instance này có dược đi internet không nhé.

Bấm connect.

Và bạn nhận được một lỗi không thể kết nối đến instance của bạn, nó thông báo có 1 cài đặt network không đúng với EC2 instance của bạn.

Và bây giờ chúng ta sẽ thấy vai trò của Internet Gateway (IGW). Bây giờ bạn hãy vào Internet Gateway (IGW) bạn sẽ chỉ thấy 1 Internet Gateway (IGW) đang gắn với VPC mặc định. Bây giờ bạn hãy bấm vào Create internet gateway để tạo một Internet Gateway (IGW) mới.

Đặt tên cho Internet Gateway (IGW) và bấm Create internet gateway.

Vậy là Internet Gateway (IGW) đã được tạo ra và nó đang ở trạng thái tách rời (tức là không được gán vào VPC nào cả).

Bạn hãy bấm vào Attach to a VPC chọn DemoVPC và bấm Attach internet gateway để chúng ta gán Internet Gateway (IGW) vào DemoVPC.

Bây giờ hãy nhìn lại trạng thái State của nó đang là Attached.

Và nếu như bạn connect lại instance, bạn vẫn tiếp tục gặp lỗi như bước trên. Vậy lý do là chúng ta thiếu route trong local ra internet.

Giờ chúng ta bắt đầu tạo route như sau, bấm vào Create route table.

Tạo 1 route table với tên là PublicRouteTable.

Tiếp theo tạo tiếp route table có tên là PrivateRouteTable.

Như vậy tại bảng route tables bạn có thêm 2 route tables mới tạo đó là PrivateRouteTable và PublicRouteTable.

Bây giờ bạn vào PublicRouteTable bấm vào Edit subnet associations.

Chọn 2 subnet mà bạn cho nó là public subnet và bấm Save associations.

Như vậy PublicRouteTable đã có 2 subnet được thêm vào.

Làm tương tự cho PrivateRouteTable.

Bạn có kết quả.

Như các bạn thấy ở hình dưới, trong bảng Route Tables của VPC, khi có một dòng route với Destination là CIDR 10.0.0.0/16 và Target là “local”, điều đó có nghĩa là các gói tin được gửi tới các địa chỉ IP trong dải địa chỉ 10.0.0.0/16 sẽ được điều hướng đến các thiết bị trong cùng mạng local, bao gồm các subnet và thiết bị trong VPC. Đây là một đường đi mặc định được tạo ra tự động cho mọi VPC trên AWS. Nó cho phép các thiết bị trong cùng mạng có thể giao tiếp với nhau mà không cần thông qua gateway.

Như vậy hiện tại các thiết bị cùng mạng local có thể thấy nhau nhưng không thể ra ngoài internet. Để instance có thể ra internet, chúng ta hãy bấm vào Edit routes.

Tại đây mình trỏ destination là 0.0.0.0/0 (tức là địa chỉ IP mặc định) và target là igw-06366101d976db994, điều này có nghĩa là tất cả các traffic trên VPC được gửi đến địa chỉ IP bên ngoài mạng internet sẽ được điều hướng qua Internet Gateway có ID là igw-06366101d976db994. Điều này cho phép các tài nguyên trong VPC có thể kết nối và truy cập vào internet.

Và bây giờ bảng route của bạn có thêm route mới.

Và đây là kết quả khi instance kết nối thành công ra internet.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories