Amazon EC2 Auto Scaling คืออะไร? แล้วมีประโยชน์ยังไง? บล็อกนี้มีคำตอบ!

บล็อกนี้จะพาทุกคนมารู้จักกับคอนเซปต์ของการทำ EC2 Auto Scaling หรือการปรับขนาดของ EC2 อัตโนมัติ ทั้ง 2 รูปแบบ คือการ Scale up-down (ปรับเพิ่มลดขนาด) และ Scale in-out (ปรับเพิ่มลดจำนวน) เพื่อให้เว็บไซต์ของเราพร้อมรับมือกับทุกๆ workload ที่จะเข้ามา พร้อมเล่าถึงข้อดีของการใช้งานคลาวด์ที่จะช่วยให้เราใช้งานได้ยืดหยุ่นและประหยัด!

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

เนื่องจากช่วงนี้ทางคลาสเมธอดเรามีจัดสัมมนา Deploy Laravel บน AWS และทำ Auto Scaling ให้เว็บคุณพร้อมรับมือทุก workload! แนนเลยอยากจะมาเล่าว่า Auto scaling คืออะไร? แล้วทำไมจึงสำคัญ? ถ้าพร้อมแล้วก็ไปอ่านกันเลย \( ̄︶ ̄*\)

EC2 Auto Scaling สำคัญอย่างไร?

เพราะความต้องการใช้งานของเราเปลี่ยนแปลงไปตลอดเวลา ขึ้นอยู่กับผู้เข้าใช้งานเซิร์ฟเวอร์หรือปัจจัยอื่นๆ ณ ขณะนั้น ทำให้เราไม่สามารถประเมินการใช้งานได้อย่างแม่นยำในทุกๆครั้ง ยิ่งหากเราใช้งานเซิร์ฟเวอร์แบบ on-premise ที่ต้องประเมินและเตรียมเซิร์ฟเวอร์เอง โดยซื้อตามค่าเฉลี่ยการใช้งาน หรือซื้อเผื่อช่วงเวลาพีคโหลดไว้ตลอด อาจทำให้เกิดปัญหา Opportunity lost หรือ Over investment ขึ้น ซึ่งเป็นสิ่งที่หลายบริษัทไม่อยากให้เกิดขึ้นใช่ไหมคะ

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

ข้อดีของการใช้งานคลาวด์

Pay-as-you-go

ตามคอนเซปต์ของการใช้งานคลาวด์ที่เรียกว่า Pay-as-you-go หรือการจ่ายตามการใช้งานจริง ทำให้เราสามารถเปลี่ยนการใช้งานเมื่อไรก็ได้ จึงไม่จำเป็นต้องซื้อเซิร์ฟเวอร์มาเผื่อไว้ ไม่ต้องจ่ายล่วงหน้า ไม่ต้องเสียเงินกับสิ่งที่ยังไม่ได้ใช้จริงนั่นเอง!

Scalability

คือความสามารถในการปรับเปลี่ยนขนาดได้อย่างยืดหยุ่น เราจะปรับเซิร์ฟเวอร์เพิ่มลดอย่างไรก็ได้ตามใจชอบเลย❤️

ซึ่งจะขอเล่าก่อนว่า โดยทั่วไปแล้วการปรับขนาดมีอยู่ 2 รูปแบบค่ะ

    1. Scale up-down การเพิ่ม-ลดขนาดของ EC2

    คือการปรับความใหญ่ของขนาดขึ้น-ลง อย่างเช่น เดิมมี CPU 2 เราสามารถปรับเพิ่มเป็น CPU 4 ได้ แล้วจะปรับลดลงมาที่ 2 อีกครั้งนึงก็ได้

    2. Scale out-in การเพิ่ม-ลดจำนวนของ EC2

    คือการเพิ่ม-ลดจำนวนของ EC2 ตัวนั้นๆ การ Scale out ก็เหมือนการปั๊ม EC2 ที่มีสเปคแบบเดียวกันออกมาใช้งานเพิ่ม (รูปด้านซ้าย) และเมื่อไม่ใช้งานแล้วก็ Scale in หรือลบทิ้งไปนั่นเอง (รูปด้านขวา)

?อีกทั้งเรายังสามารถทำ Auto scaling หรือทำการ Scale in-out แบบอัตโนมัติได้อีกด้วยค่ะ!

การปรับขนาด EC2 อัตโนมัติ

หากจะให้อธิบายให้เห็นภาพมากขึ้น ลองนึกภาพของร้านกาแฟช่วงเช้าที่มีลูกค้าต่อแถวซื้อกาแฟก่อนไปทำงาน
กาแฟคือตัวแทนของ request หรือคำขอที่ส่งมายังเซิร์ฟเวอร์ของเรา
ส่วนพนักงานรับออเดอร์ 1 คนก็คือ เซิร์ฟเวอร์ 1 ตัว
หากลูกค้าเยอะขึ้น การ Scale up ซึ่งก็คือการเพิ่มประสิทธิภาพให้กับเซิร์ฟเวอร์ คล้ายๆกับการเทรนพนักงานรับออเดอร์ ปรับลักษณะให้พนักงานมีประสบการณ์และเชี่ยวชาญมากขึ้น ทำให้สามารถรับมือกับลูกค้าได้ดีขึ้น แต่อย่างไรก็ดี ก็ยังมีพนักงานเพียงคนเดียวที่ทำงาน ดังนั้นในหลายๆเคส การเพิ่มจำนวนพนักงานรับออเดอร์ หรือการ Scale out เพิ่มจำนวนเซิร์ฟเวอร์เพื่อตอบรับคำขอ จะช่วยให้ตอบรับคำขอได้ดีกว่ามากนั่นเอง

วิธีการทำ Auto Scaling

  1. เริ่มแรกคือเราต้องกำหนดกลุ่ม Auto Scaling หรือการกำหนดจำนวนขั้นต่ำและขั้นสูงสุดของ EC2ที่เราต้องการก่อน เพราะการ Auto scaling คือการเพิ่ม-ลดจำนวน EC2 ให้เพียงพอต่อการใช้งานในช่วงนั้นๆ ดังนั้นเราจึงต้องบอกว่า อยากให้มีจำนวนเซิร์ฟเวอร์ขั้นต่ำที่ทำงานอยู่ตลอดเวลากี่ตัว และเพิ่มสูงสุดกี่ตัว

  2. จากนั้นให้ระบุ Desire capacity หรือจำนวนการใช้งานที่ต้องการ เราจะระบุสิ่งนี้ ในกรณีที่ต้องการบอก AWS ว่า แม้ระบบของเราจะต้องการเซิร์ฟเวอร์ขั้นต่ำที่ 1 ตัว แต่ถ้าเป็นไปได้ เราอยากให้มันรันอยู่ที่ 2 ตัวตลอดเวลา แต่ถ้าเราไม่ระบุ AWS ก็จะถือเอาจำนวนขั้นต่ำที่เราระบุไว้ก่อนหน้ามาเป็นจำนวนที่เราต้องการใช้งานโดยอัตโนมัติ

อย่างไรก็ดี แม้ว่าเราจะมีเซิร์ฟเวอร์หรือ EC2 หลายตัวเพื่อรองรับ request ที่เข้ามา แต่ในความเป็นจริงบางครั้ง request เหล่านั้นที่เข้ามาก็ไม่รู้ว่าต้องเข้าไปที่ EC2 ตัวไหน เหมือนกับตัวอย่างร้านกาแฟที่ยกมาเปรียบเทียบเมื่อกี๊ ที่บางครั้งเวลาลูกค้าเข้ามาในร้านกาแฟ ก็ไม่รู้ว่าต้องไปต่อคิวตรงไหนถึงจะได้กาแฟเร็วที่สุด

ดังนั้น เพื่อจัดการ request เหล่านั้น เราจึงต้องใช้ Elastic Load Balancing หรือ ELB อีกเซอร์วิสหนึ่งของ AWS ที่จะเข้ามาช่วยเราจัดการกับ request ที่ไม่รู้ว่าต้องไปไหนเหล่านี้นั่นเองค่ะ

ไว้เดี๋ยวแนนจะมาเล่าในบล็อกต่อไปนะคะ ว่าเจ้า ELB นี้จะเข้ามาช่วยเรายังไง รออ่านกันได้เลยยย

อ้างอิง

ทดลองใช้ Auto Scaling ใน EC2

AWS Auto Scaling คืออะไร? การแนะนำฟังก์ชันล่าสุดของ AWS ในปี 2022


เนื้อหา: จิราภรณ์ สว่างอารมย์ (จิ๋ว)

เรียบเรียงและภาพประกอบ: สริตา ทวีเติมสกุล (แนน)

ดูรายละเอียดเพิ่มเติมได้ที่นี่ สอบถามเพิ่มเติมเกี่ยวกับ AWS คลิกที่นี่