Cách cấu hình định tuyến dựa trên máy chủ trên bộ cân bằng tải ứng dụng AWS

theanh

Administrator
Nhân viên
Trong AWS, ELB hay Elastic Load Balancing là khái niệm mà các máy chủ có thể được thêm vào hoặc giải phóng theo nhu cầu của ứng dụng. Lưu lượng truy cập đến từ một ứng dụng được phân phối giữa nhiều mục tiêu. Các mục tiêu này có thể là các phiên bản EC2, vùng chứa và địa chỉ IP trong một hoặc nhiều Vùng khả dụng. Các loại AWS Elastic Load Balancer được hỗ trợ là Application Load Balancer (ALB), Network Load Balancer (NLB), Gateway Load Balancer (mới ra mắt gần đây) và Classic Load Balancer. Các bộ cân bằng tải này có các cấu hình khác nhau, ví dụ:
  1. Application Load Balancer: Hoạt động bằng cách tự động phân phối lưu lượng truy cập ứng dụng đến giữa hai hoặc nhiều phiên bản EC2. Chúng ta có thể xác định các quy tắc định tuyến theo nội dung của yêu cầu (định tuyến dựa trên nội dung). Đây là bộ cân bằng tải lớp 7.
  2. Network Load Balancer: NLB sử dụng dữ liệu giao thức IP (TCP và UDP) để định tuyến các kết nối đến các tài nguyên AWS như EC2, dịch vụ siêu nhỏ và vùng chứa. Đây là bộ cân bằng tải lớp 4.
  3. Bộ cân bằng tải cổng: Chúng được sử dụng với các thiết bị ảo của bên thứ ba như tường lửa NextGen (NGFW), IPS, IDS, v.v. chạy trên các phiên bản EC2. Chúng hoạt động bằng cách đặt một cổng duy nhất cho lưu lượng truy cập từ nhiều thiết bị ảo và các thiết bị ảo này có thể được mở rộng hoặc thu hẹp theo nhu cầu. Điều này tốt cho tính ổn định của mạng. Đây là bộ cân bằng tải lớp 3 (Cổng) cộng với lớp 4 (Cân bằng tải).
  4. Bộ cân bằng tải cổ điển: CLB là bộ cân bằng tải cũ của AWS được sử dụng để cân bằng tải trên nhiều phiên bản EC2. Chúng được khuyến nghị cho các ứng dụng được thiết kế trong mạng EC2-Classic. Đây là bộ cân bằng tải lớp 4/7. AWS khuyến nghị tránh sử dụng bộ cân bằng tải này.

Tổng quan về Hướng dẫn này​


Trong hướng dẫn này, chúng ta sẽ cấu hình định tuyến dựa trên đường dẫn cho Bộ cân bằng tải ứng dụng trên AWS. Chúng ta sẽ sử dụng tài khoản người dùng IAM có các đặc quyền hạn chế cần thiết cho tác vụ này. Chúng tôi có các tài nguyên sau cho thử nghiệm này:
  1. Hai Vùng khả dụng, mỗi vùng chứa ít nhất một phiên bản EC2.
  2. VPC có tối thiểu một mạng con công khai trong mỗi một trong hai Vùng khả dụng nêu trên. Mạng con công khai này sẽ được sử dụng để cấu hình bộ cân bằng tải.
  3. Cài đặt máy chủ web trên mỗi phiên bản và cho phép truy cập cổng 80 trên các phiên bản này bằng nhóm bảo mật.

Cấu hình phiên bản EC2​

Đối với hướng dẫn này, chúng tôi đã cấu hình hai phiên bản Amazon Linux EC2 với apache Httpd được cài đặt trên cả hai phiên bản. Trên một máy chủ, chúng ta có một thư mục ‘signin’ và một tệp index.html bên trong thư mục đó với nội dung: “Welcome User? Sign in to continue...”

Trên một máy chủ khác, chúng ta có một thư mục ‘signup’ và một tệp index.html bên trong thư mục đó với nội dung: “New User? Sign Up First...”

Cả hai thư mục ‘signin’ và ‘signup’ đều nằm trong thư mục gốc (/var/www/html).

Cấu hình nhóm mục tiêu​

Bước 1. Để định tuyến yêu cầu, trước tiên chúng ta sẽ tạo hai nhóm mục tiêu, mỗi nhóm cho một máy chủ. Mở bảng điều khiển EC2 và trên bảng điều khiển bên trái, tìm và chọn ‘Nhóm mục tiêu’ (Nằm trong mục Cân bằng tải):

Bước 2. Trên trang mới, nhấp vào nút ‘Tạo nhóm mục tiêu’:


Bước 3. Bây giờ chúng ta đang ở trang ‘Chỉ định chi tiết nhóm’. Trong cấu hình cơ bản, hãy thực hiện như sau:
  1. Chọn loại mục tiêu: Chọn ‘Instances’ tại đây.
  2. Target group name: Đặt tên phù hợp cho nhóm mục tiêu (‘Sign-In’ trong trường hợp của chúng tôi.)
  3. Protocol: HTTP
  4. Port: 80
  5. VPC: Chọn Tên VPC của bạn tại đây.
  6. Protocol version: Giữ nguyên phiên bản đã chọn mặc định. (HTTP1)
Trong cài đặt ‘Health checking’:

Giao thức kiểm tra tình trạng: HTTP

Đường dẫn kiểm tra tình trạng: ‘Đường dẫn bạn muốn sử dụng’ (‘/signin’ trong trường hợp của chúng tôi)

Giữ nguyên ‘Advanced health check settings’ theo mặc định. Thêm thẻ nếu bạn cần (Tùy chọn). Nhấp vào ‘Next’ để tiếp tục.

Đăng ký EC2 Instances vào Target Groups​

Bước 3. Bây giờ hãy thêm một trong các EC2 instance vào các nhóm mục tiêu ở trên. Chọn một instance rồi nhấp vào nút ‘Include as pending below’


Trường hợp được chọn ở trên sẽ xuất hiện trong ‘Review targets’. Bây giờ hãy nhấp vào ‘Create target group’.


Trên cửa sổ tiếp theo, hãy nhấp lại vào ‘continue’. Bây giờ hãy lặp lại quy trình tương tự cho một nhóm Target khác và đặt tên là ‘Sign-Up’. Sử dụng một phiên bản khác (trong một vùng Khả dụng khác) với Nhóm mục tiêu này và sử dụng một đường dẫn Kiểm tra tình trạng khác (‘/signup’ trong trường hợp của chúng tôi):




Tạo Bộ cân bằng tải ứng dụng​

Bước 1. Từ bảng điều khiển EC2, hãy đến Bộ cân bằng tải và nhấp vào nút Tạo Bộ cân bằng tải rồi chọn ‘Bộ cân bằng tải ứng dụng’ hiển thị trên trang mới:


Bước 2. Đặt tên phù hợp (ở đây là ‘My-Path-ALB’) cho bộ cân bằng tải của bạn. Giữ nguyên Scheme ở mặc định (‘Internet-facing’), Chọn loại địa chỉ IP là IPv4



Bước 3. Trong phần Network mapping, chọn VPC mục tiêu và trong phần Mappings, chọn hai vùng Availability chứa mục tiêu mà bộ cân bằng tải sẽ định tuyến lưu lượng đến.


Bước 4. Cấu hình Security Groups cho bộ cân bằng tải và cho phép cổng mục tiêu của bạn (cổng 80 trong trường hợp của chúng tôi) lắng nghe:


Bước 5. Chọn một trình lắng nghe (HTTP trong trường hợp của chúng tôi) và nhập một cổng để lắng nghe hoặc chọn giữ nguyên cổng mặc định 80 cho các yêu cầu HTTP. Trong hành động Mặc định, chọn mục tiêu ‘Đăng nhập’ cho cột ‘chuyển tiếp đến’:





Bước 6. Có thể bỏ qua các bước tùy chọn. Bây giờ hãy xem lại phần tóm tắt và nhấn nút ‘Tạo bộ cân bằng tải’:


Thêm Quy tắc chuyển tiếp dựa trên máy chủ​

Bước 1. Bây giờ, hãy quay lại trang ‘Bộ cân bằng tải’ và tìm bộ cân bằng tải mục tiêu của bạn tại đây:






Bước 2. Khi trạng thái ALB chuyển sang Hoạt động, chúng ta sẽ tiến hành với Quy tắc chuyển tiếp. Nhấp vào tên Load Balancer rồi chuyển đến tab Listeners

Bước 3. Nhấp vào ‘View/Edit rules’ trong cột ‘Rules’ rồi nhấp vào biểu tượng ‘+’ theo sau là ‘Insert Rule’:










Bước 4. Trong cột ‘IF(all match), nhấp vào mũi tên thả xuống ‘+ Add condition’ và chọn ‘Host’ làm loại Rule và nhập tên máy chủ hoặc tên miền của bạn (‘www.signin.tecofers.com’ trong trường hợp của chúng tôi) vào trường văn bản tương ứng với nhãn ‘is’.

Bước 5. Từ cột ‘Then’, nhấp vào mũi tên thả xuống ‘+Add action’ và chọn ‘Forward to’ làm hành động. Tại đây, hãy chọn nhóm mục tiêu ‘Đăng nhập’.
Lặp lại các bước 2 và 3 ở trên cho nhóm mục tiêu ‘Đăng ký’ với tên máy chủ hoặc tên miền (‘www.signup.tecofers.com’ trong trường hợp của chúng tôi). Sau khi lưu các quy tắc, chúng ta sẽ có hai quy tắc:





Quy tắc cuối cùng dành cho hành động mặc định nếu hai điều kiện trên không được đáp ứng.

Đăng ký tên miền trong Route 53​

Để đăng ký máy chủ/các tên miền cho định tuyến dựa trên máy chủ qua internet, chúng ta cần thêm tên DNS của các phiên bản EC2 tương ứng với tên máy chủ/tên miền của chúng bên trong Route 53.

Bước 1. Mở bảng điều khiển Route 53 từ bảng điều khiển quản lý và nhấp vào ‘Create hosted zone’ (Tạo vùng lưu trữ):




Bước 2. Trên trang cấu hình Vùng lưu trữ, nhập tên miền và chọn loại là ‘Public hosted zone’ và chọn ‘Create hosted zone’:


Bước 3. Trên trang mới, nhấp vào ‘Create Record’:


Bước 4. Trên trang mới, nhấp vào nhãn ‘Switch to wizard’ và chọn tùy chọn ‘Simple Routing’


Bước 5. Tại đây, nhấp vào ‘Define simple record’


Bước 6. Nhập các thông tin chi tiết khác nhau cho bản ghi này:

Tên miền: tên miền phụ tương ứng với vùng lưu trữ của bạn.

Loại bản ghi: Chọn loại A tại đây.

Giá trị/Định tuyến lưu lượng đến:
  1. Chọn 'Bí danh cho Ứng dụng và Tải cổ điển Bộ cân bằng'
  2. Chọn vùng có bộ cân bằng tải
  3. Chọn bộ cân bằng tải mục tiêu.





Cuối cùng nhấn 'Định nghĩa bản ghi đơn giản'.

Bản ghi ở trên bây giờ sẽ xuất hiện như được hiển thị ở đây:


Lặp lại các bước trên cho máy chủ khác.

Đang xác minh thiết lập…​

Để kiểm tra xem mọi thứ có hoạt động như mong đợi không, hãy mở trình duyệt web và dán DNS của bộ cân bằng tải và thêm vào đó:

1) Tên máy chủ cho mục tiêu 'Đăng ký'





2) Tên máy chủ cho mục tiêu 'Đăng nhập'






Kết luận​

Xin chúc mừng, cuối cùng chúng ta đã cấu hình thành công kịch bản cho định tuyến dựa trên máy chủ trên bộ cân bằng tải ứng dụng AWS.
 
Back
Bên trên