Load Balancer

NETWORKING

LOAD BALANCER

Load Balancer คืออุปกรณ์หรือซอฟต์แวร์ที่ทำหน้าที่เป็น ผู้จัดการการรับส่งข้อมูล โดยจะ กระจายภาระงาน (Load) หรือคำร้องขอ (Requests) จากผู้ใช้งานอินเทอร์เน็ตไปยัง เซิร์ฟเวอร์หลายเครื่อง ที่ทำงานเหมือนกันในกลุ่ม (Server Farm หรือ Server Pool) อย่างเท่าเทียมและมีประสิทธิภาพ

เป้าหมายหลักคือการทำให้มั่นใจว่าแอปพลิเคชันหรือบริการออนไลน์นั้น:
    1.    มีความพร้อมใช้งานสูง (High Availability): สามารถทำงานได้อย่างต่อเนื่องแม้ว่าจะมีเซิร์ฟเวอร์บางเครื่องล่ม
    2.    มีประสิทธิภาพสูง (High Performance): ลดภาระงานของเซิร์ฟเวอร์แต่ละเครื่อง ทำให้การตอบสนองต่อผู้ใช้รวดเร็ว
    3.    มีความสามารถในการขยายขนาด (Scalability): สามารถเพิ่มหรือลดจำนวนเซิร์ฟเวอร์ในระบบได้อย่างง่ายดายเพื่อรองรับปริมาณการใช้งานที่เปลี่ยนแปลงไป

การทำงานของ Load Balancer
Load Balancer จะนั่งอยู่ด้านหน้า (เป็น Reverse Proxy) ของกลุ่มเซิร์ฟเวอร์ และมีขั้นตอนการทำงานหลักคือ:
    1.    รับคำร้องขอ: รับคำร้องขอทั้งหมดจากผู้ใช้
    2.    ตรวจสอบสถานะ (Health Check): ตรวจสอบสถานะของเซิร์ฟเวอร์แต่ละเครื่องอย่างต่อเนื่อง หากพบว่าเซิร์ฟเวอร์ใดไม่พร้อมใช้งาน (ล่มหรือมีปัญหา) จะตัดเซิร์ฟเวอร์นั้นออกจากกลุ่มเพื่อไม่ให้ส่งงานไป
    3.    ตัดสินใจกระจายงาน: ใช้ อัลกอริทึม (Algorithm) ในการตัดสินใจว่าจะส่งคำร้องขอถัดไปไปยังเซิร์ฟเวอร์ใดในกลุ่มที่ยังคงทำงานอยู่

อัลกอริทึมการกระจายงานที่นิยม (Load Balancing Algorithms)
Load Balancer ใช้วิธีการต่าง ๆ ในการกระจายภาระงาน:

 

อัลกอริทึม หลักการทำงาน เหมาะสำหรับ
Round Robin การมองเห็นแบบครบวงจร (Unified Visibility) กระจายคำร้องขอไปยังเซิร์ฟเวอร์ตามลำดับหมุนเวียนไปทีละเครื่อง (Server 1 Server 2 Server 3 Server 1...) กรณีที่เซิร์ฟเวอร์ทุกเครื่องมีประสิทธิภาพเท่ากัน
Weighted Round Robin กำหนด น้ำหนัก (Weight) ให้กับแต่ละเซิร์ฟเวอร์ตามประสิทธิภาพ (เช่น เครื่องที่แรงกว่ามีน้ำหนักสูงกว่า) เครื่องที่มีน้ำหนักสูงจะได้รับคำร้องขอมากกว่า กรณีที่เซิร์ฟเวอร์มีสเปคแตกต่างกัน
Least Connections ส่งคำร้องขอใหม่ไปยังเซิร์ฟเวอร์ที่มี การเชื่อมต่อใช้งานอยู่ (Active Connections) น้อยที่สุดในขณะนั้น กรณีที่เซสชันของผู้ใช้ใช้เวลาไม่เท่ากัน (Dynamic Load)
Least Response Time ส่งคำร้องขอไปยังเซิร์ฟเวอร์ที่มี เวลาตอบสนอง (Response Time) เร็วที่สุดและมีจำนวนการเชื่อมต่อน้อยที่สุด เน้นการตอบสนองที่รวดเร็วที่สุด
Source IP Hash ใช้ IP Address ต้นทางของผู้ใช้มาคำนวณค่า (Hash) เพื่อส่งคำร้องขอจากผู้ใช้คนเดิมไปยังเซิร์ฟเวอร์เครื่องเดิมเสมอ (Session Persistence) เหมาะสำหรับแอปพลิเคชันที่ต้องการรักษา Session ข้อมูล


ประเภทของ Load Balancer
Load Balancer สามารถทำงานได้ในระดับต่าง ๆ ของแบบจำลอง OSI (Open Systems Interconnection):
    •    Layer 4 Load Balancer (Network Load Balancer - NLB): ทำงานในระดับ Transport Layer (TCP/UDP) โดยอิงข้อมูลจาก IP Address และ Port Number เป็นหลัก มีความเร็วสูงและมีความหน่วงต่ำ (Low Latency)
    •    Layer 7 Load Balancer (Application Load Balancer - ALB): ทำงานในระดับ Application Layer (HTTP/HTTPS) สามารถอ่านและอิงการตัดสินใจจากข้อมูลที่อยู่ในคำร้องขอ เช่น URL, HTTP Header, Cookies ซึ่งให้ความยืดหยุ่นในการทำ Content-Based Routing และมักจะมีความสามารถด้านความปลอดภัยเพิ่มเข้ามาด้วย (เช่น SSL Offloading)


 

Products & Services

This website Collects

To give you a better experience, by continuing to use our website, you are agreeing to the use of cookies and personal data as set out in our Privacy Policy | Terms and Conditions

Accept