Blog in the Cloud!!!

ตอนนี้ผมย้าย blog ตัวเองนี้ (http://www.thaicyberpoint.com/) และ personal web site (http://www.fordantitrust.com/) ใส่เข้า Windows Azure Virtual Machines เรียบร้อยแล้ว (ทั้ง 2 เว็บนี้มันแทบจะเป็นเว็บเดียวกันอยู่แล้ว เพราะฉะนั้น ถ้าจะย้ายก็ต้องทำทั้งสองเว็บไม่งั้นไม่เนียน)

เหตุผลที่ผมเลือกตัว Virtual Machines (VM) และใช้ Extra Small (XS) เพราะราคาต่อชั่วโมงเหมาะสมกับปริมาณการใช้งานตอนนี้ (ราคาต่อชั่วโมงมันแพงสุด แต่ถ้าเทียบ spec ต่อราคาชั่วโมงแล้วมันถูกสุด) ต้องบอกก่อนว่า Cloud สำหรับ VM นั้นคิดราคาที่ Compute เป็นหลัก (ราคาตามการประมวลผล) โดยถ้าเป็น VM จะคิดเหมาทั้งเดือน (เหมือนจองไว้เลย) ซึ่งตกชั่วโมงละ $0.013 หรือตีเป็นเดือนละ $9.36 ถ้าไม่ได้ปรับ scale up/down ตัว Compute ไปตัวที่สูงกว่านี้ (ปรับการ scale up/down ได้นั้นดีที่ระบบมันคิดราคาตามใช้งานจริงเป็นชั่วโมง เหมาะกับเว็บที่มีโหลดเฉพาะเวลาใดเวลานึง ไม่ต้องจ่ายโหลด Compute แบบเหมาตลอดเวลา) ซึ่ง XS VM ที่ได้มีความเร็วที่ CPU 1GHz โดยประมาณ และมี RAM 768 MB ซึ่งผมมองว่าเพียงพอต่อ Blog ผมอยู่แล้ว (กำลังคิดว่าจะย้ายเว็บส่วนตัวมาลงอีกหลายตัว)

OS ใน VM นั้นติดตั้ง Ubuntu Server 12.04 LTS แล้วลง Apache, MySQL และ PHP 5.4 แล้วก็ติดตั้งเหมือน Server Hosting ปรกติทั่วไป (ทำ Virtual Host บน Apache ด้วย) โดยตัว Storage ที่ติดตั้งนั้นจะอยู่บน Cloud ที่จะได้พื้นที่มา 30GB ซึ่งเป็น Storage แบบ Geo Redundant ที่ตั้ง Primary Region ไว้ที่ Southeast Asia ที่ IDC อยู่ Singapore และ Azure ทำการตั้งให้ Secondary Region ผมเป็น East Asia ที่มี IDC อยู่ที่ Hong Kong (China) อีกที่ (เป็นค่ามาตรฐานเลย) ช่วยป้องกัน link ของ IDC นั้นมีปัญหาจาก Primary Region ซึ่งตัวระบบจะสลับไปอีก IDC ได้ทันที พูดง่ายๆ เหมือนได้ใช้ Server ที่ใส่เว็บไว้สอง IDC โดยจ่ายเงินเท่ากับ IDC เดียว

สำหรับความเร็วในการย้ายไฟล์กว่า 700MB นั้นอยู่ที่ประมาณ 15 นาที โดยวืธีการย้ายแบบเร็วที่สุดคือให้ Host (Server) กับ Host (Server) มันส่งไฟล์กันเอง โดยวางไฟล์เป็นก้อนเดียวด้วย tar gzip วางไฟล์อยู่บน Server ที่ IDC เก่า (CSLox CyberWorld) แล้วให้ Azure วิ่งมา wget เอาไฟล์ที่ tar gzip ไปแทน (ส่งไฟล์เป็นก้อนเดียวเร็วที่สุด) ตอนส่งไฟล์ได้ความเร็วประมาณ 700KB-1.5MB/s โดยประมาณ คงเพราะมาจากเป็น inter connection ที่ link ของตู้ที่วางเครื่องอยู่มีอยู่ประมาณนี้ก็เลยได้ความเร็วเท่านี้

สำหรับส่วนเรื่องส่งอีเมลออกจาก VM นั้น จากที่ศึกษาดู VM ที่ Azure จะไม่ยอมให้ส่งอีเมลออกจาก VM บนนั้น (คงกลัวว่าเอา VM ไปตั้งส่ง Spam) คำนแนะนำของ Microsoft คือให้หา 2rd party Mail Server และส่ง SMTP บนนั้นแทน (มีให้เลือกเยอะ) แต่ส่วนตัวผมแล้ว ผมมีเมลของ Live Custome Domain อยู่ ก็ไปตั้ง account สำหรับส่งจาก SMTP บนนั้นโดยเฉพาะแทน คือระบบ blog ผมมันไม่ค่อยมีเมลให้ส่งออกอยู่แล้วก็เลยสบายหน่อย แล้วก็กลับมาตั้งที่ตัว WordPress ให้ส่งอีเมลออกทาง SMTP แทน mail function ของ PHP แทน (ลง plugs in เพิ่ม)

จากทั้งหมด ตอนนี้ผมเน้นเรื่อง uptime เป็นหลัก และการที่เราสามารถเข้าจาก inter ได้ดีที่สุดแทนแล้ว ซึ่งการใช้ VM บน Cloud แบบนี้เราสามารถทำ Sub Region ไปในที่ต่างๆ ได้มากกว่า 1 ประเทศทำให้เว็บเรารองรับการเข้าเว็บได้จากคนทั่วโลกได้ดีมากขึ้น ส่วนตัวการย้าย blog มาใช้ Cloud ก็เป็นแผนทดสอบ Azure โดยส่วนตัวก่อน ว่าจะไม่มีปัญหาใดๆ เมื่อนำไปใช้งานจริงใน production web site ของเว็บที่ผม consult อยู่ด้วย คือถ้าตัวเองไม่กล้าลองเอง แล้วใครเค้าจะกล้าลอง เพราะฉะนั้นจริงเป็นการทำ R&D ในรูปแบบหนึ่ง สำรวจว่ามันทำอะไรได้บ้างและมีข้อจำกัดอะไรบ้างก่อนใช้งานที่ซีเรียสจริงๆ