บทที่ 11 : Load Balancer คืออะไร และทำงานอย่างไร
คำนำ
ในยุคที่เว็บไซต์และบริการออนไลน์ต้องรองรับผู้ใช้งานจำนวนมาก การออกแบบระบบให้รองรับโหลดได้สูง มีความเสถียร และพร้อมใช้งานตลอดเวลาจึงเป็นสิ่งสำคัญ
Load Balancer (ตัวกระจายโหลด) จึงเป็นเทคโนโลยีที่เข้ามามีบทบาทสำคัญ ช่วยกระจายปริมาณงานให้ระบบหลังบ้านทำงานได้อย่างราบรื่นและมีประสิทธิภาพ
1. Load Balancer คืออะไร?
Load Balancer คืออุปกรณ์หรือซอฟต์แวร์ที่ทำหน้าที่กระจายปริมาณงาน (เช่น การร้องขอจากผู้ใช้งาน หรือ Request) ไปยังเซิร์ฟเวอร์หลาย ๆ ตัวที่อยู่เบื้องหลัง เพื่อ:
-
ป้องกันการทำงานหนักเกินไปของเซิร์ฟเวอร์ตัวใดตัวหนึ่ง
-
เพิ่มประสิทธิภาพระบบ
-
ลดปัญหาคอขวด
-
เพิ่มความพร้อมใช้งาน (High Availability)
2. ทำไมต้องมี Load Balancer?
-
รองรับผู้ใช้จำนวนมากพร้อมกัน
-
ป้องกันระบบล่มเมื่อมีปริมาณงานสูง
-
ช่วยทำ Failover กรณีเซิร์ฟเวอร์บางตัวมีปัญหา
-
กระจายโหลดให้เซิร์ฟเวอร์ทุกตัวทำงานสมดุล
-
ช่วยในการขยายระบบ (Scalability)
3. หลักการทำงานของ Load Balancer
-
ผู้ใช้ส่งคำขอ (Request) มายัง Load Balancer
-
Load Balancer เลือกเซิร์ฟเวอร์ปลายทางจากกลุ่มเซิร์ฟเวอร์ตามอัลกอริทึมที่กำหนด
-
ส่งต่อ Request ไปยังเซิร์ฟเวอร์นั้น ๆ
-
เมื่อเซิร์ฟเวอร์ตอบกลับ Load Balancer อาจส่งผลลัพธ์กลับไปยังผู้ใช้ (กรณีเป็น Reverse Proxy)
4. ประเภทของ Load Balancer
1) Hardware Load Balancer
-
เป็นอุปกรณ์เฉพาะทาง เช่น F5 BIG-IP, Citrix Netscaler
-
ใช้ในองค์กรขนาดใหญ่
-
ประสิทธิภาพสูง ราคาสูง
2) Software Load Balancer
-
ติดตั้งในเครื่องเซิร์ฟเวอร์ทั่วไป
-
ตัวอย่างเช่น Nginx, HAProxy
3) Cloud Load Balancer
-
เป็นบริการจากผู้ให้บริการ Cloud เช่น AWS ELB, Azure Load Balancer, Google Cloud Load Balancing
-
บริหารจัดการง่าย ขยายตัวอัตโนมัติ
5. รูปแบบการทำงานของ Load Balancer
1) Layer 4 Load Balancing (Transport Layer)
-
ทำงานในระดับ TCP/UDP
-
ดูข้อมูลที่ IP Address และ Port
-
ประสิทธิภาพสูงเพราะไม่วิเคราะห์ข้อมูลระดับ Application
2) Layer 7 Load Balancing (Application Layer)
-
ทำงานในระดับ HTTP/HTTPS
-
วิเคราะห์ URL, Header, Cookies, Session
-
รองรับฟีเจอร์ขั้นสูงเช่น SSL Termination, Content-based Routing
6. อัลกอริทึมในการกระจายโหลด
-
Round Robin:
แจกจ่ายแบบวนลูปไปทีละเครื่อง -
Least Connections:
เลือกเซิร์ฟเวอร์ที่มีจำนวนการเชื่อมต่อน้อยที่สุดในขณะนั้น -
IP Hash:
ผูกผู้ใช้แต่ละคนกับเซิร์ฟเวอร์ประจำ -
Weighted Round Robin:
แจกโหลดโดยพิจารณาน้ำหนัก (Weight) ของแต่ละเซิร์ฟเวอร์ -
Health Check Based:
ตรวจสอบสุขภาพเซิร์ฟเวอร์ก่อนส่งงาน หากเครื่องใดล่มจะไม่นำมาใช้
7. ฟังก์ชันเสริมของ Load Balancer
-
SSL Termination:
ถอดรหัส SSL ที่ Load Balancer ลดภาระเซิร์ฟเวอร์หลังบ้าน -
Session Persistence (Sticky Session):
ผูกผู้ใช้รายเดิมกับเซิร์ฟเวอร์เดิมเพื่อไม่ให้ข้อมูล session หาย -
Health Monitoring:
ตรวจสอบสถานะของแต่ละเซิร์ฟเวอร์อยู่ตลอดเวลา -
Failover:
หากเซิร์ฟเวอร์ใดล่มจะตัดออกจากระบบอัตโนมัติ -
Auto Scaling Integration (ใน Cloud):
ปรับจำนวนเซิร์ฟเวอร์โดยอัตโนมัติตามโหลด
8. ตัวอย่างสถานการณ์การใช้งาน Load Balancer
-
เว็บไซต์ขนาดใหญ่ เช่น Shopee, Lazada, Facebook
-
ระบบธนาคารออนไลน์
-
ระบบ SaaS (เช่น Office 365, Google Workspace)
-
ระบบบริการ Streaming (เช่น Netflix, YouTube)
9. ข้อดีของ Load Balancer
-
ป้องกันระบบล่มเมื่อมีผู้ใช้งานหนาแน่น
-
เพิ่มความเสถียรของระบบ
-
รองรับการขยายระบบได้ง่าย
-
ช่วยจัดการทรัพยากรได้คุ้มค่าขึ้น
-
เพิ่มความปลอดภัยในบางกรณี (ผ่าน Reverse Proxy)
10. ข้อจำกัดของ Load Balancer
-
ต้องมีการวางแผนการออกแบบระบบให้ดี
-
Hardware Load Balancer มีต้นทุนสูง
-
ต้องกำหนด Health Check ให้เหมาะสม
-
ในบางกรณี Session Persistence ต้องออกแบบร่วมกับระบบ Authentication
11. บทสรุป
Load Balancer เป็นหัวใจสำคัญในการออกแบบระบบให้รองรับผู้ใช้จำนวนมากโดยยังคงความเสถียร รวดเร็ว และพร้อมใช้งานอยู่เสมอ ในยุค Cloud Computing และระบบ Distributed System Load Balancer กลายเป็นสิ่งจำเป็นที่ขาดไม่ได้
ในบทถัดไป เราจะไปต่อกันที่ บทที่ 12: CDN (Content Delivery Network) คืออะไร และทำงานอย่างไร ซึ่งเป็นเทคนิคเสริมสำคัญในการกระจายเนื้อหาให้ผู้ใช้ทั่วโลกเข้าถึงได้อย่างรวดเร็ว
ป้ายกำกับ
บทความ
Facebook SDK
CSS Content ( แสดงทุกหน้าของบทความ )
COKKIE POPUP