ความรู้พื้นฐานเกี่ยวกับ Load Balancer

หนึ่งในเรื่องพื้นฐานที่ควรต้องรู้และเข้าใจคือ Load Balancer หรือการกระจายงานที่เข้ามาไปยัง server หรือ resource ต่าง ๆ เพื่อให้ระบบทำงานอย่างมีประสิทธิภาพ รวมทั้งต้องทำให้มั่นใจด้วยว่า ทำการกระจายงานไปยัง server ตามที่ต้องการ

ไปเจอ web อธิบายเรื่อง Load Balancer ด้วยรูปการ์ตูนจาก Cloud for Geeks เห็นว่าน่าสนใจ จึงนำมาฝาก

เริ่มด้วยการทำงานแบบ Client-Server
โดยถ้ามีผู้ใช้งานมาเพียง 2 คน จะไม่ทำให้เกิดปัญหา
แต่เมื่อผู้ใช้งานมีจำนวนมาก ๆ แล้ว แน่นอนก่อให้เกิดปัญหาต่อระบบ

เช่นทำงานช้าลง ไม่สามารถรองรับการใช้งานได้

การแก้ไขปัญหามีหลายแนวทาง เช่น

  • การขยายเครื่อง ด้วยการเพิ่ม resource ต่าง ๆ เช่น CPU, Memory และ Network เป็นต้น
  • การเพิ่มเครื่อง server เข้ามาช่วยกันทำงาน

โดยวิธีการที่ใช้งานบ่อย ๆ คือ การเพิ่มเครื่อง serverเข้ามาช่วยกันทำงาน

ทั้งลดปัญหาเรื่อง Single Point of Failure (SPoF) ทั้งลดปัญหาเรื่อง downtime ทั้งช่วยเพิ่มประสิทธฺภาพการทำงานของระบบ ทั้งยังช่วยป้องกันการโจมตีระบบ จากนั้นจึงต้องมีสิ่งที่เข้ามาช่วยกระจายงานจาก client ไปยัง server ต่าง ๆ อาจจะมองว่าเป็นการแก้ไขปัญหา ด้วยการเพิ่มปัญหามาอีกตัว !! นั่นก็คือ Load Balancer นั่นเอง

ต่อจากแนวคิดพื้นฐานของ Load Balancer นั้นยังมีแนวคิดอื่น ๆ เพิ่มเข้ามาอีก

ยกตัวอย่างเช่น Health Check ของ server หรือ service

เพื่อให้ทาง Load Balancer ทำการตรวจสอบว่าแต่ละ server สามารถใช้งานได้หรือไม่ ถ้าทำงานไม่ได้ จะทำการตัดออกจากการกระจายงานนั่นเอง มิเช่นนั้น Load Balancer ก็จะกระจายงานเข้ามายัง server ที่ไม่พร้อมทำงาน ก็จะส่งผลเสียต่อระบบอย่างมาก

ต่อมาคือ เทคนิคในการกระจายงานของ Load Balancer ซึ่งมีหลายเทคนิคให้เลือกใช้งาน ตามความต้องการหรือตามแต่ละ usecase มีดังนี้

  • Random selection
  • Round Robin
  • Weighted Round Robin Method
  • Least connection
  • Least response time
  • Source IP hashing
0
224