ทำความรู้จักกับ ALB, NLB, GLB ของ ELB(Elastic Load Balancing) บน AWS ในเบื้องต้น

2022.06.04

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

จากการทดลองในบทความที่แล้วทดลองใช้ ALB ของ EC2 เพื่อแบ่งการเชื่อมต่อ
ทำให้เราเข้าใจเกี่ยวกับ ALB(Application Load Balancer) และ ELB(Elastic Load Balancing) บ้างแล้ว
วันนี้เราจะมาแนะนำและทบทวนเกี่ยวกับ Load Balancer ชนิดอื่นๆของ AWS กันบ้างครับ

ทบทวนเกี่ยวกับ Load Balancer

ชื่อเรียกทั่วๆไปเรียกว่า Load Balancer ครับ
AWS มี Service ที่ทำเกี่ยวกับ Load Balancer เรียกว่า Elastic Load Balancing
ซึ่ง Elastic Load Balancing ปัจจุบันมีอยู่ 4 ประเภทได้แก่
・ALB(Application Load Balancer)
・NLB(Network Load Balancer)
・GLB(Gateway Load Balancer)
・CLB(Classic Load Balancer)*
*AWS จะเลิกให้บริการ Classic Load Balancer ในวันที่ 15 สิงหาคม 2022 ผมจึงไม่ขออธิบายในส่วนนี้

ALB(Application Load Balancer)


เป็น Load Balancer สำหรับ แอปพลิเคชันโดยเฉพาะ
ถูกออกแบบให้ทำงานบน L7(Application Layer: HTTP, HTTPS, WebSocket, gRPC)
สามารถทำได้ทั้ง Balancing เนื้อหารีเควสและควบคุม Traffic ของURL Path(ฟังก์ชั่น Path routing)
และยังสามารถปรับเปลี่ยนบาลานซ์ในการโหลดให้แบ่งไปยัง Target Group ที่เรากำหนดได้ด้วย
โดยในการตั้งค่าเบื้องต้น(Default)จะตั้งค่าให้สามารถแบ่งการโหลดข้าม availability zone ได้

NLB(Network Load Balancer)


เป็น Load Balancer สำหรับระบบขนาดใหญ่ มีความสามารถสูง สามารถรับส่งรีเควสหลักล้านได้ในไม่กี่วินาที
ถูกออกแบบให้ทำงานบน L4(Transport Layer: TCP, UDP)
มีฟังก์ชัน Fault tolerance ทำให้สามารถคงการเชื่อมต่อในระยะเวลาหลายเดือนหรือหลายปีเลยทีเดียว
โดยในการตั้งค่าเบื้องต้น(Default)จะตั้งค่าให้ไม่สามารถแบ่งการโหลดข้าม availability zone ได้

GLB(Gateway Load Balancer)


เป็น Load Balancer ที่ทำหน้าที่เกี่ยวกับ Security ซึ่งแตกต่าง ALB และ NLB ที่เป็น Load Balancer สำหรับแอปพลิเคชันหรือเซิร์ฟเวอร์
GLB เป็นเซอร์วิสมีหน้าที่ปรับใช้, ปรับเปลี่ยน, ดูแล Security appliance บนคลาวด์(พวก Firewall)
โดยการติดตั้ง GLB Endpoint ที่ VPC ที่ต้องการใช้ ทำให้ GLB ผ่าน Traffic ได้
หากเราไม่ติดตั้ง GLB แล้วใช้ Virtual appliance เช่นการนำเข้า Network Security Tool
เพื่อควบคุม Traffic ใน EC2 Instance จะติดปัญหาในเรื่อง high availability และ scalability
ซึ่งหากใช้ GLB จะสามารถแก้ไขปัญหานี้ได้โดยง่าย

สรุป

หากจะต้องการนำ Load Balancer มาใช้สำหรับการการกระจายการเชื่อมต่อของแอปพลิเคชั่นทั่วไป
ผมแนะนำให้เลือกใช้ระหว่าง ALB และ NLB เว็บไซต์ทั่วไปจะแนะนำให้เลือกใช้ ALB ครับ
แต่ถ้าเป็นระบบขนาดใหญ่ที่ต้องการ high performance หรือนอกจากเว็บไซต์ก็แนะนำให้ลองพิจาณา NLB ดูครับ
โดยสามารถดูตารางเปรียบเทียบ ELB แต่ละประเภท Offical Websiteได้ที่นี่ได้เลยครับ
และหากสนใจศึกษาเพิ่มเติม สามารถอ่านได้จากบทความที่เกี่ยวข้องด้านล่างได้เลยครับ

บทความที่เกี่ยวข้อง

AWS Elastic Load Balancing
Amazon ALB (Application Load Balancer) คืออะไร? การแนะนำฟังก์ชันล่าสุดของ AWS ในปี 2022
ทดลองใช้ ALB ของ EC2 เพื่อแบ่งการเชื่อมต่อ