Microsoft Azure Deep Dive : Virtual Machine Scale Set (VMSS)

0
421

หลังจากที่ได้ทำความรู้จักกับ Virtual Machine (VM) ไปแล้วในตอนก่อนหน้านี้ ซึ่งจะเห็นได้ว่ามี VM ให้เลือกมากมาย หลากหลาย ซึ่งผู้ใช้งานสามารถเลือกใช้ให้เหมาะกับความต้องการ  แต่ไม่สามารถตอบโจทย์ในเรื่องของการขยายขนาด (Scale) ได้ เช่นการ Scale Out และ Scale In  ดังนั้นในตอนนี้จะได้กล่าวถึง Virtual Machine Scale Set (VMSS) ซึ่งจะช่วยรองรับปริมาณการประมวลผลจำนวนมากได้ และสามารถที่จะ Scale Out และ Scale In ได้ตามความเหมาะสมอีกด้วย

ทำความรู้จัก Virtual Machine Scale Set (VMSS)

VMSS เป็นรูปแบบการประมวลผลที่เป็น Compute ประเภทหนึ่งใน Microsoft Azure โดย VMSS จะช่วยให้การสร้าง Virtual Machine (VM) ที่เหมือนๆ กันจำนวนหลายๆ VM เพื่อช่วยรองรับการประมวลผลจำนวนมาก

AutoScale เป็นความสามารถหนึ่งของ VMSS ที่จะช่วยให้ VMSS สามารถที่จะทำการเพิ่มจำนวน Instance ของ VM ขึ้นตามเงื่อนไขที่กำหนด เพื่อให้สามารถที่จะรองรับโหลดที่เกิดจากการประมวลผลได้ ซึ่ง VMSS สามารถที่จะรองรับจำนวน Instance ได้สูงสุดถึง 1,000 Instance (สำหรับ Image มาตรฐาน) และ 300 Instance (สำหรับ Customized Image) โดย Instance ต่างๆ ที่สร้างขึ้นนั้นจะอ้างอิงตาม Availability set ด้วย

การกำหนดกฏในการเข้าถึง VM ใน VMSS

หากย้อนไปดูเรื่องของ VM นั้นเราจะเห็นว่า VM แต่ละ VM จะมีการกำหนด Public IP เป็นของตัวเอง ทำให้ผู้ดูแลระบบสามารถที่จะเข้าถึง VM แต่ละ VM ได้ด้วยโพรโทคอลต่างๆ เช่น RDP และ SSH   แต่สำหรับ VMSS นั้นการจะกำหนด Public IP ให้กับแต่ละ VM ใน VMSS ดูจะเป็นเรื่องวุ่นวายมาก  ดังนั้น Azure จึงกำหนดมีวิธีการกำหนดให้เข้าถึง VM ใน VMSS ได้ 2 วิธีการคือ

  • การใช้ NAT Rules เป็นให้ VMSS แต่ละ VMSS มี Public IP เพียงหมายเลขเดียว และใช้กระบวนการ NAT (Network Address Translation) ในการเข้าถึงยัง VM แต่ละตัวใน VMSS ดังตัวอย่าง
    Source Source Port Destination Destination Port
    Public IP 50000 VMSS_0 22
    Public IP 50001 VMSS_1 22
    Public IP 50002 VMSS_2 22

    ซึ่งจากตัวอย่างจะเห็นได้ว่ามีการใช้งาน Public เพียงหมายเลขเดียวเท่านั้น ก็จะสามารถเข้าถึง VMSS ได้ทุก Instance เพียงแต่ใส่หมายเลข Port ที่ต่างกันออกไป เช่น PublicIP:50000 , PublicIP:50001 เป็นต้น

  • การใช้ Jump Host  เป็นการที่เราทำการเข้าถึงไปที่ VM ใด VM หนึ่งที่อยู่ใน VNET เดียวกัน จากนั้นจึงทำการ RDP หรือ SSH ไปยัง VM ใน VMSS ที่ต้องการอีกชั้นหนึ่ง

Load Balancer ใน Virtual Machine Scale Set

เนื่องจาก VM ใน VMSS แต่ละ VM นั้นจะมีคุณสมบัติพิเศษ คือจะต้องเหมือนกันทั้งหมด ดังนั้นจึงจำเป็นที่จะต้องมีการใช้งาน Load Balancer เพื่อกระจายงานไปยัง VM ต่างๆ ใน VMSS ซึ่งการใช้ Load Balancer มีอยู่ 2 ทางเลือกคือ

  • Azure Load Balancer เป็นการทำงานในระบบ Layer 4 คือทำงานระดับ Transport Protocol และใช้การทำงานในรูปแบบ Round Robin ในการกระจายงาน ซึ่งผู้ใช้งานสามารถกำหนดการ Probe เพื่อการตรวจสอบสถานะการทำงานของ VM ต่างๆ ได้ตามระยะเวลาที่กำหนด
  • Azure Application Gateway เป็นการทำงานในระดับ Layer 7 คือระดับ Application Layer ซึ่งจะมีความยืดหยุ่น และรูปแบบการทำงานต่างๆ ให้เลือกใช้งานได้มากกว่า Azure Load Balancer

การสร้าง Virtual Machine Scale Set

การสร้าง VMSS นั้นสามารถสร้างได้ผ่านทาง Azure Portal โดยการค้นหาคำว่า “Scale” และทำการเลือก Virtual Machine Scale Set ดังรูป

จากนั้นทำการเลือก Instance Size และ จำนวน Instance ตลอดจน Load balancer

เอาล่ะครับ ถึงตรงนี้ก็น่าจะมีแนวทางการใช้งาน Azure Virtual Machine Scale Set กันไปแล้วนะครับ  ส่วนในตอนต่อไปผมจะเอาอะไรมาให้อ่านกัน โปรดติดตามต่อไปครับ

เอกสารอ้างอิง