Auto Scaling Group และ Launch Template
เพิ่ม/ลดเครื่องอัตโนมัติตามโหลด
ระบบขยายอัตโนมัติก็เหมือนร้านอาหารที่มีผู้จัดการคอยสังเกตการณ์ — พอช่วงเที่ยงลูกค้าแห่เข้าจนพนักงานเสิร์ฟไม่ทัน (โหลดหนัก) ผู้จัดการจะกดเรียกพนักงานพาร์ทไทม์มาเพิ่มทันที และพอลูกค้ากลับหมด ร้านโล่ง ก็จะสั่งให้พาร์ทไทม์เลิกงานกลับบ้านเพื่อประหยัดค่าแรง ไม่ต้องจ้างคนเยอะๆ มายืนรอเก้อตลอดทั้งวัน
Auto Scaling Group (ASG - กลุ่มการขยายขนาดอัตโนมัติ) คือตัวจัดการที่จะเพิ่มหรือลดจำนวนเซิร์ฟเวอร์ EC2 ให้สอดคล้องกับความต้องการใช้งานจริง (Elasticity) โดยเราจะเป็นคนกำหนดกรอบขีดจำกัด (ค่าต่ำสุด/ค่าที่ต้องการ/ค่าสูงสุด) และให้ ASG ใช้ Launch Template (แบบแปลน) เป็นแม่พิมพ์ว่าจะปั๊มเครื่องหน้าตาแบบไหนออกมา
Auto Scaling Simulator
ASG เพิ่ม/ลดจำนวนเครื่องอัตโนมัติตามโหลด — จ่ายเท่าที่ใช้ ไม่ต้องเปิดเครื่องสูงสุดทิ้งไว้ตลอด
Auto Scaling Group (min 2 / max 10) · 1 เครื่องรับ ~100 ผู้ใช้
โหลดเพิ่มขึ้น ASG ขยายเป็น 3 เครื่องอัตโนมัติ พอคนน้อยลงก็จะลดเครื่องเพื่อประหยัด
- Launch Template (แบบแปลนการสร้าง) — ตัวกำหนดว่าเครื่องใหม่จะใช้ AMI ไหน, สเปกรุ่นใด (Instance type), ฝัง User Data สคริปต์อะไร, และใช้ Security Group วงไหน
- Scaling Policy (เงื่อนไขการขยาย) — เราตั้งกฎว่าจะเพิ่มเครื่องจากอะไร เช่น ตาม Metric (ถ้ายอด CPU เฉลี่ย > 70%) หรือตั้งขยายตามตารางเวลาล่วงหน้า (Scheduled) เช่น ทุกเช้าวันศุกร์ 8 โมง
- High Availability (HA) — การวาง ASG ให้ครอบคลุมหลาย AZ จะช่วยให้ระบบมีความทนทาน หากศูนย์ข้อมูลหนึ่งพัง ASG จะฉลาดพอที่จะไปปั๊มเครื่องใหม่ที่โซนที่เหลือมาทดแทนอัตโนมัติ
สรุป Key Takeaways
- ASG ปรับจำนวนเครื่องอัตโนมัติในกรอบ min/desired/max
- Launch Template = แบบของเครื่อง, scaling policy = เงื่อนไขเพิ่ม/ลด
- กระจายข้าม AZ ได้ทั้ง elasticity และ HA
คำถามที่พบบ่อย
Auto Scaling ต้องมี ELB ไหม
ไม่บังคับแต่มักใช้คู่กัน — ASG ทำหน้าที่เพิ่ม/ลดเครื่อง ส่วน ELB กระจาย traffic ไปเครื่องที่มี ถ้าผูกกันแล้ว ASG ใช้ health check ของ ELB ได้ (เครื่องที่ตอบ HTTP ไม่ได้จะถูกแทนที่ ไม่ใช่แค่เครื่องที่ดับ) — คู่ ELB + ASG คือโครงมาตรฐานของทุกโจทย์เว็บ scalable
Scaling policy แบบไหนควรใช้เป็นค่าเริ่มต้น
Target tracking — ตั้งเป้าเดียว เช่น CPU เฉลี่ย 60% แล้วระบบคุมจำนวนเครื่องให้เอง ง่ายและพอสำหรับงานส่วนใหญ่ ส่วน scheduled scaling ใช้เมื่อรู้ pattern ล่วงหน้า (เที่ยงคนเข้าเยอะ) และ predictive scaling ให้ ML ทำนาย — ข้อสอบให้เลือกตามลักษณะโหลดในโจทย์
ทำยังไงไม่ให้ ASG เพิ่มๆ ลดๆ เครื่องถี่เกินไป (flapping)
มี cooldown/warm-up ระหว่างการ scale, ตั้ง threshold ขาขึ้นกับขาลงห่างกันพอ และ scale ขึ้นไว-ลงช้า (aggressive out, conservative in) เพราะเพิ่มช้าคือผู้ใช้เดือดร้อน แต่ลดช้าแค่เสียเงินเพิ่มนิดหน่อย
ลองทำ Quiz ท้ายบท
คำถามแนวข้อสอบของโมดูลนี้ 5 ข้อ · เฉลยทันที

