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