Elastic Load Balancing (ELB)
ตัวแจกจ่ายงานให้เซิร์ฟเวอร์ และการตรวจสอบสุขภาพ
ELB เหมือนพนักงานต้อนรับหน้าร้านอาหาร — เมื่อมีลูกค้าแห่กันเข้ามา พนักงานคนนี้จะดูว่าโต๊ะไหนว่าง แล้วจัดคิวต้อนรับแจกจ่ายลูกค้าไปนั่งให้กระจายๆ กัน เพื่อไม่ให้พนักงานเสิร์ฟคนใดคนหนึ่งโหลดหนักจนเกินไป
ELB (Elastic Load Balancing - บริการกระจายโหลด) ทำหน้าที่รับปริมาณการเข้าชม (Traffic) จากอินเทอร์เน็ต แล้วโยนกระจายโหลดการทำงานนั้นส่งต่อไปยังเซิร์ฟเวอร์เป้าหมายหลายๆ ตัวที่อยู่ด้านหลัง (เช่น EC2, คอนเทนเนอร์ หรือ Lambda) ซึ่งมักจะอยู่กระจายกันในหลาย Availability Zones (AZ) เพื่อสร้างความทนทานขั้นสูงสุด
- Health Checks (การตรวจสอบสุขภาพ) — เป็นอาวุธลับของ ELB มันจะคอยส่งสัญญาณ (Ping) ไปทักทายเซิร์ฟเวอร์เป้าหมายตลอดเวลา ถ้าเครื่องไหนไม่ตอบกลับ มันจะกาหัวว่าพัง (Unhealthy) และหยุดส่งลูกค้าไปหาเครื่องนั้นทันทีจนกว่ามันจะฟื้น
- เพื่อความปลอดภัย ลูกค้าจะไม่สามารถวิ่งทะลุเข้าเซิร์ฟเวอร์ของเราตรงๆ ได้ แอดมินมักจะตั้งค่า Security Group ของเซิร์ฟเวอร์ ให้ "อนุญาตเฉพาะคำขอที่ส่งมาจาก ELB ตัวนี้เท่านั้น"
สรุป Key Takeaways
- ELB = ตัวกลางรับ traffic แล้วแจกจ่ายให้เครื่อง EC2 ข้างหลัง (กระจายข้าม AZ ได้)
- Health Check ทำให้ ELB รู้ว่าเครื่องไหนพัง และเบี่ยง traffic หนีอัตโนมัติ
- ช่วยเพิ่มทั้ง elasticity (ขยายง่าย) และ fault tolerance (ทนทาน)
คำถามที่พบบ่อย
ELB กับ Auto Scaling ต่างกันยังไง ต้องใช้คู่กันไหม
ELB ทำหน้าที่กระจาย traffic ไปยังเครื่องที่มีอยู่ ส่วน Auto Scaling ทำหน้าที่เพิ่ม/ลดจำนวนเครื่องตามโหลด ในระบบจริงมักใช้คู่กันเสมอ — เมื่อ Auto Scaling สร้างเครื่องใหม่ มันจะลงทะเบียนเครื่องเข้า Target Group ของ ELB ให้อัตโนมัติ ผู้ใช้จึงไม่รู้สึกเลยว่าเบื้องหลังมีเครื่องเพิ่มหรือหาย
ตัว ELB เองจะกลายเป็น Single Point of Failure ไหม
ไม่ เพราะ ELB เป็น managed service ที่ AWS รันสำรองไว้หลายเครื่องหลาย AZ ให้อยู่แล้ว และขยายตัวเองตามปริมาณ traffic อัตโนมัติ เราไม่ต้องดูแลหรือ patch เครื่องของ ELB เอง
Health Check ของ ELB ตรวจอะไรบ้าง
เรากำหนด path ให้ ELB เรียกเป็นระยะ เช่น /health ถ้าเครื่องเป้าหมายตอบช้าเกินกำหนดหรือตอบ status code ที่ไม่ใช่ช่วง 200 ติดต่อกันครบจำนวนครั้งที่ตั้งไว้ (unhealthy threshold) ELB จะหยุดส่ง traffic ไปเครื่องนั้น และกลับมาส่งใหม่เมื่อผ่าน health check อีกครั้ง
ELB ส่ง traffic ไปได้แค่ EC2 หรือเปล่า
ไม่ใช่ — Target Group รองรับทั้ง EC2, container บน ECS/Fargate, Lambda function (ผ่าน ALB) และ IP address ปลายทางอื่นๆ เช่น เซิร์ฟเวอร์ on-premises ที่เชื่อมผ่าน VPN/Direct Connect
ลองทำ Quiz ท้ายบท
คำถามแนวข้อสอบของโมดูลนี้ 5 ข้อ · เฉลยทันที

