Microsoft Azure Deep Dive : Azure Virtual Machine ตอนที่ 3 Virtual Network

0
751

หลังจากที่ได้พูดถึง Azure Virtual Machine และเรื่องของ Disk ไปแล้วนั้น อีกส่วนหนึ่งที่ต้องพูดถึงและมีความสำคัญไม่แพ้กัน เพื่อให้ Azure Virtual Machine ของเราสามารถที่จะเชื่อมต่อกับคอมพิวเตอร์เครื่องอื่นได้ ก็คือ Virtual Network นั่นเองครับ ในตอนนี้ผมจะได้อธิบายถึงการวางแผนการออกแบบ VNET ให้เหมาะสมกับ network ขององค์กรกันครับVirtual Network (หรือเรียกย่อๆ ว่า VNET)

พอพูดถึง Network แล้วหลายๆ ท่านอาจจะนึกถึงสาย LAN  Switch Router และอุปกรณ์อีกเยอะแยะมากมายนะครับ ซึ่งต้องบอกไว้ก่อน ว่า Virtual Network นั้นท่านสามารถที่จะลืมอุปกรณ์พวกนี้ไปได้เลยครับ  เพราะมันไม่มีครับ แล้วจะพูดทำไมเนี่ยย 55555

เนื่องจากว่าระบบของ Azure นั้นเป็นการทำงานในรูปแบบ Virtualization จริงๆ ครับ ดังนั้นจึงไม่มีเจ้าอุปกรณ์ Network ต่างๆ เหล่านั้นมาให้ยุ่งยากวุ่นวายนั่นเอง  แต่ตัว Virtual Network ก็ยังทำหน้าที่ในการเป็นตัวกลาง (หรือทางผ่าน) ในการสื่อสารระหว่าง Azure Virtual Machine ด้วยกัน หรือเชื่อมต่อกับอินเทอร์เน็ต  หรือเชื่อมต่อกลับมายังศูนย์ข้อมูลของลูกค้า (On-premise) ก็ได้ครับ ซึ่งเจ้า Virtual Network นี้ก็มีความสามารถหลากหลายด้วยกัน สรุปได้ดังนี้ครับ

ความสามารถของ Virtual Network

  • Isolation  VNET แต่ละ VNET จะสามารถที่จะทำงานแยกจากกันโดยสิ้นเชิง ทำให้สามารถสร้างเครือข่ายที่มีหมายเลขไอพี (Address Space) ซ้ำกันได้ ทั้งนี้เพื่อรองรับลูกค้าได้เป็นจำนวนมาก  และนอกจากนี้ในแต่ละ VNET ยังสามารถที่จะแบ่งเครือข่ายออกเป็นเครือข่ายย่อย (subnet) ภายใต้ Address Space ที่กำหนดได้อีกด้วย  เช่น เรากำหนด Address Space 10.0.0.0/8  ก็สามารถจะแบ่ง subnet ออกเป็น 10.0.1.0/24,  10.0.2.0/24, 10.0.3.0/24 เป็นต้น
  • Internet Communication   VNET จะช่วยให้ทรัพยากรต่างๆ ที่ทำงานอยู่บน VNET นั้นๆ เช่น Azure Virtual Machine สามารถเชื่อมต่อกับเครือข่ายอินเทอร์เน็ตได้
  • Azure Resource Communication VNET จะช่วยให้ทรัพยากรต่างๆ ที่ทำงานบน VNET สามารถที่จะเชื่อมต่อ และส่งข้อมูลหากันได้
  • Virtual Network Connectivity  VNET สามารถที่จะเชื่อมต่อกับ VNET อื่นๆ ได้ ซึ่งมี 2 รูปแบบคือ VNET-to-VNET และการใช้งานผ่าน Site-To-Site VPN
  • On-premise Connectivity  VNET สามารถที่จะเชื่อมต่อกับเครือข่าย On-premise ของผู้ใช้งานได้ ซึ่งรูปแบบการเชื่อมต่อที่สามารถใช้งานได้ในประเทศไทยนั้นจะมีเพียงรูปแบบเดียวคือการทำ  VPN (Virtual Private Network) ซึ่งอาจจะเป็น Site-To-Site หรือ Point-To-Site ก็ได้ ซึ่งการทำ VPN นั้นใช้การทำงานในรูปแบบ IPsec ซึงเป็นมาตรฐานการทำ VPN ที่รองรับโดยทั่วไป
  • Traffic Filtering  ผู้ใช้งานสามารถกำหนดเงื่อนไขในการเลือกอนุญาติหรือไม่อนุญาติ ให้ข้อมูลชนิดใดผ่าน VNET ได้ โดยการกำหนดกฎที่เรียกว่า Network Security Group (NSG) ซึ่ง NSG นั้นจะมีลักษณะคล้ายกับกฎของ Firewall
  • Routing  ผู้ใช้งานสามารถเลือกกำหนดนโยบายการ Routing ของ VNET ได้

การออกแบบ VNET 

สำหรับการออกแบบ VNET ให้เหมาะสมกับโครงสร้างพื้นฐานขององค์กรนั้นทาง Microsoft ได้มีการแนะนำไว้ใน Designing networking for Microsoft Azure IaaS ไว้อย่างละเอียดทีเดียวครับ แต่ผมจะขอสรุปจากเอกสารดังกล่าวมาให้อ่านกันง่ายๆ สบายๆ ดังนี้ครับ

    • Address Spaces และ Subnet   การเลือก Address Space ใน VNET นั้นจะขึ้นอยู่กับจำนวนของ ทรัพยากรต่างๆ ไม่ว่าจะเป็น Virtual Machine, Database, Web App หรืออื่นๆ ที่จะใช้งานกับ VNET นั้นๆ  โดย Subnet ที่ใช้จะต้องมีขนาดใหญ่พอที่จะบรรจุทรัพยากรต่างๆ ได้ทั้งหมด ซึ่งเราสามารถเลือก subnet ได้จากตารางต่อไปนี้
จำนวนทรัพยากรใน VNET Subnet Size
1-3 /29
4-11 /28
12-27 /27
28-59 /26
60-123 /25
124-251 /24

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

นอกจากขนาดของ subnet แล้ว จำนวนของ subnet ก็เป็นอีกสิ่งหนึ่งที่ควรจะต้องพิจารณา ว่าในแต่ละ Virtual Machine หรือแต่ละทรัพยากรนั้นจะมีการเชื่อมต่อกันอย่างไร ดังตัวอย่างในรูปที่ 1

 

รูปที่ 1 ตัวอย่างการแบ่ง Subnet 

จากตัวอย่างหนึ่งจะเห็นว่าบางครั้งเราต้องการแบ่งการทำงานของทรัพยากรใน Azure ออกเป็นส่วนๆ เช่น web, app, db ซึ่งแต่ละส่วนนั้นเราต้องการจำกัดการสื่อสาระหว่างกัน ก็เราแบ่งออกเป็น subnet จำนวน 3 subnet และใช้ Network Security Group (NSG) ในการจำกัดการสื่อสารระหว่าง subnet

นอกจากนี้หากวางแผนว่าจะมีการใช้งาน Hybrid Configuration ให้มีการสื่อสารระหว่าง On-premise ขององค์กรเข้ากับ Azure VNET ก็จะต้องมีการสร้าง Gateway Subnet เพิ่มอีก 1 Subnet ด้วย

ดังนั้นในความเห็นของผู้เขียนแล้วการกำหนด Address Space เราควรจะกำหนดช่วง ip ให้ใหญ่ๆ ไว้ก่อน เช่นใช้เป็น Subnet /8 หรือ /16 ไปเลย เพื่อให้สามารถแบ่ง subnet ภายในได้มาก และยืดหยุ่นสูงกว่าการใช้งาน Address Space ที่เป็น /24
  • การใช้งาน DNS Server  โดยปกติแล้วบน Azure นั้นจะมี Azure DNS เอาไว้ให้ใช้งานอยู่แล้ว ซึ่งตัว Azure DNS นี้จะช่วยให้สามารถค้นหา dns name ที่อยู่บนระบบอินเทอร์เน็ต และ บน Azure ได้ ดังนั้นโดยปกติเราก็ไม่จำเป็นต้องไปแก้ไขอะไรมันมากนัก  ยกเว้นกรณีที่เราต้องการจะติดตั้ง Active Directory Domain Service (AD DS) ที่เป็น Virtual Machine บน Azure นั่นเองที่เราต้องทำการกำหนดให้ Virtual Machine ไปชี้ DNS ไปยัง Domain Controller เครื่องนั้นๆ  ซึ่งการกำหนด DNS นี้ สามารถทำได้ผ่าน Azure Portal ครับ
    (ห้ามไปกำหนดที่ network interface ของ Virtual Machine เด็ดขาดนะครับ 55555)

รูปที่ 2 การกำหนด DNS ให้กับ Azure Virtual Machine 

เอาล่ะครับในส่วนของ Virtual Network หรือ VNET ก็มีเท่านี้ก่อนนะครับ หยิบมาอธิบายเฉพาะส่วนที่เกี่ยวข้องกับ Virtual Machine กันแค่นี้ก่อนนะครับ สวัสดีครับ 🙂

แหล่งข้อมูลเพิ่มเติม