Load Balancer AWS 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

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:

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:

  • Group Facebook
  • Fanpage
  • Youtube
  • Instagram
  • Twitter
  • Linkedin
  • Pinterest
  • Trang chủ

Chào thân ái và quyết thắng!

-

Top câu hỏi phỏng vấn dịch vụ AWS Elastic Load Balancing [ELB] – Cuongquach.com | Chúng ta sẽ đến với một nội dung liên quan đến các câu hỏi phỏng vấn cơ bản về dịch vụ Cloud AWS. Trong đó chủ đề của chúng ta trong bài viết này là về dịch vụ Cân Bằng Tải của AWS – AWS Elastic Load Balancing. Dưới đây là các câu hỏi phỏng vấn cơ bản về AWS ELB mà các nhà tuyển dụng có thể đặt ra khi trao đổi với bạn về kiến thức AWS, cụ thể là Elastic Load Balancing.

Top câu hỏi phỏng vấn dịch vụ AWS ELB

1. AWS Elastic Load Balancing là gì ?

AWS Elastic Load Balancing là dịch vụ cân bằng tải của AWS cung cấp, dành cho hạ tầng cloud aws. Với AWS Elastic Load Balancing bạn có thể phân phối lưu lượng truy cập từ ngoài Internet vào trong các dịch vụ AWS khác như EC2, ECS, EKS,… hoặc phân phối lưu lượng truy cập trong nội bộ dịch vụ của hạ tầng AWS do bạn thiết kế.

2. AWS ELB hỗ trợ bao nhiêu loại Load Balancer ?

Có 3 loại Load Balancer mà AWS Elastic Load Balancing hỗ trợ.

+ Application Load Balancer [ALB]

  • Hỗ trợ duy nhất giao thức HTTP/HTTPS, tức hoạt động ở lớp 7 [Application] thôi.
  • Hỗ trợ giao thức HTTP/2.
  • Hỗ trợ chuyển hướng giao thức HTTP.
  • Có thể khai báo cấu hình ALB lắng nghe ở các port khác nhau [1-65535] cho giao thức HTTP/HTTPS.
  • Kết hợp với dịch vụ AWS Certificate Manager để quản lý các chứng chỉ SSL cho giao thức HTTPS.
  • Đối với giao thức HTTPS SSL, thì có kích hoạt sẵn SNI [Server Name Indication] và hỗ trợ nhiều loại chứng chỉ SSL khác nhau.
  • Không hỗ trợ assign Elastic IP Public.

+ Network Load Balancer [NLB]

  • Hỗ trợ duy nhất cho giao thức TCP và TLS.
  • AWS NLB được thiết kế để có thể chịu tải hàng triệu request/giây.
  • Hỗ trợ assign Elastic IP Public.

+ Classic Load Balancer [CLB]

Dịch vụ này đã cũ và không được sử dụng nhiều nữa. Các chi tiết có thể tham khảo tại đây: //docs.aws.amazon.com/elasticloadbalancing/latest/classic/introduction.html

3. Cơ chế Healthcheck của AWS ELB như thế nào ?

Đối với AWS ALB [application load balancer] thì hỗ trợ cơ chế kiểm tra sức khoẻ của các server backend trong target group bằng giao thức HTTP/HTTPS request. Với việc gửi request HTTP/HTTPS đến upstream path url do ta quy định, nếu trả mã HTTP Status Code 200 tức còn sống, các mã lỗi còn lại sẽ theo quy định khác nhau được xem như upstream trong target group đó đã chết.

Còn đối với AWS NLB thì hỗ trợ cả HTTP/HTTPS và cả TCP với cơ chế cũng giống AWS ALB.

4. Thuật toán cân bằng tải mà AWS ELB hỗ trợ là gì ?

  • Application Load Balancer: hỗ trợ thuật toán round-robin.
  • Network Load Balancer: sử dụng thuật toán ‘flow hash’ dựa theo thông tin giao thức, source ip, dest ip, source port, dest port,..
  • Classic Load Balancer: thuật toán round-robin cho TCP và thuật toán ‘least outstanding requests routing’ cho HTTP/HTTPS.

5. AWS ELB có hỗ trợ hình thức cân bằng tải cho hệ thống mạng private không ?

AWS ELB hỗ trợ cả 2 hình thức cân bằng tải :

  • Internet-facing : tức load balancer sẽ định tuyến các request từ client ngoài Internet public đi vào các backend server.
  • Internal : load balancer sẽ định tuyến các request từ client trong mạng nội bộ của bạn, đi bằng địa chỉ ip private.

6. AWS ELB hỗ trợ thông tin endpoint Load Balancer cho các dịch vụ khác sử dụng như thế nào ?

AWS ELB cung cấp thông tin endpoint Load Balancer dưới dạng tên miền [domain] theo cú pháp riêng của AWS ELB dành cho cả 2 hình thức ‘internet-facing‘ và ‘internal‘.

Tại sao AWS ELB lại cung cấp thông tin endpoint dưới dạng tên miền, bạn hãy đọc tham khảo thêm bài viết này: Cấu hình public AWS Application Load Balancer [ALB] cho web

Địa chỉ IP Private của các Load Balancer sẽ được AWS ELB tự lấy các IP Private còn trống trong các Subnet Availability Zone mà bạn cấu hình [cũng tham khảo bài link trên].

7. AWS Application Load Balancer xử lý request qua Load Balancer như thế nào ?

Trong phần cấu hình AWS ALB có quy định các rule xử lý request với thứ tự ưu tiên các rule khác nhau. Khi AWS ALB tiếp nhận 1 request sẽ tiến hành so sánh request HTTP đó với các rule từ trên xuống theo thứ tự ưu tiên, nếu khớp thông tin rule nào thì sẽ thực hiện hành vi mà người quản trị mong muốn với request match rule đó.

8. Làm thế nào để bảo vệ ứng dụng web phía sau AWS ELB ?

Ta có thể kết hợp dịch vụ AWS WAF [web application firewall] với AWS ELB, để thực hiện các hoạt động tường lửa bảo vệ cho dịch vụ của bạn với các chức năng tiêu biểu như block từ list địa chỉ ip, block theo uri, headers,..

9. Giám sát lưu lượng qua AWS ELB như thế nào ?

Bạn có thể giám sát lưu lượng AWS ELB qua dịch vụ AWS Cloudwatch với các metrics khá là đầy đủ do AWS cung cấp.

10. Có thể lưu log request HTTP/HTTPS của AWS Application Load Balancer không ?

AWS ELB có hỗ trợ lưu thông tin log access của các request HTTP/HTTPS và dịch vụ lưu trữ log này sẽ là AWS S3.

11. Làm sao giám sát được các hành vi tương tác AWS ELB API ?

Ta có thể kết hợp dịch vụ AWS CloudTrail để giám sát và audit các hành vi tương tác dịch vụ AWS ELB API.

12. AWS Elastic Load Balancing tính tiền cơ bản như thế nào ?

Bạn sẽ bị tính phí theo giờ đối với mỗi Load Balancer được bạn tạo ra và đang chạy, bên cạnh đó bạn sẽ bị tính phí đối với số liệu đơn vị Load Balancer Capacity Unit [LCU] sử dụng hằng giờ .

LCU là số liệu giúp xác định số tiền bạn sẽ trả cho một Load Balancer thuộc AWS ELB. Một đơn vị LCU sẽ bao gồm 4 thông số :

  • New connection
  • Active connection
  • Bandwidth
  • Rule

Tham khảo thêm tại link sau : //aws.amazon.com/elasticloadbalancing/pricing/

Nguồn: //cuongquach.com/

Video liên quan

Chủ Đề