ข้ามไปที่เนื้อหาหลัก

Load Balancing คืออะไร

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 Balancer คืออะไร

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

Static Load Balancing

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

รอบ - วิธี Robin

เซิร์ฟเวอร์มีที่อยู่ IP ที่จะบอกลูกค้าว่าจะส่งคำขอไปที่ใด ที่อยู่ IP เป็นตัวเลขที่ยาวและยากที่จะจดจำ เพื่อให้ง่าย Domain Name System จะจับคู่ชื่อเว็บไซต์กับเซิร์ฟเวอร์ เมื่อคุณป้อน aws.amazon.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 ก็กำหนดเส้นทางคำขอแต่ละรายการไปยังเซิร์ฟเวอร์เดียวในเซิร์ฟเวอร์ฟาร์มที่เหมาะสมที่สุด เพื่อจัดการกับคำขอ

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 ได้อย่างไร

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

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

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

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

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

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

เริ่มต้นด้วยการปรับสมดุลโหลดด้วยการ สร้างบัญชี AWS วันนี้!