อะไรคือความแตกต่างระหว่าง Application, Network, และ Gateway Load Balancing

Application Load Balancer (ALB), Network Load Balancer (NLB) และ Gateway Load Balancer (GLB) คือ Load Balancer ทั้ง 3 ประเภทที่ใช้งานในระบบคลาวด์ Load Balancing เป็นกระบวนการกระจายการรับส่งข้อมูลเครือข่ายอย่างเท่าเทียมกันทั่วทั้งแหล่งทรัพยากรที่รองรับแอปพลิเคชัน แอปพลิเคชันสมัยใหม่จะประมวลผลผู้ใช้หลายล้านคนพร้อม ๆ กัน ปริมาณการรับส่งข้อมูลสูงเหล่านี้จำเป็นต้องใช้เซิร์ฟเวอร์ทรัพยากรจำนวนมากที่มีข้อมูลที่ซ้ำกัน ALB จะตรวจสอบเนื้อหาที่ร้องขอ เช่น ส่วนหัว HTTP หรือ ID เซสชัน SSL เพื่อเปลี่ยนเส้นทางการรับส่งข้อมูลแอปพลิเคชัน NLB ตรวจสอบที่อยู่ IP และข้อมูลเครือข่ายอื่น ๆ เพื่อเปลี่ยนเส้นทางการรับส่งข้อมูลอย่างเหมาะสม GLB ทำหน้าที่เป็นเกตเวย์เครือข่ายที่โปร่งใส (จุดเข้าและออกจุดเดียวสำหรับการรับส่งข้อมูลทั้งหมด) และกระจายการรับส่งข้อมูลไปพร้อมกับปรับขนาดอุปกรณ์เสมือนของคุณตามความต้องการ

อ่านเกี่ยวกับ Load Balancing

วิธีการทำงาน: ALB กับ NLB vs. GLB

ทั้ง ALB NLB และ GLB ล้วนแล้วแต่มีฟังก์ชันที่แตกต่างกัน ด้วยเหตุนี้เอง พวกมันจึงทำงานด้วยวิธีที่ต่างกันเล็กน้อย และมีส่วนประกอบที่แตกต่างกัน 

วิธีการทำงานของ Application Load Balancer

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

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

แผนภาพต่อไปนี้จะแสดงวิธีการทำงานของ ALB อย่างไร

Network Load Balancer ทำงานอย่างไร

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

Load Balancer จะตรวจสอบคุณภาพการทำงานของเป้าหมายที่ลงทะเบียน และกำหนดเส้นทางไปยังเป้าหมายที่ดีเท่านั้น หลังจากที่ Load Balancer ได้รับคำขอการเชื่อมต่อแล้ว ระบบจะเลือกเป้าหมายจากกลุ่มเป้าหมายในกฎเริ่มต้น แลพจะพยายามเปิดการเชื่อมต่อ TCP ไปยังเป้าหมายที่เลือกในพอร์ตที่ระบุไว้ในการกำหนดค่า Listener แต่ละการเชื่อมต่อ TCP จะได้รับการกำหนดเป้าหมายไปยังเป้าหมายเดียวกันตลอดอายุการเชื่อมต่อ ในทำนองเดียวกันนี้เอง คุณยังสามารถกำหนดเส้นทางโฟลว์ UDP ไปยังเป้าหมายเดียวได้อย่างสม่ำเสมอตลอดอายุการเชื่อมต่อ 

วิธีการทํางานของ Load Balancer ของเกตเวย์

คุณสามารถปรับใช้ จัดการ และปรับขนาดอุปกรณ์เสมือนได้ด้วย GLB เช่น การตรวจจับและการป้องกันการบุกรุก ไฟร์วอลล์ และระบบตรวจสอบแพ็กเก็ตเชิงลึก ระบบจะสร้างทางเข้าและทางออกเดียวสำหรับการรับส่งข้อมูลของอุปกรณ์ทั้งหมด และปรับขนาดอุปกรณ์เสมือนของคุณตามความต้องการ นอกจากนี้ คุณยังสามารถใช้ระบบเพื่อแลกเปลี่ยนการรับส่งข้อมูลผ่าน Virtual Private Cloud (VPC) ได้อีกด้วย 

ใน GLB คุณสร้างกฎโดยใช้ตารางการจัดเส้นทางได้ โดยระบบจะเลือกกลุ่มเป้าหมายในการส่งต่อการรับส่งข้อมูลแตกต่างกันไปตามกฎที่คุณได้ตั้งค่าเอาไว้ ระบบจะรับแพ็กเก็ต IP และส่งต่อการรับส่งข้อมูลไปยังกลุ่มเป้าหมายที่กำหนดไว้โดยเฉพาะ

ความแตกต่างที่สำคัญระหว่าง ALB กับ NLB vs. GLB

ALBs, NLbs และ GLBs ทำงานบนชั้นที่ต่างกันในกระบบสื่อสารของเครือข่าย ALB ทำงานบนเลเยอร์ OSI 7 และช่วยให้สามารถจัดการการรับส่งข้อมูลและกำหนดเส้นทางในระดับแอปพลิเคชัน NLB ทำงานบนเลเยอร์ 4 เพื่อจัดการการรับส่งข้อมูลในระดับเครือข่ายโดยยึดตามตามพอร์ตและที่อยู่ IP GLB ทำงานบนเลเยอร์ 3 และ 7 โดยให้บริการการปรับสมดุลและการกำหนดเส้นทางในระดับเครือข่ายพร้อมกับฟังก์ชันด้านเกตเวย์

อ่านเกี่ยวกับรุ่นของ OSI

ความแตกต่างที่สำคัญระหว่าง ALB, NLB และ GLB

ประเภทเป้าหมาย

ประเภทเป้าหมายคือตำแหน่งข้อมูลที่ Load Balancer แต่ละตัวกำหนดเส้นทางรับส่งข้อมูล ALB จะทำงานกับที่อยู่ IP อินสแตนซ์ และประเภทเป้าหมายของ AWS Lambda NLBS จะทำงานกับ IP และอินสแตนซ์ และยังสามารถกำหนดเส้นทางการรับส่งไปยัง ALB เพื่อส่งคำขอที่ซับซ้อนมากยิ่งขึ้น GLB ทำงานกับ IP และประเภทเป้าหมายอินสแตนซ์

อ่านเกี่ยวกับอินสแตนซ์ในการประมวลผลบนคลาวด์

พฤติกรรมพร็อกซี

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

  • หาก Load Balancer ทำหน้าที่เป็นพร็อกซีแล้วยุติการเชื่อมต่อของไคลเอ็นต์
  • หาก Load Balancer ส่งต่อคำขอโดยไม่สิ้นสุดโฟลว์

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

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

โปรโตคอล

Load Balancer เหล่านี้รองรับโปรโตคอลหลายแบบ เพื่อจัดการกับประเภทที่เฉพาะเจาะจงของการรับส่งข้อมูลและทำงานขั้นสูง ALB รองรับโปรโตคอล HTTP, HTTPS และ gRPC สำหรับการรับส่งข้อมูลบนเว็บ NLB รองรับโปรโตคอล TCP, UDP และ TLS ซึ่งครอบคลุมการกระจายการรับส่งข้อมูลในระดับเครือข่าย และอย่างสุดท้าย GLB จะครอบคลุมการกำหนดเส้นทางตาม IP และทำหน้าที่จัดการกับทุกโปรโตคอลที่ใช้ IP 

อัลกอริทึม

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

เมื่อใดที่ควรใช้: ALB เทียบกับ NLB vs. GLB

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

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

GLB เป็นตัวเลือกที่เหมาะสมอย่างยิ่งหากคุณทำการปรับสมดุลในระดับเกตเวย์เครือข่าย ยกตัวอย่างเช่น GLB จะทำงานได้ดี หากคุณจัดการการรับส่งข้อมูลระหว่างระบบคลาวด์และสภาพแวดล้อมในองค์กรหรือข้าม Region ต่างๆ เนื่องจากระบบได้รวมการปรับสมดุล OSI เลเยอร์ 3 และ 4 เอาไว้ จึงสามารถกำหนดเส้นทางการรับส่งข้อมูลระหว่าง Region และเครือข่ายที่ต่างกัน เนื่องจากระบบรองรับการกำหนดเส้นทางตาม IP จึงสามารถกระจายการรับส่งข้อมูลผ่านเกตเวย์เสมือนดังนั้น จึงมีความพร้อมใช้งานและมีความสามารถในการปรับขนาดที่สูง

สรุปความแตกต่าง: ALB vs. NLB vs. GLB

 

Application Load Balancer (ALB)

Network Load Balancer (NLB)

เกตเวย์ Load Balancer (GLB)

เลเยอร์ OSI

ทำงานบนเลเยอร์ 7 ซึ่งเป็นเลเยอร์แอปพลิเคชัน

ทำงานบนเลเยอร์ 4 ซึ่งเป็นชั้นการขนส่ง

ทำงานบนเลเยอร์เครือข่ายเลเยอร์ 3 และเลเยอร์ 7

ประเภทเป้าหมาย

ทำงานร่วมกับประเภทเป้าหมาย IP อินสแตนซ์และแลมบ์ด้า

ทำงานร่วมกับประเภทเป้าหมาย IP, อินสแตนซ์ และ ALB

ทำงานร่วมกับ IP และประเภทเป้าหมายอินสแตนซ์

พฤติกรรมพร็อกซี

สิ้นสุดการเชื่อมต่อ

สิ้นสุดการเชื่อมต่อ

ไม่ยุติโฟลว์

โปรโตคอล

รองรับโปรโตคอล HTTP, HTTPS และ gRPC

รองรับโปรโตคอล TCP, UDP และ TLS

รองรับการกำหนดเส้นทางตาม IP 

อัลกอริทึม

Round-robin

โฟลว์ Hash

การค้นหาตารางเส้นทาง

AWS จะช่วยตอบสนองความต้องการ Load Balancer ของคุณได้อย่างไร?

Elastic Load Balancing (ELB) เป็นบริการ Load Balance ที่มีการจัดการอย่างเต็มรูปแบบ จะกระจายปริมาณการใช้งานแอปพลิเคชันที่เข้ามาไปยังเป้าหมายและอุปกรณ์เสมือนโดยอัตโนมัติผ่าน Amazon Web Services (AWS) และทรัพยากรในองค์กร นอกจากนี้ยังรองรับ Load Balance ข้ามโซนทั่ว AWS Region คุณสามารถใช้ ELB เพื่อตั้งค่า ALB, NLB หรือ GLB ได้ตามความต้องการของคุณ 

ALB เป็นองค์ประกอบหนึ่งของ ELB ELB ยังรองรับ NLB, GLB และ Classic Load Balancer Load Balancer เหล่านี้เป็นช่องทางติดต่อของลูกค้าและช่วยปรับปรุงความสามารถในการปรับขนาดแอปพลิเคชันด้วยการจัดการที่ปลอดภัย คุณสามารถเลือก Load Balancer หนึ่งตัวหรือหลายตัว และกำหนดค่าได้เมื่อคุณตั้งค่า ELB สำหรับสภาพแวดล้อมระบบคลาวด์ของคุณ

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