Load Balancing คืออะไร

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

ประโยชน์ของ Load Balancing คืออะไร

Load Balancing นำทางและควบคุมการรับส่งข้อมูลทางอินเทอร์เน็ตระหว่างเซิร์ฟเวอร์แอปพลิเคชันกับผู้เยี่ยมชมหรือลูกค้า ด้วยเหตุนี้จึงช่วยปรับปรุงความพร้อมใช้งาน ความสามารถในการเพิ่มทรัพยากร ความปลอดภัย และประสิทธิภาพการทำงานของแอปพลิเคชัน

ความพร้อมใช้งานของแอปพลิเคชัน

การที่เซิร์ฟเวอร์ล้มเหลวหรือต้องมีการบำรุงรักษา สามารถเพิ่มเวลาหยุดทำงานของแอปพลิเคชัน ทำให้แอปพลิเคชันของคุณไม่พร้อมใช้งานสำหรับผู้เยี่ยมชม Load balancer ช่วยเพิ่มความทนทานต่อความเสียหายของระบบ โดยการตรวจจับปัญหาเซิร์ฟเวอร์โดยอัตโนมัติ และเปลี่ยนเส้นทางการรับส่งข้อมูลของไคลเอ็นต์ไปยังเซิร์ฟเวอร์ที่พร้อมใช้งาน คุณสามารถทำ Load Balancing เพื่อทำให้งานเหล่านี้ง่ายขึ้น

  • ทำการบำรุงรักษาหรืออัปเกรดเซิร์ฟเวอร์ของแอปพลิเคชันโดยไม่ต้องหยุดการทำงานของแอปพลิเคชัน
  • กระบวนการกู้คืนจากความเสียหายโดยอัตโนมัติไปยังไซต์สำรองข้อมูล
  • การตรวจสอบสถานะประสิทธิภาพและป้องกันปัญหาที่อาจทำให้ต้องหยุดทำงาน

ความสามารถในการเพิ่มทรัพยากรของแอปพลิเคชัน

คุณสามารถใช้ Load Balancer เพื่อควบคุมการรับส่งข้อมูลเครือข่ายอย่างชาญฉลาดระหว่างเซิร์ฟเวอร์หลายเครื่อง แอปพลิเคชันของคุณสามารถจัดการการร้องขอของไคลเอ็นต์นับพันรายการได้ เนื่องจาก Load Balancing ทำหน้าที่ดังต่อไปนี้

  • ป้องกันปัญหาการติดขัดของการรับส่งข้อมูลที่เซิร์ฟเวอร์ใดเซิร์ฟเวอร์หนึ่ง
  • คาดการณ์ปริมาณการใช้แอปพลิเคชันเพื่อให้คุณสามารถเพิ่มหรือลบเซิร์ฟเวอร์อื่นได้ หากจำเป็น
  • เพิ่มความซ้ำซ้อนให้กับระบบของคุณเพื่อให้คุณสามารถปรับขนาดได้อย่างมั่นใจ

ความปลอดภัยของแอปพลิเคชัน

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

  • ตรวจสอบการรับส่งข้อมูล และบล็อกเนื้อหาที่เป็นอันตราย
  • เปลี่ยนเส้นทางการรับส่งข้อมูลการโจมตีไปยังเซิร์ฟเวอร์แบ็คเอนด์หลายเครื่องโดยอัตโนมัติเพื่อลดผลกระทบ
  • กำหนดเส้นทางการรับส่งข้อมูลผ่านกลุ่มไฟร์วอลล์เครือข่ายเพื่อเพิ่มความปลอดภัย

ประสิทธิภาพของแอปพลิเคชัน

Load balancer ปรับปรุงประสิทธิภาพของแอปพลิเคชันโดยการเพิ่มเวลาในการตอบสนองและลดเวลาแฝงของเครือข่าย มันจะทำงานสำคัญๆ หลายอย่างดังต่อไปนี้

  • กระจายการใช้งานอย่างสม่ำเสมอระหว่างเซิร์ฟเวอร์เพื่อปรับปรุงประสิทธิภาพของแอปพลิเคชัน
  • เปลี่ยนเส้นทางคำขอของไคลเอ็นต์ไปยังเซิร์ฟเวอร์ที่ใกล้กว่าเพื่อลดเวลาแฝง
  • ทำให้มั่นใจในความเสถียรและประสิทธิภาพของทรัพยากรการประมวลผลทางกายภาพและแบบเสมือน

Load Balancing ทำงานอย่างไร

บริษัทต่างๆ มักจะให้แอปพลิเคชันของตนทำงานบนเซิร์ฟเวอร์หลายเครื่อง การจัดเรียงเซิร์ฟเวอร์ดังกล่าวเรียกว่าเซิร์ฟเวอร์ฟาร์ม คำขอของผู้ใช้จะส่งไปยังแอปพลิเคชันก่อนจะไปที่ Load Balancer จากนั้น Load Balancer ก็กำหนดเส้นทางคำขอแต่ละรายการไปยังเซิร์ฟเวอร์เดียวในเซิร์ฟเวอร์ฟาร์มที่เหมาะสมที่สุด เพื่อจัดการกับคำขอ

Load Balancer เป็นเหมือนงานของผู้จัดการในร้านอาหาร อย่างร้านอาหารที่มีพนักงานเสิร์ฟห้าคน หากลูกค้าได้รับอนุญาตให้เลือกบริกรของตนเอง บริกรหนึ่งหรือสองคนอาจมีงานมากเกินไปในขณะที่คนอื่นๆ ไม่ได้ทำงาน เพื่อหลีกเลี่ยงสถานการณ์นี้ ผู้จัดการร้านอาหารต้องกำหนดลูกค้าให้กับพนักงานเสิร์ฟแต่ละคนที่เหมาะสมที่สุด

อัลกอริทึมของ Load Balancer คืออะไร

อัลกอริทึมของ Load Balancer คือชุดของกฎที่ Load Balancer ปฏิบัติตาม เพื่อกำหนดเซิร์ฟเวอร์ที่ดีที่สุดสำหรับแต่ละคำขอของไคลเอ็นต์ อัลกอริทึมของ Load Balancer แบ่งออกเป็นสองประเภทหลักๆ

Static Load Balancing

อัลกอริทึมของ Static Load Balancing เป็นไปตามกฎที่กำหนดไว้ และเป็นอิสระจากสถานะปัจจุบันของเซิร์ฟเวอร์ ต่อไปเป็นตัวอย่างของ Static Load Balancing

รอบ - วิธี Robin

เซิร์ฟเวอร์มีที่อยู่ IP ที่จะบอกลูกค้าว่าจะส่งคำขอไปที่ใด ที่อยู่ IP เป็นตัวเลขที่ยาวและยากที่จะจดจำ เพื่อให้ง่าย Domain Name System จะจับคู่ชื่อเว็บไซต์กับเซิร์ฟเวอร์ เมื่อคุณป้อน thinkwithwp.com ลงในเบราว์เซอร์ของคุณ คำขอจะส่งไปที่เนมเซิร์ฟเวอร์เราก่อน จากนั้นจะส่งที่อยู่ IP ของเรากลับไปยังเบราว์เซอร์ของคุณ

ในวิธี Round-Robin เนมเซิร์ฟเวอร์ที่รับผิดชอบจะทำการ Load Balancing แทนฮาร์ดแวร์หรือซอฟต์แวร์เฉพาะทาง เนมเซิร์ฟเวอร์จะส่งกลับที่อยู่ IP ของเซิร์ฟเวอร์ที่แตกต่างกันในเซิร์ฟเวอร์ฟาร์มทีละช่วงหรือในแบบ Round-Robin

Weighted Round-Robin Method(การวนต่อเนื่องแบบถ่วงเฉลี่ย)

ในการ Load Balancing แบบวนต่อเนื่องแบบถ่วงเฉลี่ย คุณสามารถกำหนดน้ำหนักที่แตกต่างกันให้กับแต่ละเซิร์ฟเวอร์ตามลำดับความสำคัญหรือตามความจุ เซิร์ฟเวอร์ที่มีน้ำหนักสูงกว่าจะได้รับการรับส่งข้อมูลแอปพลิเคชันที่เข้ามามากขึ้นจากเนมเซิร์ฟเวอร์

วิธีแฮช IP

ในวิธีการแฮช IP, Load Balancer จะทำการคำนวณทางคณิตศาสตร์ที่เรียกว่า Hashing บนที่อยู่ IP ของไคลเอ็นต์ มันจะแปลงที่อยู่ IP ของไคลเอ็นต์ จากนั้นจะจับคู่กับเซิร์ฟเวอร์แต่ละเครื่อง

Dynamic Load Balancing 

อัลกอริทึมของ Dynamic Load Balancing จะตรวจสอบสถานะปัจจุบันของเซิร์ฟเวอร์ก่อนที่จะกระจายการรับส่งข้อมูล ต่อไปนี้เป็นตัวอย่างบางส่วนของอัลกอริทึมของ Dynamic Load Balancing

Least Connection Method

การเชื่อมต่อเป็นช่องทางการสื่อสารแบบเปิดระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ เมื่อไคลเอ็นต์ส่งคำขอแรกไปยังเซิร์ฟเวอร์ จะมีการตรวจสอบสิทธิ์และสร้างการเชื่อมต่อระหว่างกัน ใน Least Connection Method, Load Balancer จะตรวจสอบว่าเซิร์ฟเวอร์ใดมีการเชื่อมต่อที่ใช้งานน้อยที่สุด และส่งการรับส่งข้อมูลไปยังเซิร์ฟเวอร์เหล่านั้น วิธีการนี้อนุมานว่าการเชื่อมต่อทั้งหมดต้องใช้พลังงานการประมวลผลที่เท่าเทียมกันสำหรับเซิร์ฟเวอร์ทั้งหมด

Weighted Least Connection Method

อัลกอริทึมของ Weighted Least Connection Method อนุมานว่าเซิร์ฟเวอร์บางเครื่องสามารถรองรับการเชื่อมต่อที่ใช้งานได้มากกว่าเซิร์ฟเวอร์อื่น ดังนั้นคุณสามารถกำหนดน้ำหนักหรือความสามารถที่แตกต่างกันให้กับแต่ละเซิร์ฟเวอร์และ Load Balancer จะส่งคำขอไคลเอ็นต์ใหม่ไปยังเซิร์ฟเวอร์ที่มีการเชื่อมต่อน้อยที่สุดตามกำลังการผลิต

Least Response Time Method

เวลาตอบสนอง คือ เวลาทั้งหมดที่เซิร์ฟเวอร์ใช้ในการประมวลผลคำร้องขอ และทำการส่งการตอบสนอง Least Response Time Method รวมเวลาตอบสนองของเซิร์ฟเวอร์และการเชื่อมต่อที่ใช้งานอยู่เพื่อกำหนดเซิร์ฟเวอร์ที่ดีที่สุด Load balancer ใช้อัลกอริทึมนี้เพื่อให้บริการที่รวดเร็วขึ้นสำหรับผู้ใช้ทุกคน

Resource-Based Method

ในวิธีการของ Resource-Based Method นั้น Load Balancer จะกระจายการรับส่งข้อมูลโดยการวิเคราะห์โหลดของเซิร์ฟเวอร์ปัจจุบัน ซอฟต์แวร์พิเศษที่เรียกว่าเอเจนต์จะทำงานบนเซิร์ฟเวอร์แต่ละเครื่อง และคำนวณการใช้ทรัพยากรของเซิร์ฟเวอร์ เช่น ความสามารถในการประมวลผลและหน่วยความจำ จากนั้น Load Balancer จะตรวจสอบซอฟต์แวร์เอเจนต์เพื่อหาทรัพยากรฟรีที่เพียงพอก่อนที่จะกระจายการรับส่งข้อมูลไปยังเซิร์ฟเวอร์นั้น

มี Load Balancing ประเภทอะไรบ้าง

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

Application Load Balancing

แอปพลิเคชันทันสมัยที่ซับซ้อนมีเซิร์ฟเวอร์ฟาร์มหลายแห่ง ซึ่งมีเซิร์ฟเวอร์หลายตัวที่พร้อมทำงานให้กับแอปพลิเคชันเดียว Application Load Balancer จะดูที่เนื้อหาคำขอ เช่น ส่วนหัว HTTP หรือ รหัสเซสชัน SSL เพื่อเปลี่ยนเส้นทางการรับส่งข้อมูล 

ยกตัวอย่างเช่น แอปพลิเคชันอีคอมเมิร์ซมีไดเรกทอรีของสินค้า ตะกร้าสินค้า และฟังก์ชั่นการชำระเงิน Application Load Balancer จะส่งคำขอเรียกดูผลิตภัณฑ์ไปยังเซิร์ฟเวอร์ที่มีรูปภาพและวิดีโอ แต่ไม่จำเป็นต้องคงการเชื่อมต่อแบบเปิดไว้ ด้วยการเปรียบเทียบ มันจะส่งคำขอตะกร้าสินค้าไปยังเซิร์ฟเวอร์ที่สามารถรักษาการเชื่อมต่อไคลเอ็นต์จำนวนมากและบันทึกข้อมูลรถเข็นไว้เป็นเวลานาน

Network Load Balancing

Network Load Balancer ตรวจสอบที่อยู่ IP และข้อมูลเครือข่ายอื่นๆ เพื่อเปลี่ยนเส้นทางการรับส่งข้อมูลอย่างเหมาะสม มันจะติดตามแหล่งที่มาของการเข้าชมแอปพลิเคชันและสามารถกำหนดที่อยู่ IP แบบคงที่ให้กับเซิร์ฟเวอร์หลายเครื่อง Network Load Balancer ใช้อัลกอริทึมของ Static Load Balancing และ Dynamic Load Balancing ที่อธิบายไปก่อนหน้านี้ เพื่อความสมดุลของโหลดเซิร์ฟเวอร์

Global Server Load Balancing

Global Server Load Balancing เกิดขึ้นในเซิร์ฟเวอร์กระจายตามภูมิศาสตร์หลายแห่ง ตัวอย่างเช่น บริษัทต่างๆ สามารถมีเซิร์ฟเวอร์ในศูนย์ข้อมูลหลายแห่งในประเทศต่างๆ และในผู้ให้บริการระบบคลาวด์ภายนอกทั่วโลก ในกรณีนี้ Load Balancer ในพื้นที่จะจัดการโหลดแอปพลิเคชันภายในภูมิภาคหรือโซน พวกเขาพยายามเปลี่ยนเส้นทางการรับส่งข้อมูลไปยังปลายทางของเซิร์ฟเวอร์ที่อยู่ใกล้กับไคลเอ็นต์ในเชิงภูมิศาสตร์ พวกเขาอาจเปลี่ยนเส้นทางการรับส่งข้อมูลไปยังเซิร์ฟเวอร์นอกเขตภูมิศาสตร์ของไคลเอ็นต์เฉพาะในกรณีที่เซิร์ฟเวอร์ล้มเหลว

DNS Load Balancing

ใน DNS Load Balancing คุณกำหนดค่าโดเมนของคุณเพื่อกำหนดเส้นทางคำขอของเครือข่ายข้ามกลุ่มทรัพยากรบนโดเมนของคุณ โดเมนสามารถเชื่อมโยงกับเว็บไซต์ ระบบเมล เซิร์ฟเวอร์การพิมพ์ หรือบริการอื่นๆ ที่สามารถเข้าถึงได้ผ่านทางอินเทอร์เน็ต DNS Load Balancing จะเป็นประโยชน์สำหรับการรักษาความพร้อมใช้งานของแอปพลิเคชันและในแง่ความสมดุลของการรับส่งข้อมูลเครือข่ายของแหล่งทรัพยากรที่กระจายไปทั่วโลก 

เทคโนโลยีของการ Load Balancing มีอะไรบ้าง

Load balancer เป็นหนึ่งในสองประเภท คือ ประเภทฮาร์ดแวร์และซอฟต์แวร์

Hardware Load Balancer

Hardware Load Balancer เป็นอุปกรณ์ฮาร์ดแวร์ที่สามารถประมวลผลและเปลี่ยนเส้นทางของการรับส่งข้อมูลกิกะไบต์ไปยังเซิร์ฟเวอร์หลายร้อยเครื่องได้อย่างปลอดภัย คุณสามารถเก็บไว้ในศูนย์ข้อมูลของคุณและใช้ การจำลองระบบเสมือนในการสร้าง Load Balancer แบบดิจิตอลหรือแบบเสมือนหลายๆ ตัวที่คุณสามารถจัดการได้จากส่วนกลาง

Software Load Balancer

Software Load Balancer เป็นแอปพลิเคชันที่ทำหน้าที่ในการ Load Balancing ทั้งหมด คุณสามารถติดตั้งบนเซิร์ฟเวอร์ใดๆ หรือเข้าถึงในฐานะเป็นบริการของบุคคลที่สามที่มีการจัดการเต็มรูปแบบ

การเปรียบเทียบ Hardware Load Balancer กับ Software Load Balancer

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

ในทางตรงกันข้าม Software Load Balancer มีความยืดหยุ่นมากกว่า พวกเขาสามารถเพิ่มทรัพยากรได้อย่างง่ายดายและเข้ากันได้ดีกว่ากับสภาพแวดล้อมการประมวลผลบนคลาวด์ที่ทันสมัย นอกจากนี้ยังมีค่าใช้จ่ายน้อยลงในการตั้งค่า จัดการ และการใช้งานเมื่อเวลาผ่านไป

AWS สามารถช่วยในการทำ Load Balancing ได้อย่างไร

Elastic Load Balancing (ELB) คือบริการ Load Balancing ที่มีการจัดการอย่างเต็มรูปแบบ ซึ่งจะกระจายปริมาณการใช้งานแอปพลิเคชันขาเข้าโดยอัตโนมัติไปยังเป้าหมายหลายรายการและอุปกรณ์เสมือนทั่วทั้ง AWS และทรัพยากรในองค์กร คุณสามารถใช้เพื่อปรับขนาดแอปพลิเคชันที่ทันสมัยโดยไม่ต้องกำหนดค่าที่ซับซ้อนหรือเกตเวย์ API คุณสามารถใช้ ELB เพื่อตั้งค่า Software Load Balancer ได้สี่ประเภท

  • Application Load Balancer กำหนดเส้นทางการรับส่งข้อมูลสำหรับคำขอที่ใช้ HTTP

  • Network Load Balancer กำหนดเส้นทางการรับส่งข้อมูลตามที่อยู่ IP เหมาะอย่างยิ่งสำหรับการปรับสมดุลคำขอที่ใช้ TCP และ User Datagram Protocol (UDP)

  • Gateway Load Balancer กำหนดเส้นทางการรับส่งข้อมูลไปยังอุปกรณ์เสมือนของบุคคลภายนอก เหมาะอย่างยิ่งสำหรับการรวมอุปกรณ์ของบริษัทอื่น เช่น ไฟร์วอลล์เครือข่าย เข้ากับการรับส่งข้อมูลเครือข่ายของคุณในวิธีที่ปรับขนาดได้และง่ายต่อการจัดการ

  • Classic Load Balancer กำหนดเส้นทางการรับส่งข้อมูลไปยังแอปพลิเคชันในเครือข่ายคลาสสิกของ Amazon EC2 ซึ่งเป็นเครือข่ายเดี่ยว แบบ Flat Network ที่คุณแชร์กับลูกค้ารายอื่น

คุณสามารถเลือก Load Balancer ตามความต้องการของคุณ ตัวอย่างเช่น Terminix ซึ่งเป็นแบรนด์ของการควบคุมศัตรูพืชระดับโลกใช้ Gateway Load Balancer เพื่อจัดการกับอัตราการโอนถ่ายข้อมูลที่มากกว่า 300% Second Spectrum ซึ่งเป็นบริษัทที่ให้บริการเทคโนโลยีการติดตามที่ขับเคลื่อนด้วยปัญญาประดิษฐ์สำหรับการถ่ายทอดกีฬา ใช้ AWS Load Balancer Controller เพื่อลดต้นทุนการโฮสต์ลง 90% Code.org เป็นองค์กรไม่แสวงหาผลกำไรที่ทุ่มเทให้กับการขยายการเข้าถึงวิทยาการคอมพิวเตอร์ในโรงเรียนใช้ Application Load Balancer เพื่อจัดการการรับส่งข้อมูลที่เพิ่มขึ้น 400% อย่างมีประสิทธิภาพในระหว่างเหตุการณ์การเขียนโค้ดออนไลน์

เริ่มต้นใช้งาน Load Balancing โดยการ สร้างบัญชี AWS วันนี้!

ขั้นตอนถัดไปของ Load Balancing กับ AWS

ดูแหล่งข้อมูลที่เกี่ยวกับผลิตภัณฑ์เพิ่มเติม
เรียนรู้เพิ่มเติมเกี่ยวกับบริการประมวลผล 
ลงชื่อสมัครใช้บัญชีฟรี

รับสิทธิ์การเข้าถึง AWS Free Tier ได้ทันที 

ลงชื่อสมัครใช้งาน 
เริ่มต้นการสร้างใน Console

เริ่มต้นสร้างด้วย AWS ใน AWS Management Console

ลงชื่อเข้าใช้