Create Load Balancer
ขั้นตอนในการสร้าง Load Balancer
load balancer ใช้ในการ balancer หรือกระจาย load ไปยัง instance หลา ยๆ ตัว เพื่อเพิ่ม HA (High Availability) ในกับระบบ ในกรณีที่อาจจะมี instance ตัวใดตัวหนึ่งมีปัญหา ระบบก็จะกระจาย load ไป server ตัวอื่นแทน หรือเป็นการกระจาย load ให้เหมาะสมกับปริมาณการใช้งาน เพื่อป้องกันไม่ให้ instance ปัญหาตั้งแต่ต้น
โดยนอกจากสร้าง load balancer แล้ว ยังจะต้องสร้าง listener และ backend group ใน load balancer นั้นด้วย
- listener คือตัว รับ load ที่จะใช้ในการจำแนกว่า load ประเภทไหน จะไปหา backend group ตัวไหน
- backend group คือตัวที่รวบรวม instance ที่ทำงานชนิดเดียวกันเอาไว้ เพื่อรับ load จาก listener
กดเลือก project จากหน้า Projects Management เพื่อเข้าสู่หน้า Project Detail

Project Detail
เข้าสู่หน้า load balancer โดยกด menu Load Balancer ภายใต้ sidebar และกดปุ่ม +Load Balanacer ที่มุมขวาบนของหน้า load balancer

Create Load Balancer Button
เลือก availability zone (AZ) ของ load balancer โดยจะต้องเลือก AZ เดียวกันกับ instance ที่ต้องการทำ load balance

Select Availability Zone
เลือก type ของ load balancer โดยคำนึงจากปริมาณการใช้งาน โดย
- standard load balancer จะเหมาะกับปริมาณ load ไม่มาก และสามารถยอมรับการ performance drop ได้เล็กน้อย เนื่องจาก standard load balancer จะมีการ share resource รวมกับกับ load balancer อื่นๆ แต่ข้อดีด็คือราคาถูกกว่า และคิดค่าใช้จ่ายด้าน data process และ new connection ตามการใช้งานจริง
- dedicated load balancer จะเหมาะกับปริมาณ load มากๆ และไม่ต้องการให้มีความเสียงด้าน performance drop เนื่องจาก dedicated load balancer จะไม่มีการ share resource ใดๆ จะสามารถใช้งานได้เต้มประสิทธิภาพตลอดเวลา และจะคิดค่าใช้จ่ายแบบเหมา ที่จ่ายใน rate ที่คงที่

Load Balancer Type
เลือก specification หรือขนาดของ load balancer ว่าต้องการ load balancer ที่รองรับการทำงานระดับใด และต้องการความปลอดภัยระดับไหน โดยถ้าต้องการ HA ที่สูงที่สุด แนะนำให้เลือก specification ที่มี topology เป็น HA

Load Balancer Specification
กำหนดชื่อและคำอธิบายของ load balancer เพื่อใช้สามารถจำแนกออกจาก load balancer ตัวอื่นได้

Load Balancer Details
เลือก virtual network ที่จะต้องเป็น network เดียวกันกับ instance ที่ต้องการ balance load รวมถึงเลือก external IP หากต้องการ expose ออกสู่ internet
.png?alt=media&token=840e88b5-d8fd-4bb9-b53f-8a0f97e5fdae)
Load Balancer Network
รีวิวความถูกต้องของการตั้งค่า และกดปุ่ม CREATE เพื่อสร้าง load balancer
.png?alt=media&token=e0426dd0-fbcc-4d9a-b375-e1b8de73e18f)
Load Balancer Summary
รอจน load balancer status กลายเป็น HEALTHY และกดที่ชื่อของ load balancer เพื่อเข้าหน้า load balancer overview

Load Balancer List
ในหน้า load balancer overview ให้ click ที่ปุ่ม CREATE BACKEND GROUP เพื่อเปิด menu create backend group
.png?alt=media&token=3d774c68-cccf-4949-b3e0-e731f1bc3139)
Create Backend Group Menu
ตั้งค่าต่างๆ ใน backend group เพื่อเป็นตัวรับ load จาก listener
- Name: ชื่อของ backend group ที่ใช้ในการจำแนกแต่ละ backend group ออกจากกัน
- Protocol: protocol ที่จะส่ง request ต่อไปยัง member หรือ instance ใน backend group นี้
- Algorithm: วิธีการเลือกว่าจะส่ง request ไหนไปหา member ตัวใด โดยจะมี 3 อย่างคือ
- Least Connection: เลือก member ที่มี connection อยู่น้อยที่สุด
- Round Robin: เลือก member วนตามลำดับ
- Source IP: เลือก member โดยการ hash source IP ของ request โดย IP เดิม จะเข้า member เดิมเท่านั้น
- Enable Health Check: เปิดใช้งาน health check ที่จะเข้าไป check อยู่ตลอดว่า member ยังสามารถใช้งานได้หรือไม่
- Protocol: protocol ของการทำ health check
- Timeout: เวลาก่อนที่จะตีว่า health check request แต่ละครั้งเป็น timeout
- Interval: ความถี่ในการทำ health check
- Healthy Threshold: จำนวนครั้งที่ health check พบว่า member ใช้งานได้ ก่อนจะกำหนดว่า member นั้น online อยู่ และส่ง request เข้าไป
- Unhealthy Threshold: จำนวนครั้งที่ health check พบว่า member ใช้งานไม่ได้ ก่อนจะกำหนดว่า member นั้น ERROR อยู่ และหยุดส่ง request เข้าไป

Configurate Backend Group
- Member: instance ที่จะรับ request ในกลุ่มของ backend group นี้
- Instance: port ของ instance ที่จะรับ request โดยจะต้องเปิด security ให้ถูกต้องจึงจะสามารถใช้งานได้
- Port: เลข port ที่จะรับ request
- Weigth: อัตราส่วนที่จะส่ง request เข้าไปใน member นี้ โดยถ้า weigth เยอะ request ก็จะเข้า member นั้นเยอะ
- Monitor Port: เลข port ที่จะใช้ทำ health check
- Assign As: รูปแบบการทำงานของ member นี้

จากนั้น click ปุ่ม CONFIRM เพื่อสร้าง backend group และรอจนกว่า load balancer จะ update เสร็จ
ในหน้า load balancer overview ให้ click ที่ปุ่ม CREATE LISTENER เพื่อเปิด menu create listener

Create Listener Menu
ตั้งค่าต่างๆ ใน listener เพื่อให้สามารถรับ load ได้ ดังนี้
- Name: ชื่อของ listener ที่ใช้ในการจำแนกแต่ละ listener ออกจากกัน
- Protocol: เลือก protocol ของ request ที่ listener นี้จะรับ
- Port: เลือก port number ของ request ที่ listener นี้จะรับ
- Client Side Idle Timeout: เวลาที่จะ keep connection กับ client ที่ไม่ active
- TCP inspect: เวลาที่รอการ inspect ของ TCP package
- Backend Side Idle Timeout: เวลาที่จะ keep connection กับ backend ที่ไม่ active
- Backend Side Connection Timeout: เวลาที่จะรอการ connect กับ backend

Listener Configuration
- Whitelist CIDR: CIDR ที่ ยอมให้ใช้งาน listener นี้
- CIDRs: ถ้าไม่ได้เลือก whitelist CIDR เป็น allow all จะสามารถระบุ CIDR ที่ allow เฉพาะได้
- Backend Group: เลือก backend group ที่ใช้รับ request จาก listener นี้

Listener Configuration 2
เพียงเข้านี้ ก็สามารถใช้งาน load balancer ได้แล้ว

