ELB (Elastic Load Balancing)
সহজ কথায়, ELB হলো একটি সার্ভিস যা আগত অ্যাপ্লিকেশন ট্রাফিককে (User Requests) একাধিক টার্গেটে (যেমন EC2 instances, Containers, বা IP addresses) সমানভাবে ভাগ করে দেয়।
- প্রয়োজনীয়তা: যদি আপনার শুধু একটি সার্ভার থাকে এবং সেটি ক্রাশ করে, তবে আপনার সাইট ডাউন হয়ে যাবে। কিন্তু ELB থাকলে সে অটোমেটিক বুঝতে পারে কোন সার্ভারটি “Healthy” আর কোনটি “Unhealthy”, এবং সে অনুযায়ী ট্রাফিক পাঠায়।
ELB-এর প্রধান প্রকারভেদ
AWS বর্তমানে ৪ ধরনের লোড ব্যালেন্সার অফার করে, তবে আপনার জন্য নিচের ৩টি জানা সবচেয়ে জরুরি:
Application Load Balancer (ALB)
এটি Layer 7 (HTTP/HTTPS) এ কাজ করে। এটি সবচেয়ে “বুদ্ধিমান” ব্যালেন্সার।
- কাজ: এটি URL বা Path দেখে সিদ্ধান্ত নিতে পারে। যেমন: example.com/api যাবে একদল সার্ভারে, আর example.com/blog যাবে অন্য দলে।
Network Load Balancer (NLB)
এটি Layer 4 (TCP/UDP) এ কাজ করে।
Gateway Load Balancer (GWLB)
এটি মূলত সিকিউরিটি এবং থার্ড-পার্টি অ্যাপ্লায়েন্স (যেমন ফায়ারওয়াল) এর ট্রাফিক ম্যানেজ করতে ব্যবহৃত হয়।
ELB কীভাবে কাজ করে? (Step-by-Step Flow)
একটি ELB সাধারণত তিনটি উপাদানের সমন্বয়ে কাজ করে:
- Listener: এটি একটি প্রসেস যা একটি নির্দিষ্ট পোর্ট এবং প্রটোকল (যেমন HTTP/Port 80) চেক করে যে কোনো রিকোয়েস্ট আসছে কি না।
- Target Group: এটি হলো আপনার সার্ভারগুলোর একটি দল (যেমন আপনার তৈরি করা ৩টি EC2 ইনস্ট্যান্স)।
- Health Checks: ELB নিয়মিত আপনার সার্ভারগুলোতে “পিং” পাঠিয়ে চেক করে তারা ঠিক আছে কি না। যদি কোনো সার্ভার রেসপন্স না দেয়, তবে ELB সেখানে ট্রাফিক পাঠানো বন্ধ করে দেয়।
ELB-এর সুবিধাসমূহ
- High Availability: আপনার ডায়াগ্রাম অনুযায়ী, কোনো একটি EC2 ইনস্ট্যান্স নষ্ট হলেও ইউজাররা অন্যটি দিয়ে সার্ভিস পাবে।
- Security: আপনি সরাসরি EC2-এর পোর্ট ওপেন না করে শুধু ELB-এর পোর্ট ওপেন রাখতে পারেন। এতে সার্ভার সরাসরি অ্যাটাক থেকে রক্ষা পায়।
- Auto Scaling Integration: আপনার Launch Template বা Auto Scaling Group-এর সাথে ELB যুক্ত থাকলে, নতুন সার্ভার তৈরি হওয়ার সাথে সাথে ELB তাকে অটোমেটিক ট্রাফিক দেওয়া শুরু করে।