รู้จัก Instance Group และ Scaling Instances บน Google Cloud Platform


รู้จัก Instance Group และ Scaling Instances บน Google Cloud Platform

Instance Groups

Instance Group เป็น Service หนึ่งที่อยู่บน Google Cloud Platform โดย Instance Group คือ กลุ่มของ VM Instance ที่สามารถมี VM ได้หลายเครื่องในหนึ่งกลุ่ม โดยเราจะมองว่า Instance Group คือก้อนๆหนึ่งที่มี VM หลายๆเครื่องอยู่ข้างใน เวลาจะจัดการหรือเปลียนแปลง VM ที่อยู่ข้างในสามารถจัดการได้ผ่าน Instance Group ที่เดียวเลย ทำให้ง่ายต่อการจัดการ

Instance Groups จะแบ่งออกได้เป็น 2 ประเภท

1. Managed instance groups (MIGs)

รองรับทั้ง stateless และ stateful เหมาะสำหรับงานที่ต้องการปรับขนาดและความพร้อมใช้งาน เช่นการทำ Server ที่รันแอปพลิเคชั่นเดียวกันแต่ต้องใช้ Server หลายๆเครื่องโดย และยัง สามารถทำการ Autoscale, Autohealing, multiple zone deployment, Auto update ซึ่งเป็นคล้ายๆกับเซอวิสอัตโนมัติที่เราสั่งการไว้ล่วงหน้าแล้วระบบจะจัดการให้ตามที่เราตั้งค่าไว้

2. Unmanaged instance groups

เหมาะสำหรับงานที่ต้องใช้ load balance แต่ต้องทำการจัดการเอง

ซึ่งในวันนี้เราจะมาพูดถึงเฉพาะส่วน Managed instance groups (MIGs)

MIGs รองรับทั้ง stateful configuration และ stateless configuration ซึ่งจะมีขั้นตอนในการเตรียมในการตั้งค่า การจัดการ instance groups จะมีพื้นฐานการสร้าง Instance อ้างอิงจาก Instance Template ในการที่จะใช้งาน Instance Group ได้จำเป็นจะต้องสร้าง Instance Template ก่อน

InstanceTemplates

Instance Templates ใช้ในการกำหนดคุณสมบัติต่างๆให้กับเครื่อง VM Instance เพื่อนำไปใช้สร้าง VM Instance ที่มีการกำหนดค่าที่เหมือนกัน

ตัวอย่างการสร้าง Instance Template

Autoscaling Policies

Autoscaling Policies เป็นการกำหนดเงื่อนไขในการเพิ่มหรือลด instances

ข้อดีของการใช้ Autoscaling Policies

  1. สามารถจัดการเซอเวอร์ให้มีขนาดที่เพียงพอต่อการใช้งานได้

  2. สามารถควบคุมค่าใช้จ่ายได้ดีขึ้น เนื่องจาก Autoscaling Policies จะช่วยทำการปรับลบจำนวนเครื่อง instance ที่ไม่ต้องการออกไปหากไม่มีความต้องการในการใช้งาน

ในการที่เราจะสร้าง autoscaler ได้จำเป็นจะต้องใช้ Autoscaling Policies และ target utilization ในการกำหนดเงื่อนไขเพื่อให้ระบบเข้าใจว่าจะทำการ scale group

โดยเราสามารถเลือกกำหนด target utilization ได้ตามนี้

  • Average CPU utilization

  • Stackdriver Monitoring metrics

  • HTTP load balancing serving capacity

  • Network load balancing

ตัวอย่าง

เลือกใช้ Average CPU utilization ในการกำหนด Autoscaling Policies ที่ CPU มีการใช้งานมากกว่า 80% จะให้ทำการ scale up และหากการใช้งาน CPU ต่ำกว่า 80% จะทำการ scale down

จากตัวอย่าง ได้ตั้ง CPU utilization ไว้ที่ 80% ตัว autoscaler จะทำการตรวจสอบว่ามีการใช้งาน CPU ที่มากกว่า 80% หรือไม่ หากมากกว่าจะทำการเพิ่ม Instance เข้าไปใน Instance Group โดยอ้างอิง Instance ใหม่จาก Instance Template และหาก CPU มีการใช้งานที่ต่ำกว่า 80% จะทำการลบ Instance ที่สร้างขึ้นมาใหม่ออก แต่ถ้าหากยังมีการใช้งานที่หนักอยู่จะไม่ทำการลบ Instance และยังคงเก็บความจุของเครื่องเอาไว้

สรุปข้อดี Instance groups

High availability พร้อมใช้งานสูง

หากมี VM ในกลุ่มหยุดการทำงานหรือถูกลบ โดยการสั่งลบหรือหยุดที่ไม่ได้มาจากคำสั่งของ Instance Group VM จะถูกสร้างขึ้นมาใหม่โดยอัตโนมัติโดยอ้างอิงจาก Instance Template

Scalability มีความยืดหยุ่น

หากเซอร์เวอร์ที่เราต้องการใช้มีความต้องการใช้งานสเปคเครื่องที่สูงขึ้น ตัว Group จะทำการสร้าง VM ขึ้นมาใหม่เพื่อช่วยประมวลผล และหากไม่จำเป็นที่จะต้องใช้สเปคที่สูงแล้ว ตัว Group จะทำการลบ VM ที่ไม่จำเป็นออกไป เพื่อลดค่าใช้จ่าย

Automated updates ทำการอับเดทอัตโนมัติ

Manage Group รองรับการ deploy software ใหม่ๆที่จะทำให้ระบบที่ยังทำงานอยู่ไม่ปิดตัวลง

Support for stateful workloads

รองรับทั้ง stateless และ stateful

Written by Sathaporn Hussakun
Cloud Ace Thailand

Make It Now!

หากคุณสนต้องการคำปรึกษา Cloud Ace Thailand พร้อมให้บริการที่จะสนับสนุนคุณตั้งแต่ การให้คำปรึกษา จนถึงการออกแบบระบบ ติดตั้งระบบ ย้ายระบบ ในฐานะ Google Cloud Partner ที่มีความเชี่ยวชาญ และได้รับรางวัล Service partner of the year ในปี 2019

ติดต่อเรา th_sales@cloud-ace.com

Subscribe to us

.