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

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

นอกจากนี้ Elastic Load Balancing ยังสามารถตรวจจับอินสแตนซ์ EC2 ที่ไม่มีประสิทธิภาพ และทันทีที่พบว่าอินสแตนซ์ EC2 ทำงานผิดปกติ ELB จะหยุดส่งการรับส่งข้อมูลไปจนกว่าจะกลับมาใช้งานได้อีกครั้ง ลูกค้าสามารถเปิดใช้งาน Elastic Load Balancing ได้อย่างง่ายดายภายใน Availability Zone เดียวหรือหลายพื้นที่ เพื่อประสิทธิภาพของแอปพลิเคชันที่สม่ำเสมอยิ่งขึ้น
คุณสมบัติการปรับสมดุลโหลดแบบยืดหยุ่น
ความปลอดภัย
คุณสามารถจัดการและสร้างกลุ่มความปลอดภัยที่เชื่อมโยงกับ Elastic Load Balancing ใน Amazon Virtual Private Cloud (VPC) เพื่อมอบตัวเลือกเครือข่ายและความปลอดภัยเพิ่มเติมสำหรับ Application Load Balancer และ Classic Load Balancer
ความพร้อมใช้งานสูง
Elastic Load Balancer มีความพร้อมใช้งานสูง คุณสามารถกระจายการรับส่งข้อมูลขาเข้าไปยังแอปพลิเคชันของคุณไปยังอินสแตนซ์ EC2 ใน Availability Zone เดียวหรือหลาย Availability Zone
ปริมาณงานสูง
Elastic Load Balancer ได้รับการออกแบบมาเพื่อรองรับการรับส่งข้อมูลในขณะที่เติบโตขึ้น และสามารถโหลดและสร้างสมดุลให้กับคำขอนับล้าน/วินาที นอกจากนี้ยังสามารถจัดการกับการจราจรที่ติดขัดอย่างกะทันหัน
ตรวจสุขภาพ
ด้วย Elastic Load Balancing คุณสามารถรักษาความสมบูรณ์ของอินสแตนซ์ EC2 ของคุณ และไม่ต้องเสี่ยงกับการส่งปริมาณข้อมูลไปยังอินสแตนซ์ที่ไม่มีประสิทธิภาพ
การตรวจสอบการปฏิบัติงานและการบันทึก
Amazon CloudWatch รายงานตัววัดแอปพลิเคชันและ Classic Load Balancer เช่น การนับข้อผิดพลาด ประเภทข้อผิดพลาด เวลาแฝงของคำขอ จำนวนคำขอ และอื่นๆ
ลบการป้องกัน
คุณสามารถเปิดใช้งานการป้องกันการลบบน Elastic Load Balancer เพื่อป้องกันไม่ให้ถูกลบโดยไม่ได้ตั้งใจ
ส่วนประกอบของตัวโหลดบาลานซ์แบบยืดหยุ่น
ผู้ฟัง
คุณต้องกำหนดค่าตัวฟังอย่างน้อยหนึ่งตัวสำหรับตัวโหลดบาลานซ์ของคุณ เป็นกระบวนการที่ตรวจสอบคำขอเชื่อมต่อ มันถูกตั้งค่าด้วยโปรโตคอลและพอร์ตสำหรับการเชื่อมต่อสำหรับการเชื่อมต่อส่วนหน้า (ไคลเอนต์ไปยังตัวโหลดบาลานซ์) และโปรโตคอลสำหรับการเชื่อมต่อส่วนหลัง (ตัวโหลดบาลานซ์ไปยังอินสแตนซ์ส่วนหลัง)
โปรโตคอลที่รองรับสำหรับการทำโหลดบาลานซ์แบบยืดหยุ่น ได้แก่:
- HTTPS ( HTTP ที่ปลอดภัย)
- TCP
- SSL (TCP ที่ปลอดภัย)
โหลดบาลานเซอร์
ตัวโหลดบาลานซ์ทำหน้าที่เป็น "ตำรวจจราจร" ต่อหน้าเซิร์ฟเวอร์ของคุณ โดยกระจายคำขอของไคลเอ็นต์ไปยังเซิร์ฟเวอร์ทั้งหมดที่ติดตั้งเพื่อจัดการในลักษณะที่เพิ่มความเร็วและการใช้ความจุสูงสุด และทำให้แน่ใจว่าไม่มีเซิร์ฟเวอร์ทำงานหนักเกินไป ซึ่งอาจส่งผลให้ประสิทธิภาพลดลง
ตัวโหลดบาลานซ์กำหนดเส้นทางการรับส่งข้อมูลไปยังเซิร์ฟเวอร์ที่ใช้งานอยู่ในกรณีที่เซิร์ฟเวอร์หนึ่งออฟไลน์ ตัวโหลดบาลานซ์เริ่มต้นการร้องขอไปยังเซิร์ฟเวอร์ใหม่เมื่อมีการเพิ่มไปยังกลุ่มเซิร์ฟเวอร์
กลุ่มเป้าหมาย
คำขอจะถูกส่งไปยังเป้าหมายที่ลงทะเบียนไว้ตั้งแต่หนึ่งเป้าหมายขึ้นไปโดยใช้แต่ละกลุ่มเป้าหมาย คุณกำหนดกลุ่มเป้าหมายและเงื่อนไขเมื่อคุณสร้างกฎ Listener แต่ละรายการ เมื่อเป็นไปตามเงื่อนไขของกฎ การรับส่งข้อมูลจะถูกส่งไปยังกลุ่มเป้าหมายที่เหมาะสม
สำหรับคำขอประเภทต่างๆ คุณสามารถสร้างกลุ่มเป้าหมายแยกกันได้ ตัวอย่างเช่น สร้างกลุ่มเป้าหมายที่แตกต่างกันสำหรับคำขอไปยังไมโครเซอร์วิสของแอปพลิเคชันและคำขอทั่วไป
ประเภทของโหลดบาลานเซอร์
Application Load Balancer
Application Load Balancer ช่วยให้นักพัฒนาสามารถตั้งค่าและกำหนดทิศทางการรับส่งข้อมูลของผู้ใช้ปลายทางไปยังแอปที่ทำงานบนคลาวด์สาธารณะของ AWS
การทำโหลดบาลานซ์เป็นสิ่งสำคัญในสภาพแวดล้อมคลาวด์ที่มีเว็บแอปพลิเคชันมากมาย ตัวโหลดบาลานซ์ช่วยให้แน่ใจว่าไม่มีเซิร์ฟเวอร์ใดโอเวอร์โหลดโดยแบ่งทราฟฟิกเครือข่ายและกระแสข้อมูลระหว่างเซิร์ฟเวอร์หลายตัว ซึ่งจะช่วยเพิ่มประสบการณ์ของผู้ใช้ เพิ่มการตอบสนองและความพร้อมใช้งานของแอปพลิเคชัน และสามารถป้องกันการโจมตีแบบปฏิเสธการให้บริการ (DDoS) แบบกระจายได้
การเข้าถึงเว็บแอปพลิเคชันเพิ่มขึ้นอย่างมากในช่วงไม่กี่ปีที่ผ่านมา อย่างไรก็ตาม การเข้าชมที่เพิ่มขึ้นโดยไม่คาดคิดอาจทำให้บริการออนไลน์ช้าลงและลดความพร้อมใช้งานได้ Application Load Balancer กระจายโหลดเครือข่ายในระบบคลาวด์สาธารณะอย่างมีประสิทธิภาพเพื่อเพิ่มความเสถียรและความพร้อมใช้งาน

Application Load Balancer จะนำทราฟฟิกไปยังเป้าหมายที่สมบูรณ์ภายในทรัพยากรคลาวด์เท่านั้น หากแอปพลิเคชันที่มีปัญหาถึงเลเยอร์ 7 WebSocket เป็นโปรโตคอลอื่นที่รองรับโดย Application Load Balancer สำหรับการเชื่อมต่อกับเซิร์ฟเวอร์พื้นฐานที่เพิ่มขึ้น
เว็บไซต์และแอปพลิเคชันมือถือที่ทำงานในคอนเทนเนอร์หรือบนอินสแตนซ์ AWS EC2 จะได้รับประโยชน์สูงสุดจากการใช้ตัวโหลดบาลานซ์ของแอปพลิเคชัน ในสถาปัตยกรรมไมโครเซอร์วิส สามารถใช้ Application Load Balancer เป็นโหลดบาลานเซอร์ภายในหน้าอินสแตนซ์ EC2 หรือคอนเทนเนอร์ Docker ที่ใช้บริการเฉพาะ นอกจากนี้ยังสามารถใช้หน้าแอปพลิเคชัน RESTful API ได้อีกด้วย
บริการของ AWS จำนวนมากเข้ากันได้กับโหลดบาลานเซอร์ของแอปพลิเคชัน ซึ่งรวมถึง:
- การปรับขนาดอัตโนมัติของ AWS
- Amazon Elastic Container Service
- AWS CloudFormation
- AWS CodeDeploy
- ตัวจัดการใบรับรอง AWS
ตัวโหลดบาลานซ์แบบคลาสสิก
การรับส่งข้อมูลจากแอปพลิเคชันที่เข้ามาจะถูกแบ่งออกเป็นอินสแตนซ์ EC2 จำนวนมากเป็น Availability Zone ต่างๆ โดยใช้ตัวโหลดบาลานซ์แบบคลาสสิก ตัวโหลดบาลานซ์แบบคลาสสิกทำหน้าที่เป็นจุดติดต่อลูกค้าเพียงจุดเดียว ทำให้แอปพลิเคชันของคุณสามารถเข้าถึงได้มากขึ้น คุณสามารถเพิ่ม/ลบอินสแตนซ์ออกจากตัวโหลดบาลานซ์แบบคลาสสิกได้ตามความต้องการของคุณ โดยไม่ทำให้ขั้นตอนทั่วไปของคำขอที่ส่งไปยังแอปพลิเคชันของคุณเสียหาย
ผู้ฟังใช้โปรโตคอลและพอร์ตที่คุณตั้งค่าเพื่อตรวจสอบคำขอเชื่อมต่อไคลเอ็นต์ จากนั้น Listener จะส่งคำขอไปยังอินสแตนซ์ที่ลงทะเบียนอย่างน้อยหนึ่งอินสแตนซ์โดยใช้โปรโตคอลและพอร์ตที่กำหนดค่าไว้ คุณแก้ไขตัวโหลดบาลานซ์ของคุณโดยเพิ่มผู้ฟังอย่างน้อยหนึ่งราย
เพื่อให้แน่ใจว่าตัวโหลดบาลานซ์จะกำหนดเส้นทางคำขอไปยังอินสแตนซ์ที่มีประสิทธิภาพเท่านั้น คุณสามารถกำหนดค่าการตรวจสอบสภาพ ซึ่งจะใช้เพื่อติดตามสภาพของอินสแตนซ์ที่ลงทะเบียน
ตามค่าเริ่มต้น ตัวจัดสรรภาระงานแบบคลาสสิกจะกระจายการรับส่งข้อมูลอย่างเท่าเทียมกันระหว่าง Availability Zone ที่คุณเปิดใช้งานสำหรับตัวโหลดบาลานซ์ของคุณ เปิดใช้งานการทำโหลดบาลานซ์ข้ามโซนบนตัวโหลดบาลานซ์ของคุณเพื่อกระจายทราฟฟิกระหว่างอินสแตนซ์ที่ลงทะเบียนทั้งหมดใน Availability Zone ที่เปิดใช้งานทั้งหมด

ประเภทของ Classic Load Balancer:
- Internet-Facing Classic Load Balancer : ตัวโหลดบาลานซ์ที่เชื่อมต่อกับอินเทอร์เน็ตสามารถกำหนดเส้นทางคำขอจากไคลเอนต์ไปยังอินสแตนซ์ EC2 ที่ลงทะเบียนกับตัวโหลดบาลานซ์บนอินเทอร์เน็ต ต้องขอบคุณโดเมน DNS ที่แก้ไขได้แบบสาธารณะ ตัวโหลดบาลานซ์ของคุณจะได้รับชื่อ DNS สาธารณะเมื่อมีการสร้าง ซึ่งไคลเอนต์สามารถใช้เพื่อส่งคำขอได้ เซิร์ฟเวอร์ DNS แปลชื่อ DNS ของตัวโหลดบาลานซ์ของคุณเป็นที่อยู่ IP สาธารณะของโหนดตัวโหลดบาลานซ์ ที่อยู่ IP ส่วนตัวเชื่อมต่อโหนดการจัดสรรภาระงานแต่ละโหนดกับอินสแตนซ์ส่วนหลัง
- โหลดบาลานเซอร์ ภายในแบบคลาสสิก: โหนดของตัวจัดสรรภาระงานภายในมีที่อยู่ IP ส่วนบุคคลเท่านั้น ชื่อ DNS ของตัวจัดสรรภาระงานภายในสามารถแก้ไขได้แบบสาธารณะไปยังที่อยู่ IP ของโหนด ด้วยเหตุนี้ คำขอจึงสามารถกำหนดเส้นทางโดยตัวจัดสรรภาระงานภายในจากไคลเอ็นต์ที่มีสิทธิ์เข้าถึง VPC ของตัวจัดสรรภาระงาน
Network Load Balancer
ตัวโหลดบาลานซ์เครือข่ายทำงานที่เลเยอร์ที่สี่ของโมเดล OSI สามารถจัดการกับคำขอนับล้านต่อวินาที
ตัวจัดสรรภาระงานเลือกเป้าหมายจากกลุ่มเป้าหมายสำหรับกฎเริ่มต้นหลังจากได้รับคำขอเชื่อมต่อ พยายามสร้างการเชื่อมต่อ TCP ไปยังเป้าหมายที่เลือกบนพอร์ตที่ระบุในการตั้งค่าตัวฟัง
เพื่อเพิ่มความทนทานต่อความผิดพลาดของแอปพลิเคชันของคุณ คุณสามารถเปิดใช้งานโซนความพร้อมใช้งานได้หลายโซน ซึ่งเป็นบริการแบบชำระเงินใน AWS สำหรับ Network Load Balancer หาก Availability Zone หนึ่งล่ม แอปพลิเคชันของคุณจะไม่หยุดทำงาน
สำหรับทราฟฟิก TCP เป้าหมายจะถูกเลือกโดยใช้อัลกอริทึมแฮชโฟลว์ตามโปรโตคอล พอร์ตต้นทาง ที่อยู่ IP ต้นทาง พอร์ตปลายทาง ที่อยู่ IP ปลายทาง และหมายเลขลำดับ TCP
การเชื่อมต่อ TCP ของไคลเอ็นต์มีหมายเลขลำดับและพอร์ตต้นทางต่างกัน ดังนั้นการเชื่อมต่อจึงถูกส่งไปยังเป้าหมายอื่น การเชื่อมต่อ TCP ที่ไม่ซ้ำกันแต่ละรายการจะถูกส่งไปยังเป้าหมายเดียวตลอดระยะเวลาของการเชื่อมต่อ
เกตเวย์โหลดบาลานเซอร์
อุปกรณ์เสมือนของบริษัทอื่นของคุณสามารถปรับใช้ ปรับขนาด และจัดการได้ง่ายๆ ด้วยความช่วยเหลือของ Gateway Load Balancer มีเกตเวย์เดียวสำหรับแยกการรับส่งข้อมูลระหว่างอุปกรณ์เสมือนจำนวนมากและปรับขนาดขึ้นหรือลงเพื่อตอบสนองความต้องการ ซึ่งจะช่วยขจัดจุดที่อาจเกิดความล้มเหลวในเครือข่ายของคุณและเพิ่มความพร้อมใช้งาน
อุปกรณ์เสมือนจากผู้ผลิตอิสระสามารถค้นหา ทดสอบ และซื้อได้โดยตรงผ่าน AWS Marketplace ไม่ว่าคุณจะต้องการทำงานกับผู้จำหน่ายปัจจุบันของคุณต่อไปหรือลองทำอะไรใหม่ๆ ประสบการณ์แบบบูรณาการนี้จะช่วยเร่งกระบวนการปรับใช้เพื่อให้คุณได้รับประโยชน์จากอุปกรณ์เสมือนของคุณได้เร็วขึ้น
ประโยชน์ของเกตเวย์โหลดบาลานเซอร์:
- การปรับใช้อุปกรณ์เสมือนของบุคคลที่สามเร็วขึ้น
- ปรับขนาดอุปกรณ์เสมือนของคุณในขณะที่จัดการต้นทุน
- ปรับปรุงความพร้อมใช้งานของอุปกรณ์เสมือน
คำพูดสุดท้าย
Elastic Load Balancer เป็นส่วนสำคัญของโครงสร้างพื้นฐานจำนวนมากที่สร้างบน AWS คุณลักษณะที่เราได้รับจาก ELB ทำให้การจัดการโครงสร้างพื้นฐานของคุณง่ายขึ้น Elastic Load Balancing เป็นวิธีที่ทดลองแล้วจริงในการแพร่กระจายคำขอของแอปพลิเคชันและการเข้าชมเว็บไปยังเป้าหมายหรืออินสแตนซ์ต่างๆ
คุณสามารถปรับขนาดปริมาณงานต่างๆ ได้โดยอัตโนมัติโดยใช้ Elastic Load Balancer เราได้ครอบคลุมโหลดบาลานเซอร์ทุกประเภทที่ AWS ให้บริการ และคุณสามารถใช้ตามความต้องการของแอปพลิเคชันของคุณ




