โดยจะขอเกริ่นก่อนว่าโมเดลที่จะทำ Load Balancing ในครั้งนี้จะเป็นรูปแบบดังนี้
จากที่อธิบายไปคร่าวๆด้านบนแล้ว สิ่งที่เราจะทำก็คือ การสร้าง server ขึ้นมา 2 ตัว ให้รัน webservice ที่ทำหน้าที่เดียวกันทั้งคู่ และการสร้าง load balancer ที่คอยจัดการการเข้าใช้ server ทั้ง 2 ตัว
เริ่มจากหน้าแรก เมื่อกดคำว่า Services ทางแถบด้านบน ก็จะมี Tools ให้ใช้งานมากมาย ในที่นี้เราจะสร้าง VM Instance กัน ดังนั้นจึงกดเลือก EC2 ในโหมด Compute
เมื่อเข้ามาอยู่หน้า EC2 เรียบร้อย ทางแถบด้านซ้ายในส่วนของ Instances จะมีให้กดเลือก Instances หรือจะกด Launch Instance เพื่อทำการ Create Instance ทันทีก็ได้เช่นกัน
เมื่อเข้าไปหน้า Create Instance แล้ว ก็จะมีให้ทำการเลือกใช้ AMI หรือ Amazon Machine Image ก็คือ OS ที่เราต้องการจะติดตั้งให้กับ Instance ตัวนั้น ซึ่งเราเลือกใช้ Ubuntu server ในการติดตั้ง หลังจาก ติดตั้งเรียบร้อย ก็ทำการลง Webservice ให้กับ Instance ที่สร้างเสร็จแล้ว ซึ่งเราสร้าง Instance เอาไว้ 2 ตัวด้วยกัน
หลังจากที่ Instance ทั้งสองตัวทำหน้าที่เป็น Server เรียบร้อยแล้ว ก็ทำการทดลองรัน Server ดู โดยใช้ IP Address ที่ทาง AWS ให้มา ก็จะเห็นว่าสามารถรัน web service ที่เราติดตั้งไปก่อนหน้านั้นได้แล้ว
หลังจากที่ได้ Server ทั้งสอง server มาแล้ว จากนั้นจะมาทำการสร้าง Load balancer เริ่มจากไปที่แถบด้านซ้าย ในโหมด Load Balancing จะมีให้เลือก Load balancers อยู่ ให้กดเข้าไปและ Create Load Balancer
เมื่อตอนสร้าง Load Balancer จะมีให้ทำการเลือก Instance ที่ต้องการจะให้มาเป็น server ก็ทำการเลือก Instance ที่เราสร้างเอาไว้แล้วทั้งสองตัว และเมื่อเสร็จเรียบร้อย ก็จะได้ Load Balancer ดังภาพ
ทำการสร้าง Domain Name ให้กับตัว Load balancer จะทำหรือไม่ทำก็ได้ และทดลองเข้าไปที่ Domain Name นั้นดู จะเห็นได้ว่าตัวเว็บจะทำการเข้าไปยังหน้าของ webservice ที่ได้สร้างเอาไว้
ทดสอบการทำงานของ Load Balancing
เราจะใช้โปรแกรม SoapUI ในการทดสอบประสิทธิภาพการทำงานของ Webservice โดยจะทดสอบกับ Server web1, web2 ก่อนที่ยังไม่ทำ Load balance และจะทดสอบหลังจากที่ได้ทำ Load balance แล้ว
เริ่มจากการทดสอบ Server ตัวที่ 1 โดยการรัน Thread ทั้งหมด 200 Threads ให้เรียกใช้ Web service พร้อมกันภาย 200 Threads(หรือถ้าให้เข้าใจก็คือ User 200 คน) เรียกใช้งานพร้อมกันภายใน 60 วินาที
ผลลัพธ์ที่ได้คือ สามารถเรียกใช้งานได้ 887 ครั้ง และมีการ Error หรือไม่สามารถเรียกใช้งานได้ 25 ครั้ง
ทดสอบ Web service จาก Server ตัวที่ 2 โดยใช้คำสั่งเหมือนเดิม ผลลัพธ์ที่ได้คือ ถูกเรียกใช้งานทั้งหมด 801 ครั้ง และมีการ Error ทั้งหมด 198 ครั้ง
สรุปผลก็คือ ถ้าหากใช้ Server ตัวเดียว และมี User หลายๆคน ในที่นี้คือ มากกว่า 100-200 คนขึ้นไป เรียกใช้ Web service พร้อมๆกัน ก็จะทำให้เกิดเหตุการณ์เว็บล่ม หรือ ไม่สามารถใช้งาน service นั้นได้
เมื่อทดลองกับเว็บที่เรานำมาเชื่อมต่อกับ Load Balancer และใช้คำสั่งเดิมดู ผลลัพธ์ที่ได้คือ ภายใน 60 วินาที Web service ถูกเรียกใช้งานทั้งหมด 6,103 ครั้ง และไม่มีการ Error สักครั้งเดียว
จะเห็นได้ว่าสามารถใช้วิธี Load Balancing ในการแก้ปัญหาการใช้งานจากหลายๆ User เรียกใช้งานพร้อมกันได้ โดยที่ไม่มี Error เกิดขึ้น ถ้าหากอยากจะรองรับ User ได้มากยิ่งขึ้น ก็สามารถเพิ่มจำนวน Server ให้มากกว่า 2 ตัวได้เช่นกัน
ไม่มีความคิดเห็น:
แสดงความคิดเห็น