Elb AWS là gì

Elastic Load Balancing tự động phân phối lưu lượng truy cập ứng dụng đến nhiều mục tiêu, chẳng hạn như instance của Amazon EC2, các vùng lưu trữ và địa chỉ IP. Nó có thể xử lý tải khác nhau của lưu lượng truy cập ứng dụng của bạn trong một Availability Zones duy nhất hoặc qua nhiều Availability Zones.

– Cân bằng tải đàn hồi cung cấp ba loại: Application Load Balancer, Network Load Balancer, Classic Load Balancer.


+ Application Load Balancer: Ứng dụng này phù hợp nhất cho cân bằng tải lưu lượng HTTP và HTTPS và cung cấp định tuyến yêu cầu nâng cao nhằm phân phối các kiến ​​trúc ứng dụng hiện đại, bao gồm microservices và container. Hoạt động ở mức yêu cầu riêng lẻ [Layer 7], Ứng dụng cân bằng tải cân bằng lưu lượng truy cập đến các mục tiêu trong Amazon Virtual Private Cloud [Amazon VPC] dựa trên nội dung yêu cầu.

+ Network Load Balancer: Phù hợp nhất cho việc cân bằng tải lưu lượng TCP, nơi đòi hỏi hiệu năng cực cao. Hoạt động ở mức kết nối [Layer 4], Network Load Balancer lưu lượng truy cập đến các mục tiêu trong Amazon Virtual Private Cloud [Amazon VPC] và có khả năng xử lý hàng triệu yêu cầu mỗi giây đồng thời duy trì độ trễ cực thấp. Network Load Balancer cũng được tối ưu hóa để xử lý các mẫu lưu lượng đột ngột và không ổn định.

+ Classic Load Balancer: Cung cấp cân bằng tải cơ bản trên nhiều trường hợp Amazon EC2 và hoạt động ở cả cấp yêu cầu và cấp kết nối. Bộ cân bằng tải cổ điển dành cho các ứng dụng được xây dựng trong mạng EC2-Classic.

Lợi ích của Elastic Load Balancing

Tính mở rộng

Tính cân bằng tải đàn hồi tự động phân phối lưu lượng truy cập đến qua nhiều mục tiêu – trường hợp Amazon EC2, các thùng chứa và địa chỉ IP – trong nhiều vùng khả dụng và đảm bảo các mục tiêu lành mạnh chỉ nhận được lưu lượng truy cập. Tính cân bằng tải đàn hồi cũng có thể cân bằng tải trên khắp vùng, định tuyến lưu lượng tới các mục tiêu lành mạnh ở các vùng có sẵn khác nhau.

Đảm bảo

Cân bằng tải linh hoạt làm việc với đám mây cá nhân ảo Amazon [VPC] để cung cấp các tính năng bảo mật mạnh mẽ, bao gồm quản lý chứng chỉ tích hợp và giải mã SSL. Nó cung cấp cho bạn sự linh hoạt để quản lý tập trung các cài đặt SSL và giảm tải khối lượng công việc nặng của CPU từ các ứng dụng của bạn.

Đàn hồi

Cân bằng tải đàn hồi có khả năng xử lý các thay đổi nhanh chóng trong các mẫu lưu lượng mạng. Ngoài ra, tích hợp sâu với Auto Scaling đảm bảo đủ dung lượng ứng dụng để đáp ứng các mức tải ứng dụng khác nhau mà không cần can thiệp bằng tay.

Linh hoạt

Cân bằng tải đàn hồi cũng cho phép bạn sử dụng địa chỉ IP để định tuyến các yêu cầu đến các mục tiêu ứng dụng. Điều này cho phép bạn linh hoạt trong cách ảo hóa các mục tiêu ứng dụng của mình, cho phép bạn lưu trữ nhiều ứng dụng hơn trên cùng một instance. Điều này cũng cho phép các ứng dụng này có các nhóm bảo mật cá nhân và sử dụng cùng một cổng mạng để đơn giản hóa việc truyền dữ liệu giữa các ứng dụng trong kiến ​​trúc dựa trên microservices.

Giám sát và kiểm toán hiệu quả

Tính cân bằng tải đàn hồi cho phép bạn theo dõi các ứng dụng và hiệu suất của chúng trong thời gian thực với các phép đo, ghi nhật ký và theo dõi yêu cầu của Amazon CloudWatch. Điều này cải thiện khả năng hiển thị trong hành vi ứng dụng của bạn, phát hiện ra các vấn đề và xác định các tắc nghẽn về hiệu suất.

Cân bằng tải Hybrid

Tính cân bằng tải đàn hồi cung cấp khả năng cân bằng tải giữa AWS và tài nguyên tại chỗ bằng cách sử dụng bộ cân bằng tải tương tự. Điều này làm cho bạn dễ dàng di chuyển, bung, hoặc chuyển đổi dự phòng ứng dụng tại chỗ sang đám mây.

Kết luận

Elastic Load Balancing là dịch vụ dùng để kết hợp với các dịch vụ khác trên Amazon AWS để giúp hệ thống luôn được cân bằng, chịu tải tốt tránh tình trạng hệ thống bị chết đột ngột khi lưu lượng truy cập tăng quá nhanh hoặc bị DDos. Mình nghĩ dịch vụ này khá cần thiết các bạn nên sử dụng.

Xem tiếp các bài trong Series Học Amazon Web Services [AWS]

Amazon CloudWatchAmazon EC2Amazon VPCAmazon Web ServicesAWSElastic Load BalancingHọc Amazon Web Services [AWS]

Chắc hẳn các bạn khi làm việc với các hệ thống mạng, đã từng nghe tới cụm từ  LOAD BALANCER[ Cân bằng tải] rồi đúng không nhỉ ? Và để hiểu rõ hơn về chức năng cũng như cách thức hoạt động của LOAD BALANCER, hãy cùng Nghi điểm qua một số khái niệm tiêu biểu trước nhé!

Định nghĩa?

LOAD BALANCER là một thành phần quan trọng của cơ sở hạ tầng mạng, và Load balancer thường được sử dụng để cải thiện hiệu suất cũng như độ tin cậy của các trang web, các ứng dụng, cơ sở dữ liệu và các dịch vụ khác trong cơ sở hạ tầng mạng bằng cách phân phối khối lượng công việc trên nhiều máy chủ để giúp máy chủ ảo hoạt động đồng bộ và hiệu quả hơn thông qua việc phân phối đồng đều tài nguyên.

Cách thức hoạt động hiệu quả?

Dưới đây là một sơ đồ đơn giản cách thức tương tác giữa User và Database Server thông qua Internet khi không có Load Balancer:

Chúng ta có thể hình dung tình huống như sau: Bạn cần truy cập vào website yourdomain.com kết nối trực tiếp , nhưng trong quá tình kết nối và tương tác, rất có thể bạn sẽ gặp truòng hợp máy chủ không kịp xử lý request, hoặc lượng truy cập quá nhiều cùng lúc gây ra hiện tượng tải chậm, hoặc thậm chí không kết nối được khi máy chủ bị quá tải. Và đây chính là lúc mà Load Balancing thể hiện vai trò của mình để tránh những tình huống trên xảy ra

Khi máy chủ down hoặc không thể xử lý, một Load Balancer sẽ được bổ sung. Người dùng  khi truy cập vào Server trước hết cần "tương tác" với load LOAD BALANCER. Sau đó, LOAD BALANCER sẽ kiểm tra tình trạng kết nối và tiếp tục chuyển đến một máy chủ khác để thực hiện Request từ User. Dù máy chủ chính bị down hoặc nghẽn mạng tạm thời thì vẫn có thể yên tâm rằng tất cả các yêu cầu của người dùng đều được giải quyết kịp lúc và hiệu suất nhất! Trong ví dụ minh họa ở trên, người dùng truy cập vào LOAD BALANCER  và nó sẽ chuyển tiếp yêu cầu của người sử dụng đến một máy chủ phụ trợ, sau đó đáp ứng trực tiếp yêu cầu của người dùng.

Lợi ích?

Không áp dụng LOAD BALANCER, bạn sẽ rất dễ dàng gặp các vấn để về bảo mật dữ liệu!

Nhờ có Load Balancer, hệ thống của chúng ta có thể:

Với Load Balancer, khi máy chủ gặp sự cố, lưu lượng truy cập sẽ được tự động chuyển đến máy chủ còn lại. Nhờ đó, trong hầu hết mọi trường hợp, bất kì một sự cố bất ngờ nào xảy ra cũng có thể được phát hiện và xử lý kịp thời, không làm gián đoạn các truy cập của người dùng, gây khó chịu trong quá trình tương tác với hệ thống

Khả năng linh hoạt trong việc điều phối giữa các máy chủ cũng là một ưu điểm khác của Load Balancer. Thật hiệu quả khi có sự chủ động điều phối giữa các máy chủ cũ và mới để xử lý các yêu cầu dịch vụ mà không làm gián đoạn các hoạt động chung của cả hệ thống lớn!

  • Yếu tổ bảo mật cho Datacenter

Bằng cách sử dụng Load Balancer, những yêu cầu từ người dùng sẽ được tiếp nhận và xử lý trước khi được phân chia đến các máy chủ. Đồng thời, trong quá trình phản hồi , những thông tin đó cũng được xét duyệt thông qua Load Balancer, giúp ngăn cản việc người dùng giao tiếp trực tiếp với máy chủ, ẩn đi thông tin và cấu trúc mạng nội bộ, từ đó chặn đứng những cuộc tấn công mạng hay truy cập trái phép, nâng cao hiệu quả bảo mật cho cơ sở dữ liệu!

Những loại giao thức mà Load Balancer có thể xử lí?

Quản trị LOAD BALANCER sẽ tạo ra quy định chuyển tiếp đối với bốn loại giao thức chính:

  • HTTP - Chuẩn HTTP balancing chỉ đạo yêu cầu dựa trên cơ chế HTTP chuẩn. Load Balancer đặt X-Forwarded-For, X-Forwarded-Proto, và tiêu đề X-Forwarded-Port để cung cấp cho các thông tin backends về các yêu cầu ban đầu.
  • HTTPS - HTTPS balancing với các chức năng tương tự như HTTP balancing đính kèm với sự bổ sung của mã hóa. Mã hóa được xử lý theo một trong hai cách: hoặc là với passthrough SSL duy trì mã hóa tất cả con đường đến backend hoặc chấm dứt SSL mà đặt gánh nặng giải mã vào Load Balancer nhưng gửi lưu lượng được mã hóa đến back end để ghi nhận thông tin và bảo mật.
  • TCP - Đối với các ứng dụng không sử dụng HTTP hoặc HTTPS, lưu lượng TCP cũng có thể được áp dụng để triển khai với LOAD BALANCER. Ví dụ, lượng truy cập vào một cụm cơ sở dữ liệu có thể được lan truyền và phân phối trên tất cả các máy chủ trong hệ thống
  • UDP - Gần đây, một số  LOAD BALANCER đã thêm hỗ trợ cho cân bằng tải giao thức Core Internet như DNS và syslogd sử dụng UDP.

Những quy tắc chuyển tiếp sẽ xác định các giao thức và cổng vào load balancer và bản đồ chúng đến các giao thức và cổng  LOAD BALANCER sẽ sử dụng để định tuyến lưu lượng trên backend.

Làm thế nào để LOAD BALANCER chọn máy chủ Backend?

Load balancers chọn máy chủ để chuyển tiếp yêu cầu dựa trên sự kết hợp của hai yếu tố:

Yếu tố đầu tiên: đảm bảo rằng bất kỳ máy chủ được lựa chọn có thể thực sự đáp ứng yêu cầu

Yếu tố thứ hai: sử dụng một quy tắc được cấu hình sẵn để lựa chọn trong số đó.

Health check?

Load balancer chỉ chuyển tiếp lưu lượng đến "Healthy" backend server. Để theo dõi sức khỏe của một backend server, kiểm tra sức khỏe thường xuyên bằng cách cố gắng kết nối với backend server sử dụng giao thức và cổng được định nghĩa bởi các quy tắc chuyển tiếp để đảm bảo rằng các máy chủ đang lắng nghe.

Có thể hiểu một cách đơn giản, Health Checks là việc kiểm tra tình trạng của một Backend Server. Bằng cách kết nối đến Backend Server dùng giao thức và cổng được định nghĩa bởi các quy tắc chuyển tiếp, nó đảm bảo rằng các máy chủ vẫn đang hoạt động ổn định.

Trong trường hợp máy chủ không hoạt động, Health Checks sẽ loại chúng ra khỏi vùng chứa. Điều này đồng nghĩa với việc các request sẽ không được chuyển tiếp đến máy chủ này nữa cho đến khi chúng vượt qua “bài kiểm tra” Health Checks sau.

Qua quá trình này, Load Balancing có thể chuyển tiếp trực tiếp lưu lượng đến các Backend Server đang thật sự hoạt động nhằm giải quyết mọi tác vụ của người dùng.

Khi máy chủ Backend gặp vấn đề unhealthy, cần kiểm tra lại Security Group của Load Balancer và health check's path trong cài đặt của Load Balancer.

Các loại LOAD BALANCER:

Elastic Load Balancing của AWS hỗ trợ ba loại Load balancer:

  • Application Load Balancers
  • Network Load Balancers
  • Classic Load Balancers

Load balancer [cân bằng tải] thường được nhóm thành 2 loại: Layer 4 và Layer 7.

  • Cân bằng tải Layer 4 có cách thức hoạt động dựa trên dữ liệu được tìm thấy trong các giao thức mạng và giao vận layer [IP, TCP, FTP, UDP].
  • Các bộ cân bằng tải Layer 7 phân phối các yêu cầu từ user dựa trên dữ liệu được tìm thấy trong các giao thức layer ứng dụng như HTTP.

  • Bộ cân bằng tải Layer 7 [Load balancer Layer 7] có thể phân phối thêm các requests dựa trên dữ liệu cụ thể của ứng dụng như HTTP header, cookies hoặc dữ liệu trong chính thông báo ứng dụng, chẳng hạn như giá trị của một thông số cụ thể.

Cách thiết lập Load Balancer?

ĐIỀU KIỆN THIẾT LẬP:

-ĐÃ TẠO SERVER BACKEND

-ĐÃ CÓ CHỨNG CHỈ TỪ AWS //us-east-2.console.aws.amazon.com/acm/home

Bước 1: Truy cập vaò Management Console: //aws.amazon.com/console/

Bước 2: Chọn EC2:

Bước 3: Tìm đến Tab Load Balancing, chọn Load Balancer:

Bước 4: Chọn Create Load Balancer:

Bước 5: Chọn type cho Load Balancer tuỳ theo mục đích sử dụng, các bạn có thể click vào "Learn more" để tìm hiểu thêm về trường hợp sử dụng và thiết lập, cách thiết lập tương đối giống nhau.

Trong trường hợp này, mình sẽ chọn Application Load Balancer để làm việc với hai giao thức HTTP và

ở bước 1 : bạn cần đặt tên cho Load Balancer của mình, thêm giao thức cho Listeners và chọn Abailability Zones với một Pc và ít nhất 2 public subnet

Ở bước 2, chọn chứng chỉ đã được cấp sau khi được Issued

Tạo Securirty Group cho riêng Load Balancer sử dụng:

Đặt tên cho Target Groups và đường dẫn để Load Balancer có thể sử dụng để thực hiện health check với máy chủ Backend, với giao thức, bạn chỉ cần chọn HTTP là đủ, vì Load Balancer tương tác với máy chủ Backend thông qua HTTP là đủ.

Chọn máy chủ Backend

Các điểm cần lưu ý, đảm bảo máy chủ Backend ở tình trạng healthy sau khi tạo Load Balancer, nếu máy chủ Backend hiển thị "unhealthy" , hãy kiểm tra lại Security Group của các máy chủ Backend cũng như Security group của Load Balancer và đảm bảo rằng các Security Group này có liên kết với nhau bằng các giao thức HTTP hay HTTPS

Tài liệu tham khảo:

//aws.amazon.com/vi/elasticloadbalancing/faqs/

Mong rằng với bài viết này , mọi người đã có cái nhìn tổng quan chi tiết về lợi ích to lớn mà Load Balancer mang lại cho một hệ thống mạng trong quá trình phân phối tài nguyên cũng như cách thức sử dụng Load Balancer. Nghi sẽ viết thêm nhiều đề tài chi tiết sử dụng Load Balancer ở những blog sau! Mọi người nhớ theo dõi nhé!

Chủ Đề