Stay Informed

บทที่ 11: Load Balancer คืออะไร และทำงานอย่างไร

 

บทที่ 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 Comment