Nội dung chính
1. Load Balancer là gì?
Load Balancer là một máy hoặc công cụ ảo cân bằng tải ứng dụng web của bạn, có thể là lưu lượng Http hoặc Https mà bạn đang tham gia. Nó cân bằng tải của nhiều máy chủ web để không có máy chủ web nào bị quá tải.
2. Cân bằng tải ứng dụng(Application Load Balancer)
- Amazon Web Services (AWS) đã giới thiệu một trình cân bằng tải mới được gọi là Trình cân bằng tải ứng dụng (ALB) vào ngày 11 tháng 8 năm 2016.
- Nó được sử dụng để hướng lưu lượng người dùng đến đám mây AWS công cộng.
- Nó xác định lưu lượng đến và chuyển tiếp nó đến đúng tài nguyên. Ví dụ: nếu một URL có / phần mở rộng API , thì nó được chuyển đến các tài nguyên ứng dụng thích hợp.
- Nó được vận hành ở Lớp 7 của Mô hình OSI.
- Nó phù hợp nhất để cân bằng tải lưu lượng HTTP và HTTPs.
- Bộ cân bằng tải ứng dụng rất thông minh, gửi các yêu cầu cụ thể đến các máy chủ web cụ thể.
- Nếu chúng ta lấy một ví dụ về TESLA. Chúng ta có ba mô hình TESLA, tức là, TESLA Mô hình X, TESLA Mô hình S, và TESLA Mô hình 3 và TESLA có cơ sở tính toán tích hợp. Bạn sẽ có một nhóm máy chủ web phục vụ Mô hình X, một nhóm máy chủ web phục vụ Mô hình S và tương tự cho Mô hình 3. Chúng ta có một cân bằng tải để kiểm tra xem lưu lượng đến có đến từ Mô hình X, Mô hình S hay không hoặc Mô hình 3, và sau đó gửi nó đến nhóm máy chủ dự định.
3. Cân bằng tải mạng(Network Load Balancer)
- Nó được vận hành ở Lớp 4 của mô hình OSI.
- Nó đưa ra các quyết định định tuyến ở lớp truyền tải (TCP / SSL) và nó có thể xử lý hàng triệu yêu cầu mỗi giây.
- Khi bộ cân bằng tải nhận được một kết nối, sau đó nó sẽ chọn một mục tiêu từ nhóm mục tiêu bằng cách sử dụng thuật toán định tuyến băm luồng. Nó mở kết nối TCP tới đích đã chọn của cổng và chuyển tiếp yêu cầu mà không cần sửa đổi tiêu đề.
- Nó phù hợp nhất để cân bằng tải lưu lượng TCP khi yêu cầu hiệu suất cao.
4. Cân bằng tải cổ điển(Classic Load Balancer)
- Nó được vận hành ở Lớp 4 của mô hình OSI.
- Nó định tuyến lưu lượng giữa các máy khách và máy chủ phụ trợ dựa trên địa chỉ IP.
- Ví dụ: một bộ cân bằng tải đàn hồi nhận được yêu cầu từ máy khách trên cổng TCP 80, sau đó nó sẽ định tuyến yêu cầu đến một cổng cụ thể của máy chủ phụ trợ. Cổng mà Bộ cân bằng tải định tuyến đến máy chủ mục tiêu sẽ có số cổng là 80. Máy chủ phụ trợ sau đó sẽ gửi dữ liệu được yêu cầu trở lại ELB, sau đó sẽ chuyển tiếp phản hồi của máy chủ phụ trợ đến máy khách. Theo quan điểm của khách hàng, yêu cầu đã được thực hiện bởi ELB, không phải bởi máy chủ phụ trợ.
- Bộ cân bằng tải cổ điển là bộ cân bằng tải đàn hồi kế thừa.
- Nó cũng có thể được sử dụng để cân bằng tải lưu lượng HTTP hoặc HTTPs và sử dụng các tính năng cụ thể của lớp 7, chẳng hạn như phiên chuyển tiếp X và cố định.
- Bạn cũng có thể sử dụng cân bằng tải Lớp 4 cho các ứng dụng hoàn toàn dựa vào giao thức TCP.
5. Lỗi cân bằng tải
- Cân bằng tải cổ điển
Nếu bạn gặp lỗi 504, đây là lỗi hết thời gian chờ của cổng. Bộ cân bằng tải vẫn khả dụng, nhưng nó gặp sự cố khi giao tiếp với phiên bản(thực thể) EC2. Nếu ứng dụng của bạn ngừng phản hồi, ELB (Bộ cân bằng tải cổ điển) sẽ phản hồi với lỗi 504. Điều này có nghĩa là ứng dụng đang gặp sự cố và nó có thể là ở lớp máy chủ web hoặc lớp Cơ sở dữ liệu.
Để khắc phục sự cố ứng dụng bị lỗi ở đâu và mở rộng quy mô nếu có thể.
X-Forwarded-For-Header
X-Forwarded-For-Header được sử dụng để xác định địa chỉ IP của máy khách khi bạn sử dụng bộ cân bằng tải cổ điển.
Hoạt động của X-Forwarded-For-Header
- Người dùng có trên địa chỉ Ipv4, tức là, 124.12.3.23.
- Một người dùng đang gửi một yêu cầu đến bộ cân bằng tải cổ điển, lần lượt nó sẽ gấp yêu cầu thành một phiên bản EC2. Một cá thể EC2 sẽ sử dụng địa chỉ riêng, tức là, 10.0.0.23 và đây là địa chỉ duy nhất được nhìn thấy bởi một thực thể EC2.
- Một phiên bản(thực thể) EC2 chỉ đang nắm bắt địa chỉ riêng tư vì trình cân bằng tải Classis bao gồm địa chỉ IP Công cộng. Địa chỉ công cộng là cần thiết vì nó cung cấp thông tin có giá trị như “ai đang sử dụng trang web của bạn”.
- Một phiên bản EC2 lấy địa chỉ Ipv4 ở dạng X-Forwarded-For request Header từ bộ cân bằng tải cổ điển.
Cài ứng dụng cafedev để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.
Tài liệu từ cafedev:
- Full series tự học Amazon Web Services(AWS)từ cơ bản tới nâng cao tại đây nha.
- Ebook về AWS tại đây.
- Các nguồn kiến thức MIỄN PHÍ VÔ GIÁ từ cafedev tại đây
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!