Load Balancer คือ ระบบเซิร์ฟเวอร์ที่มีประสิทธิภาพสูง รองรับการทำงานทีมีปริมาณงาน (Workload) เป็นจำนวนมากได้เป็นอย่างดี เกิดจากการนำเซิร์ฟเวอร์หลายๆ เครื่องที่มีหน้าที่การทำงานเดียวกันมาทำงานร่วมกันเพื่อกระจายปริมาณงานไปยังแต่ละเครื่อง ทำให้ระบบสามารถรองรับการทำงานหนักๆ ได้เป็นอย่างดี มีความยืดหยุ่นในการออกแบบระบบให้เหมาะกับทุกๆ สถานการณ์ เพื่อตอบสนองความต้องการของคุณอย่างแท้จริง
ทำไมต้องใช้ Load Balancer ?
เพราะความต้องการใช้งานที่เพิ่มขึ้น ทำให้ต้องหาวิธีการรองรับ เพื่อไม่ให้เกิดปัญหา Over Load จนเครื่อง Web Server, Application Server หรือ Database Server ไม่สามารถให้บริการได้ การทำ Server Load Balance เป็นอีกวิธีการหนึ่งที่จะสามารถช่วยแก้ปัญหาได้ โดยที่ไม่จำเป็นต้องซื้อเครื่องที่ Spec สูงมากๆ ซึ่งมีราคาแพงมาเปลี่ยนแทนเครื่องเดิม แต่สามารถใช้เครื่องที่ Spec เท่าๆกันหลายเครื่อง มาทำงานร่วมกันแทน โดยการทำ Load Balance ในบางกรณีจะทำให้ได้ ระบบมีประสิทธิภาพสูงและความเสถียรมากกว่าการใช้เครื่องใหญ่ๆ เครื่องเดียวอีกด้วย
โดยหลักนิยมใช้งานกันส่วนมากจะเป็นทั้ง 3 วีธีดังนี้
1.Round Robin เป็นการส่ง Traffic ไปยัง Server ภายในกลุ่มวนไปเรื่อย เช่น 1,2,3,…
2.Sticky เป็นการส่ง Traffic โดยยึดติดกับ Session ที่ User เคยเข้าไปใช้งาน
3.Work Load เป็นการส่ง Traffic โดยดูที่ Performance ของ Server ภายในกลุ่มเป็นสำคัญ
Load Balancer Software ที่นำมาใช้หลักๆจะเป็น
1.CentOS 7 เป็นระบบปฏิบัติการ
2.Software ที่เป็น Opensource คือ Haproxy มาทำเป็นตัวกระจายโหลด (Load Balancer)
3.Apache 2.4 ทำการ Run เป็นเว็บเซิร์ฟเวอร์
4.ฐานข้อมูลนั้นนำ Mysql 5.7 มาใช้งาน
5.ในการ Sync ข้อมูลระหว่างเครื่องที่เป็นเว็บเซิร์ฟนั้นจะมี Open Source ที่ชื่อว่า Unsion มาทำการ Replicate
6.Redis เป็นตัวเก็บ Session โดยการทำงานเป็นแบบ Nosql ซึ่งนำมาเก็บ Session การเรียกใช้งานของเว็บเซิร์ฟเวอร์
รูปที่ 1 การทำงานหลักที่เรียกว่า Load Balancer
จะเห็นได้ว่าจะรูปที่ 1 จะเป็นการทำงานของ User ที่มีการเรียกใช้งานจาก Web browser ต่างๆ อทิเช่น google chorme firefox IE เป็นต้น เรียกการทำงานมายังเครื่องเซิร์ฟเวอร์ที่เป็น Loadbalancer ซึ่งตัว Loadbalancer จะกระจายโหลดไปยังเว็บเซิร์ฟเวอร์แต่ละเครื่องซึ่งมาจากการ Config ไม่ว่าจะเป็น แบบ Round Robin แบบ Sticky ก็ดี อยู่ที่ลักษณะการทำงานของแต่ระบบที่จะใช้งาน ซึ่งรูปนี้จะมีการ Sync Data กันโดยนำ Unsion มาทำการ Sync ข้อมูลกับเครื่องที่เป็นเว็บเซิร์ฟเวอร์ และมีการแยกดาต้าเบสเซิร์ฟเวอร์ออกจากเครื่องที่เป็นเว็บเซิร์ฟเวอร์เพื่อให้มีการทำงานได้อย่างมีประสิทธิภาพ นอกจากนั้นนำ Redis มาติดตั้งบนเครื่องที่เป็นดาต้าเบสเซิร์ฟเวอร์เพื่อให้มีหน้าที่เก็บ Session ของการทำงาน
รูปที่ 2 เป็นการ Statistics Report
Statistics Report เป็นการแสดงให้เห็นถึง Status การทำงานว่ามีการใช้งานตอนนี้ไปเท่าไหร่ มีการส่ง Traffic ไปแล้วเท่าไหร่ รวมถึงบอก Status เครื่องเซิร์ฟเวอร์ว่ามีการทำงานเป็นอย่างไร Report อันนี้สามารถวิเคราะห์การเจริญเติบโตว่าควรจะเพิ่มเว็บเซิร์ฟให้เพียงพอต่อการทำงานอีกหรือไม่
Load Balancer ป้องกัน DDOS ตัวอย่างเช่น
1.สามารถป้องกันการใช้งาน Traffic Bandwidth ขนาดใหญ่ที่อาจจะมีผู้ไม่หวังดีทำงานส่งเข้ามายังเครื่องเซิร์ฟเวอร์ของเรา
2.กำหนดค่าป้องกัน IP ที่มีการติด Blacklist เช่น Barracudacentral Spamcop Spamhaus เป็นต้น
3.สามารถเขียน Acl ระบุการโจมตีจาก Bots เนื่องจากตัว Haproxy นั้นสามารถเขียน Acl ป้องกันการโจมตีเพิ่มเติมเข้าไปกับ Config ได้
4.ป้องกันการโจมตี Syn Flood ซึ่งเป็นการโจมตีเมื่อเครื่อง Server ได้รับแพ็คเกต SYN จะจองพื้นที่ในหน่วยความจำไว้เป็นคิวเพื่อใช้สร้างการเชื่อมต่อ ซึ่งถ้าหากมีเครื่อง Client ส่งแพ็คเกต SYN เข้ามาเป็นจำนวนมากหรือส่งแพ็คเกต SYN เข้ามาจากหลายๆ เครื่องพร้อมกันจนจำนวนคิวที่มีอยู่ไม่เพียงพอ ก็จะทำให้เครื่อง Server ไม่สามารถให้บริการต่อได้
ระบบบที่นำ Monitoring สามารถใช้งานได้ดังนี้
1.Zabbix นำมาใช้งานเพื่อรองรับการทำงานแจ้งเตือนตัวระบบบอกถึงสถานะการทำงานของ Service ต่างๆ โดยสามารถมอนิเตอร์ได้ถึงในส่วนของ Appication Layer
2.Managed Server Service จะเป็นตัวแสดงให้เห็นถึงปัญหาต่างๆที่เกิดขึ้นไม่ว่าจะเป็น Incident Problem ซึ่งได้เกิดขึ้นกับเครื่องเซิร์ฟเวอร์จะออกมาเป็นในมุมมองของ Report
Who’s using it ใครที่มีการใช้งานบ้าง
หลักๆที่ใช้งานตอนนี้จะมี Instagram Twitter ที่เป็นที่รู้จักกันดี เป็นต้น ที่มา https://www.haproxy.org/they-use-it.html
หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับ Load Balancer หรือผลิตภัณฑ์กลุ่ม Cloud ตัวอื่นๆ สามารถติดต่อ 02-055-1095 Netway.co.th ได้ตลอด 24 ชม