Cân bằng tải với AWS ELB

Chào mọi người! Khóa học bắt đầu ngày hôm nay "AWS dành cho nhà phát triển", liên quan đến việc chúng tôi đã tổ chức một hội thảo trực tuyến theo chủ đề tương ứng dành riêng cho việc đánh giá ELB. Chúng tôi đã xem xét các loại bộ cân bằng và tạo ra một số phiên bản EC2 có bộ cân bằng. Chúng tôi cũng nghiên cứu các ví dụ sử dụng khác.

Cân bằng tải với AWS ELB

Sau khi nghe hội thảo trên web, Bạn sẽ:

  • hiểu Cân bằng tải AWS là gì;
  • biết các loại Cân bằng tải đàn hồi và các thành phần của nó;
  • sử dụng AWS ELB trong thực tế của bạn.

Tại sao bạn cần phải biết điều này?

  • hữu ích nếu bạn dự định tham gia kỳ thi chứng chỉ AWS;
  • đây là một cách đơn giản để phân phối tải giữa các máy chủ;
  • Đây là cách đơn giản để thêm Lambda vào dịch vụ của bạn (ALB).

Tiến hành dạy mở Rishat Teregulov, kỹ sư hệ thống tại một công ty tiếp thị để phát triển và hỗ trợ trang web.

Giới thiệu

Bạn có thể xem Elastic Load Balancer là gì trong sơ đồ bên dưới, minh họa một ví dụ đơn giản:

Cân bằng tải với AWS ELB

Load Balancer chấp nhận các yêu cầu và phân phối chúng trên các phiên bản. Chúng tôi có một phiên bản riêng biệt, có các hàm Lambda và có nhóm AutoScaling (một nhóm máy chủ).

Các loại ELB của AWS

1. Hãy xem xét các loại chính:

Cân bằng tải cổ điển. Bộ cân bằng tải đầu tiên của AWS, hoạt động trên cả OSI Lớp 4 và Lớp 7, hỗ trợ HTTP, HTTPS, TCP và SSL. Nó cung cấp khả năng cân bằng tải cơ bản trên nhiều phiên bản Amazon EC2 và hoạt động ở cả cấp độ yêu cầu và kết nối. Hãy mở nó ra (được đánh dấu bằng màu xám):

Cân bằng tải với AWS ELB

Bộ cân bằng này được coi là lỗi thời, vì vậy nó chỉ được khuyến khích sử dụng trong một số trường hợp nhất định. Ví dụ: đối với các ứng dụng được xây dựng trên mạng EC2‑Classic. Về nguyên tắc, không ai ngăn cản chúng tôi tạo ra nó:

Cân bằng tải với AWS ELB

2. Cân bằng tải mạng. Phù hợp với khối lượng công việc nặng, hoạt động ở OSI Layer 4 (có thể sử dụng trong EKS và ECS), hỗ trợ TCP, UDP và TLS.

Network Load Balancer định tuyến lưu lượng truy cập đến các mục tiêu trong Amazon VPC và có khả năng xử lý hàng triệu yêu cầu mỗi giây với độ trễ cực thấp. Ngoài ra, nó được tối ưu hóa để xử lý các kiểu lưu lượng truy cập có tải đột ngột và thay đổi.

3. Cân bằng tải ứng dụng. Hoạt động ở lớp 7, có hỗ trợ Lambda, hỗ trợ các quy tắc cấp tiêu đề và đường dẫn, hỗ trợ HTTP và HTTPS.
Cung cấp định tuyến yêu cầu nâng cao tập trung vào việc phân phối các ứng dụng được xây dựng trên kiến ​​trúc hiện đại, bao gồm cả vi dịch vụ và vùng chứa. Hướng lưu lượng truy cập đến các mục tiêu trong Amazon VPC dựa trên nội dung của yêu cầu.

Đối với nhiều người dùng, Cân bằng tải ứng dụng là lựa chọn đầu tiên để thay thế Cân bằng tải cổ điển vì TCP không phổ biến như HTTP.

Hãy tạo nó nữa, kết quả là chúng ta sẽ có hai bộ cân bằng tải:

Cân bằng tải với AWS ELB

Thành phần cân bằng tải

Các thành phần cân bằng tải chung (chung cho tất cả các bộ cân bằng):

  • Chính sách ghi nhật ký truy cập

— nhật ký truy cập ELB của bạn. Để thực hiện cài đặt, bạn có thể đi tới Mô tả và chọn nút “Chỉnh sửa thuộc tính”:

Cân bằng tải với AWS ELB

Sau đó, chúng tôi chỉ định S3Bucket - Bộ lưu trữ đối tượng của Amazon:

Cân bằng tải với AWS ELB

  • Kế hoạch

- bộ cân bằng bên trong hoặc bên ngoài. Vấn đề là liệu LoadBalancer của bạn có phải nhận địa chỉ bên ngoài để có thể truy cập được từ bên ngoài hay đó có thể là bộ cân bằng tải nội bộ của bạn;

  • Nhóm bảo mật

- kiểm soát truy cập vào bộ cân bằng. Về cơ bản đây là một tường lửa cấp cao.

Cân bằng tải với AWS ELB

Cân bằng tải với AWS ELB

  • Mạng con

— các mạng con bên trong VPC của bạn (và theo đó là vùng khả dụng). Mạng con được chỉ định trong quá trình tạo. Nếu VPC bị giới hạn theo khu vực thì Mạng con bị giới hạn bởi vùng khả dụng. Khi tạo Cân bằng tải, tốt hơn nên tạo nó trong ít nhất hai mạng con (sẽ giúp ích nếu có vấn đề phát sinh với một Vùng sẵn sàng);

  • Người nghe

— các giao thức cân bằng của bạn. Như đã đề cập trước đó, đối với Cân bằng tải cổ điển, nó có thể là HTTP, HTTPS, TCP và SSL, đối với Cân bằng tải mạng - TCP, UDP và TLS, đối với Cân bằng tải ứng dụng - HTTP và HTTPS.

Ví dụ về Cân bằng tải cổ điển:

Cân bằng tải với AWS ELB

Nhưng trong Cân bằng tải ứng dụng, chúng ta thấy giao diện hơi khác và logic nhìn chung là khác:

Cân bằng tải với AWS ELB

Các thành phần Load Balancer v2 (ALB và NLB)

Bây giờ chúng ta hãy xem xét kỹ hơn về cân bằng tải ứng dụng và cân bằng tải mạng phiên bản 2. Những bộ cân bằng này có các tính năng thành phần riêng. Ví dụ: một khái niệm như Nhóm mục tiêu đã xuất hiện - các thể hiện (và chức năng). Nhờ thành phần này, chúng tôi có cơ hội chỉ định Nhóm mục tiêu nào mà chúng tôi muốn hướng lưu lượng truy cập đến.

Cân bằng tải với AWS ELB

Cân bằng tải với AWS ELB

Nói một cách đơn giản, trong Nhóm mục tiêu, chúng tôi chỉ định các trường hợp lưu lượng truy cập sẽ đến. Nếu trong cùng một Cân bằng tải cổ điển, bạn chỉ cần kết nối ngay cường độ với bộ cân bằng, thì trong Cân bằng tải ứng dụng, trước tiên bạn:

  • tạo Bộ cân bằng tải;
  • tạo một nhóm Mục tiêu;
  • chuyển trực tiếp qua các cổng bắt buộc hoặc quy tắc Cân bằng tải tới Nhóm mục tiêu được yêu cầu;
  • trong Nhóm mục tiêu bạn chỉ định phiên bản.

Logic vận hành này có vẻ phức tạp hơn nhưng thực tế lại thuận tiện hơn.

Thành phần tiếp theo là Quy tắc của người nghe (quy tắc định tuyến). Điều này chỉ áp dụng cho Cân bằng tải ứng dụng. Nếu trong Network Load Balancer, bạn chỉ cần tạo một Listener và nó sẽ gửi lưu lượng truy cập đến một nhóm Target cụ thể, thì trong Cân bằng tải ứng dụng, mọi thứ đều có thể vui vẻ và thuận tiện hơn.

Cân bằng tải với AWS ELB

Bây giờ hãy nói vài lời về thành phần tiếp theo - IP đàn hồi (địa chỉ tĩnh cho NLB). Nếu quy tắc định tuyến của quy tắc Trình nghe chỉ ảnh hưởng đến Cân bằng tải ứng dụng thì IP đàn hồi chỉ ảnh hưởng đến Cân bằng tải mạng.

Hãy tạo Trình cân bằng tải mạng:

Cân bằng tải với AWS ELB

Cân bằng tải với AWS ELB

Và ngay trong quá trình tạo, chúng ta sẽ thấy rằng chúng ta có cơ hội chọn IP đàn hồi:

Cân bằng tải với AWS ELB

IP đàn hồi cung cấp một địa chỉ IP duy nhất có thể được liên kết với các phiên bản EC2 khác nhau theo thời gian. Nếu một phiên bản EC2 có địa chỉ IP đàn hồi và phiên bản đó bị chấm dứt hoặc ngừng hoạt động, bạn có thể liên kết ngay một phiên bản EC2 mới với một địa chỉ IP đàn hồi. Tuy nhiên, ứng dụng hiện tại của bạn sẽ không ngừng hoạt động vì các ứng dụng vẫn nhìn thấy cùng một địa chỉ IP, ngay cả khi EC2 thực đã thay đổi.

Đây trường hợp sử dụng khác về chủ đề tại sao cần có IP đàn hồi. Hãy nhìn xem, chúng ta thấy 3 địa chỉ IP, nhưng chúng sẽ không ở đây mãi mãi:

Cân bằng tải với AWS ELB

Amazon thay đổi chúng theo thời gian, có thể là 60 giây một lần (nhưng trên thực tế, tất nhiên là ít thường xuyên hơn). Điều này có nghĩa là địa chỉ IP có thể thay đổi. Và trong trường hợp Network Load Balancer, bạn chỉ cần liên kết một địa chỉ IP và chỉ ra địa chỉ đó trong các quy tắc, chính sách, v.v.

Cân bằng tải với AWS ELB

Rút ra kết luận

ELB cung cấp khả năng phân phối tự động lưu lượng truy cập đến trên nhiều mục tiêu (vùng chứa, phiên bản Amazon EC2, địa chỉ IP và hàm Lambda). ELB có khả năng phân phối lưu lượng truy cập với mức tải khác nhau cả trong một Vùng sẵn sàng duy nhất và trên nhiều Vùng sẵn sàng. Người dùng có thể chọn từ ba loại bộ cân bằng có tính sẵn sàng cao, tự động thay đổi quy mô và khả năng bảo vệ tốt. Tất cả điều này đều quan trọng để đảm bảo khả năng chịu lỗi cho ứng dụng của bạn.

Những ưu điểm chính:

  • tính sẵn sàng cao. Thỏa thuận dịch vụ giả định rằng bộ cân bằng tải có sẵn 99,99%. Ví dụ: nhiều Vùng sẵn sàng đảm bảo rằng lưu lượng truy cập chỉ được xử lý bởi các đối tượng lành mạnh. Trên thực tế, bạn có thể cân bằng tải trên toàn bộ khu vực, chuyển hướng lưu lượng truy cập đến các mục tiêu lành mạnh ở các vùng sẵn có khác nhau;
  • an toàn. ELB hoạt động với Amazon VPC, cung cấp nhiều khả năng bảo mật khác nhau - quản lý chứng chỉ tích hợp, xác thực người dùng và giải mã SSL/TLS. Tất cả cùng nhau cung cấp khả năng quản lý tập trung và linh hoạt các cài đặt TLS;
  • độ đàn hồi. ELB có thể xử lý những thay đổi đột ngột trong lưu lượng mạng. Và việc tích hợp sâu với Auto Scaling sẽ cung cấp cho ứng dụng đủ tài nguyên nếu tải thay đổi mà không cần can thiệp thủ công;
  • mềm dẻo. Bạn có thể sử dụng địa chỉ IP để định tuyến các yêu cầu đến mục tiêu của ứng dụng của mình. Điều này mang lại sự linh hoạt khi ảo hóa các ứng dụng mục tiêu, do đó mang lại khả năng lưu trữ nhiều ứng dụng trên một phiên bản duy nhất. Vì các ứng dụng có thể sử dụng một cổng mạng duy nhất và có các nhóm bảo mật riêng biệt nên việc giao tiếp giữa các ứng dụng sẽ được đơn giản hóa khi chúng ta có kiến ​​trúc dựa trên vi dịch vụ;
  • giám sát và kiểm toán. Bạn có thể giám sát các ứng dụng trong thời gian thực bằng các tính năng của Amazon CloudWatch. Chúng ta đang nói về số liệu, nhật ký, theo dõi yêu cầu. Nói một cách đơn giản, bạn sẽ có thể xác định các vấn đề và xác định chính xác các điểm nghẽn về hiệu suất;
  • cân bằng tải lai. Khả năng cân bằng tải giữa các tài nguyên tại chỗ và AWS bằng cách sử dụng cùng một bộ cân bằng tải giúp dễ dàng di chuyển hoặc mở rộng các ứng dụng tại chỗ lên đám mây. Việc xử lý lỗi cũng được đơn giản hóa bằng cách sử dụng đám mây.

Nếu bạn muốn biết chi tiết, đây là một số liên kết hữu ích khác từ trang web chính thức của Amazon:

  1. Cân bằng tải đàn hồi.
  2. Khả năng cân bằng tải đàn hồi.

Nguồn: www.habr.com

Thêm một lời nhận xét