AWS căn bản – Bài 5: Tìm hiểu về ELB trong AWS
Chào các bạn lại là mình đây, ở bài trước chúng ta đã tìm hiểu sơ qua các khái niệm về Auto Scaling trong AWS và khi đã nói về Auto Scaling thì không thể không nhắc đến ELB trong AWS.
Vậy ELB là gì? Cơ chế hoạt động của ELB như nào? Và ELB hỗ trợ những loại LB nào?
Để trả lần lượt các câu hỏi trên thì mình cùng nhau tìm hiểu nhé!
ELB viết tắt của Elastic Load Balancing là dịch vụ cân bằng tải của AWS cung cấp, dành riêng cho hạ tầng cloud AWS. Với ELB, người dùng có thể phân phối lưu lượng truy cập từ ngoài Internet vào trong các service khác của AWS như là EC2, ECS, EKS, Containers, Lambda Functions, IP Addresses.
Nó có thể chia trong 1 AZ hoặc nhiều AZ trong cùng region. ELB giúp tăng tính HA và đảm bảo an toàn cho hệ thống một cách toàn diện hoặc phân phối lưu lượng truy cập trong nội bộ service của hạ tầng AWS do người dùng tự thiết kế.
Thêm 1 câu hỏi được đặt ra, vậy ELB AWS hỗ trợ bao nhiêu loại Load Balancer? Xin thưa là 4 nhé, chi tiết như bên dưới:
- Application Load Balancer (ALB)
- Hỗ trợ duy nhất giao thức HTTP/HTTPS(Application), giao thức HTTP/2, chuyển hướng giao thức HTTP
- Có thể khai báo cấu hình ALB listener ở dãy port (1-65535) cho giao thức HTTP/HTTPS
- Kết hợp service AWS cert Manager để quản lý các chứng chỉ SSL cho HTTPS
- Không hỗ trợ assign Elastic IP Public
- Network Load Balancer (NLB)
- Hỗ trợ duy nhất cho gio thức TCP và TLS
- NLB AWS được thiết kế để có thể chịu tải hàng triệu request/giây
- Có hỗ trợ assign Elastic IP Public
- Gateway Load Balancer (GLB)
- Cho phép triển khai, mở rộng, quản lý các ứng dụng 3th party network(như là firewall,..)
- Hoạt động ở lớp Network
- Sử dụng Geneve protocol trên port 6081
- Classic Load Balancer (CLB), Load Balancer này xuất hiện lần đầu từ năm 2009, cho nên service này khá là cũ và không được sử dụng nhiều nữa, do đó mình không đề cập chi tiết ở đây. Tuy nhiên, các bạn có thể lên Goolge để tìm hiểu thêm về nó nếu bạn có hứng thú nhé.
Đến đây ta sẽ tìm hiểu về Target Group là gì? là một khái niệm liên quan đến việc định tuyến traffic (lưu lượng) đến các ứng dụng và dịch vụ được triển khai trên các máy chủ ảo EC2.
Một target group đại diện cho một nhóm các máy chủ EC2 đang chạy cùng một ứng dụng hoặc dịch vụ, và được sử dụng để xác định đích đến cho traffic từ một load balancer (bộ cân bằng tải).
Khi một load balancer nhận được yêu cầu từ một khách hàng, nó sẽ sử dụng thông tin về target group để quyết định máy chủ EC2 nào trong target group sẽ nhận được yêu cầu này. Điều này giúp cân bằng tải giữa các máy chủ EC2 và tăng tính khả dụng và độ tin cậy của ứng dụng hoặc dịch vụ được triển khai trên các máy chủ đó.
Hay nói 1 cách gắn ngọn, Target Group bao gồm các ý chính sau đây:
- Là destination của ELB.
- Chúng ta có thể tạo nhiều target group cho nhiều loại request khác nhau
Tính phí dựa trên số giờ sử dụng ELB và LCU (Load Balancer Unit)
Tại sao, khi ở đầu bài viết chúng tôi đã nói là một khi đã đề cập đến Auto Scaling thì phải đi kèm với ELB trong AWS, xin thưa là trong một hệ thống lớn khi traffic đến chúng ta sẽ sử dụng Load Balancer để nhận traffic sau đó phân phối các traffic đến các EC2. Và chúng ta cũng cần cấu hình sẵn Auto Scaling Group để hệ thống có thể scale khi có lượng traffic khổng lồ tại một thời điểm. Khi các instances mới được tạo ra ELB sẽ nhận được thông tin và bắt đầu chia tải cho các EC2 vừa mới được tạo. Đây là sự kết hợp rất hoàn hảo để tạo ra tính HA cho hệ thống có lượng truy cập lớn tại một thời điểm.
Đến đây thì bài viết hôm nay cũng tương đối dài rồi, để tránh mọi người bị bội thực các khái niệm thì chúng ta sẽ hẹn nhau ở bài kế tiếp về VPC Peering nhé. Như đã nói từ những bài đầu tiên, mọi thắc mắc cũng như góp ý về nội dung mọi người cứ bình luận bên dưới nhé, vì một môi trường, không gian học hỏi trau dồi ngày càng hoàn thiện hơn, xin chào và hẹn gặp lại ở bài kế tiếp.