แนะนำแอปฝากไฟล์เอกสาร รูปภาพ วิดีโอ และเพลงบน True Cloud ที่จะให้พื้นที่ใช้งานไม่จำกัด

เดี่ยวนี้เรามักใช้มือถือจัดเก็บข้อมูลไฟล์เอกสารมากมายลงไปในนั้นเพื่อความสะดวกในการพกพา และใช้งานในโอกาสที่จำเป็น เวลาไปท่องเที่ยว หรือพักผ่อน เราก็ถ่ายรูป-วิดีโอ และจัดเก็บไฟล์เหล่านั้นไว้ เพื่อบันทึกความทรงจำ บ่อยครั้งที่เราต้องสำรองข้อมูลเหล่านี้เพื่อป้องกันการสูญหาย ทั้งจากเหตุการณ์เครื่องหาย โดนลบโดยไม่ได้ตั้งใจ รวมไปถึงการแชร์ข้อมูลเพื่อใช้งานระหว่างเครื่องหากเรามีเครื่องหลายๆ เครื่องไว้ใช้งาน

office-336368_1920

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

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

2016-11-13 13.55.17-1 2016-11-13 14.15.18 HDR-1

2016-11-11 07.41.21 HDR-1 2016-11-13 14.04.02-1 2016-11-11 20.23.31-1 2016-11-13 20.28.05-1

วันนี้ผมมาแนะนำบริการ True Cloud จาก True ที่ช่วยเพิ่มประสบการณ์การใช้ Cloud ที่ดีที่สุด กับบริการฟรีหากคุณใช้เครือข่าย TrueMove H คุณก็จะได้พื้นที่ในการบันทึกสิ่งต่างๆ เหล่านี้ได้ไม่จำกัด ช่วยให้เราสะดวกสบายมากขึ้น

โดยทาง  Truemove H จัดแพ็กเกจเอาใจชาวสมาร์ทโฟนที่ต้องการเชื่อมต่อโลกออนไลน์ให้เล่นเน็ต 4G+ และสามารถใช้งานร่วมกับ True Cloud ได้เร็วแรงต่อเนื่องไม่มีสะดุด โดยข้อเสนอรับเน็ตฟรี เดือนละ 2 GB นานกว่า 20 เดือน (รวมทั้งหมด 40 GB) ซึ่งทำให้นำมาใช้งานร่วมกับการฝากไฟล์รูปภาพ วีดีโอ เพลง บน True Cloud ได้อีกไม่อั้นผ่านแอพ True ID วิธีการใช้งานก็เพียงแต่ ดาวน์โหลดแอพ TrueID ได้จาก Link ต่อไปนี้ iOS | Android ก่อน แล้วเปิดเบอร์ใหม่กับทางทรูมูฟ เอชแบบรายเดือน พร้อมกับสมัครแพ็กเกจรายเดือน 4G+ Super Smart 499 ขึ้นไป ก็จะได้รับเน็ตตามแพ็กเกจหลัก 2GB บวกกับรับเน็ตฟรีอีก 2GB และพิเศษกับการรับการรับเน็ตเพิ่มเติมอีก 2GB ต่อเดือน นาน 20 เดือน ซึ่งทำให้สามารถใช้เน็ตในแต่ละเดือนได้มากจุใจถึง 6GB กันเลยทีเดียว

image

การใช้งาน True Cloud ภายในแอป TrueID ทำได้ดังต่อไปนี้

เมื่อเปิดแอป TrueID ให้เข้าไปที่ Setting (รูปฟันเฟืองมุมขวา) แล้วเลือก SYNC

Screenshot_2016-11-21-12-12-54 Screenshot_2016-11-23-02-11-14

เลือก Enable sync และเลือกชนิดข้อมูลที่ต้องการ Sync ได้ตามต้องการ และเลือกว่าอยาก Syncing Method แบบไหน เช่น ให้ Sync กับ Cellular data + Wi-Fi หรือ Wi-Fi Only

Screenshot_2016-11-23-02-14-47 Screenshot_2016-11-23-02-14-53

พอปรับแก้พวก Setting ต่างๆ แล้ว เราก็พร้อมกับการใช้งาน True Cloud

ไปที่ส่วนของ Access เป็นส่วนหลักในการเข้าใช้งาน True Cloud โดยจะเป็นไปตามประเภทของไฟล์ที่เราจะใช้งาน

โดยแบ่งตามประเภทดังต่อไปนี้

  1. Photos
  2. Videos
  3. Music
  4. Contact
  5. Files

สำหรับในส่วนสุดท้ายจะเป็นอีเมลของเราบน @itruecloud.com

Screenshot_2016-11-21-12-12-59 Screenshot_2016-11-21-17-39-00

ในส่วนที่อยากแนะนำคือส่วนของ Photos, Videos และ Files เพราะเป็นส่วนที่ใช้ผมใช้เยอะสุดแล้ว

โดยในส่วนของ Photos และ Videos จะคล้ายๆ กัน คือไฟล์ทุกไฟล์ในเครื่องเราเพียงแค่กดปุ่ม Sync Now ตัวแอป trueid จะทำการหาไฟล์แล้วโยนอัพโหลดเข้า True Cloud ให้เราให้ทันที ซึ่งทำให้เราไม่ต้องมาคิดมาว่าไฟล์ไหนบ้างจะถูกโยนขึ้นไปบนนั้น

สำหรับในการจัดการไฟล์ก็ไม่ยาก สามารถแชร์และลบไฟล์ได้ รวมไปถึงดาวน์โหลดกลับมาก็ยังได้

Screenshot_2016-11-21-12-49-30 Screenshot_2016-11-21-12-51-23 Screenshot_2016-11-21-13-10-02

Screenshot_2016-11-21-13-09-23 Screenshot_2016-11-23-02-31-19 Screenshot_2016-11-23-02-31-30

Screenshot_2016-11-23-02-11-23 Screenshot_2016-11-23-02-28-42

ในส่วนของไฟล์เอกสาร นั้นในตัว True Cloud มีให้เราใส่เอกสารลงไป แล้ว sync ขึ้น True Cloud ทำให้เราไม่ต้องกลัวข้อมูลสูญหาย อีกทั้งยังสามารถกำหนดให้เป็นแบบส่วนตัวหรือสาธารณะหรือให้ผู้อื่นใช้งานร่วมกับเราก็ได้ แชร์ไฟล์ให้เข้าถึงข้อมูลได้ทุกที่ทุกเวลาทุกอุปกรณ์ผ่านเครื่อข่ายอินเตอร์เน็ต

Screenshot_2016-11-23-02-04-09 Screenshot_2016-11-23-02-32-27

จากทั้งหมดที่กล่าวมาบริการ True Cloud จาก True ช่วยเพิ่มประสบการณ์การใช้ Cloud ที่ดีที่สุด ผ่านเครือข่ายทรู 3G/4G/Wifi by TrueMove H/True Online ซึ่งสามารถใช้กับสมาร์ทโฟน 4G ทั้ง iOS และ Android เพียงเปิดเบอร์หรือหรือย้ายค่ายมา TrueMove H รับเน็ตฟรี 40 GB และบริการ True Cloud ฟรีไม่อั้น

ข้อมูลโปรโมชั่นสำหรับลูกค้ารายเดือนและเติมเงิน

image

บริการ Backblaze B2 Cloud Storage พื้นที่เก็บไฟล์ราคาถูกสำหรับเก็บไฟล์จำนวนมากๆ พื้นที่เยอะๆ

เมื่อเดือนก่อนติดตั้ง Internet ใหม่ได้ download ความเร็ว 50Mbps และ upload ความเร็ว 10 Mbps ทำให้ความฝันที่จะอัพโหลดไฟล์ที่มีขนาดใหญ่ๆ ไปไว้บน Internet สามารถทำได้ง่ายและเร็วมากขึ้น ทำให้คิดว่าควรหาพื้นที่ backup ข้อมูลเพื่อเป็น DR สำหรับไฟล์ต่างๆ บน External HDD ที่มีอยู่ เลยหาบริการที่สามารถช่วยตอบโจทย์การ backup ดังกล่าวได้ในราคาที่ต่ำหรือพอๆ กับซื้อ External HDD มาทำ NAS + RAID ซึ่ง @lewcpe แนะนำ Backblaze ผมเลยศึกษาข้อมูลของบริการตัวนี้ดู

Backblaze

หลังจากใช้ Backblaze B2 Cloud Storage (ต่อไปเรียก B2) มาได้สักพัก ค่อนข้างประทับใจเลยทีเดียว โดยมันทำงานคล้ายๆ กับ AWS S3 หรือ Azure Storage แต่ราคาในการเก็บข้อมูลอยู่ที่ 0.005 usd/GB/mo หากเก็บข้อมูล 1TB ต่อเดือนจ่ายที่ 5.12 usd เท่านั้น ซึ่งราคานี้ยังไม่รวมพวก Transaction และ Download Bandwidth ที่หากเราจะ download ออกมา ก็จ่ายเงินเพิ่มไปทีหลัง ซึ่ง AWS S3 หรือ Azure Storag ก็เก็บในลักษณธนี้เช่นกัน แต่ B2 ให้ราคาที่ถูกกว่ามาก (คิดยิบย่อยน้อยกว่า AWS มาก) โดยมีรายงานรวมไปถึงตั้ง Caps & Alerts เพื่อป้องกันค่าใช้จ่ายเกินได้ด้วย ช่วยให้เราตรวจสอบได้ว่าเราจะต้องจ่ายเงินเท่าไหร่ได้ในแต่ละเดือน

โดยในส่วนของ Caps นั้น มีข้อมูลให้ทั้ง
1. Daily Storage Caps โดยเก็บไฟล์ฟรีที่ 10 GB
(ราคาหลังจากนั้น 0.005 usd/GB/mo)

2. Daily Download Bandwidth Caps ฟรีจำนวนข้อมูลดาวน์โหลดออกมา 1 GB ต่อวัน
(ราคาหลังจากนั้น 0.05 usd/GB)

3. Daily Class B Transactions Caps ฟรีดาวน์โหลด 2,500 Transactions แรก
(0.004 usd/10,000 transactions)

4. Daily Class C Transactions Caps ฟรีสร้างหรืออัพเดทไฟล์ 2,500 Transactions แรก
(0.004 usd/1,000 transactions)

ส่วน Daily Class A Transactions ฟรีอัพโหลดข้อมูลไม่จำกัดจำนวน Transactions (แต่พื้นที่เก็บข้อมูลตามข้อที่ 1.)

จากรายงานทั้งหมดด้านบน หากเรามานั่งคิดดีๆ โดยรวมถือว่าถูกที่สุดเท่าที่หาได้ และมีความน่าเชื่อถือสูงเช่นกัน หากเราคิดว่าเราจะหา HDD มานั่ง backup ข้อมูลเองและต้องแยกไฟล์ไว้หลายๆ จุด การใช้ B2 ก็ช่วยตอบโจทย์ได้มากกว่า ด้วย Backblaze Vaults ที่ทาง Backblaze บอกว่าทำ 17 data shards และ 3 parity shard ช่วยให้ป้องกันการเสียหายของข้อมูลจาก HDD failed ได้ดีกว่า ถึงขนาดกล้ารับประกัน 99.999999% annual durability ทีเดียว (เรื่องนี้ต้องดูกันยาวๆ)

Distributing Data Across 20 Storage Pods

ตัวบริการเป็นลักษณะพื้นที่เก็บเฉยๆ ไม่มี client ช่วย sync ข้อมูลให้แต่อย่างใด แต่เปิด API เพื่อให้เขียนโปรแกรมสำหรับอัพโหลดเข้าไปแทน ผมเลยใช้วิธีอัพโหลดไฟล์เข้าไปผ่านโปรแกรมชื่อ Cyberduck ซึ่งทำงานคล้ายๆ กับ FTP ในการโยนไฟล์เข้า Server โดยทั่วไป โดยจากการใช้งานผ่าน Cyberduck และเก็บไฟล์บน B2 สิ่งที่ต้องทำคือการใส่ไฟล์เยอะๆ เป็นจำนวนมาก ทำให้เราเสียค่า Class C Transactions เยอะ เพราะมันคิดตามจำนวนไฟล์ที่สร้างขึ้น จึงต้องใช้การ zip ไฟล์ก่อน แล้วส่งไฟล์เข้าไปเป็นก้อนใหญ่ๆ แทน เพื่อประหยัด Class C Transactions

B2 Cloud Storage

มีข้อดีมากมาย ก็มีข้อเสียที่ควรใส่ใจคือ Backblaze ไม่ encrypt ไฟล์ที่จัดเก็บให้เรา (แต่การส่งข้อมูลยัง encrypt ผ่าน https) ฉะนั้น ไฟล์อะไรที่สำคัญ ควร encrypt ก่อนส่งเข้าไปเก็บที่นั้นเสมอ

การกำหนดการเข้าถึงไฟล์นั้นเป็นแบบแบ่ง Bucket เอาแทน และ permission อีกเพียง Public และ Private ฉะนั้นตอนเริ่มตั้งค่าต้องเซ็ตให้ดีๆ ว่าอันไหน Public อันไหน Private

จากทั้งหมดที่ว่ามา ตอนนี้ก็เลยสามารถใช้ HDD ที่มีอยู่ในการเก็บข้อมูลเพียง copy เดียว แล้วโยนไฟล์ที่ต้องการ Backup ชุดข้อมูลดังกล่าวไปใส่ใน Backblaze แทนซึ่งตอบโจทย์ทั้ง Backup และ DR ไปในตัว

แนวคิดการ Backup ทั้งบน Cloud และที่บ้าน

จากที่ผมเขียน แนวทางการ Backup ข้อมูล และ มาทำ Backup ไฟล์สำคัญจากมือถือและโน๊ตบุ๊ก ไปไว้บน Cloud กันดีกว่า!!! (Online Sync) จนผมมักพูดว่า “Backup พันวัน เอาไว้ใช้วันสำคัญวันเดียว … วันที่ข้อมูลมีปัญหา!!!” ซึ่งมีใจโดยสรุปดังนี้

  1. เพื่อป้องกันทั้งการ “ลบ” หรือ “ทำข้อมูลสูญหาย” ทั้งที่ตั้งใจและไม่ตั้งใจ
  2. “กู้ข้อมูลเก่า” เนื่องจากแก้ไขข้อมูลปัจจุบันแล้วมีปัญหา หรือไฟล์ที่มีใช้งานไม่ได้ จึงต้องการกลับไปใช้ต้นฉบับก่อนหน้านี้
  3. ป้องกัน “สื่อเก็บข้อมูลเสียหาย” อันนี้สำคัญเก็บดีแค่ไหน ไอ้ตัวที่เก็บข้อมูลดันเสียเองก็จบกัน
  4. “โดนขโมย” อันนี้ปัจจัยควบคุมได้ยากสุดแต่เกิดขึ้นได้น้อยแต่ก็ต้องระวัง

ซึ่งเป็นการสรุปมา 4 ข้อ เจอกันบ่อยๆ คงจะเริ่มเห็นความสำคัญของการ Backup กันบ้างแล้ว ซึ่งแน่นอนว่า ก่อนทำการ Backup ต้องมีการแบ่ง และจัดระเบียบไฟล์ข้อมูลต่างๆ เพื่อจัดลำดับ ประเภท และความบ่อย ในการ Backup เป็นส่วนๆ เพื่อง่ายต่อการตั้งรูปแบบการ Backup ได้หลากหลาย รวดเร็ว และช่วยให้การ Restore ไฟล์กลับมานั้นรวดเร็วมากขึ้น

รูปแบบการ Backup นั้นมีหลายแบบ ตั้งแต่ระดับคนทั่วไปใช้ จนระดับบริษัทขนาดใหญ่โตนับพันล้านใช้ แต่เอาเหอะ เอาระบบบ้านๆ คนทั่วไปใช้งานดีกว่า ซึ่งผมขอแบ่งง่ายๆ 4 แบบ ที่คุ้นเคยกัน

  1. Unstructured หรือ Full (พวก Data Sync ก็แนวๆ นี้เหมือนกัน) – เป็นแบบง่ายๆ ตรงไปตรงมาครับ อย่างที่ผมบอกไปตั้งแต่ต้น copy ไว้หลายๆ ชุด แต่ต้องระวังว่าไฟล์ไหนเป็นไฟล์ล่าสุด ต้องจัดระเบียบไม่ดี เดี่ยวไป merge/replace ทับไฟล์ล่าสุดจะงานเข้าซะ ปรกติคนทั่วไปที่ไม่มีความรู้ทางเทคนิคมาก จะชอบใช้กัน เพราะที่ง่ายสุด และไม่ต้องใช้ซอฟต์แวร์พิเศษใดๆ ให้ยุ่งยาก แค่รู้วิธีการ copy-paste เป็นก็ทำงานได้แล้ว
  2. Full and Incrementals – คล้ายๆ ข้อแรก แต่มีซอฟต์แวร์มาช่วยจัดการให้ โดยจะมีการทำ copy ข้อมูลไว้เป็นไฟล์ๆ (ตามรูปแบบของแต่ละซอฟต์แวร์จัดการ อาจจะเป็นไฟล์เดียวใหญ่ๆ หรือแบ่งเป็นหลายๆ ไฟล์ก็ได้) แล้วเมื่อมีการสำรองข้อมูลครั้งต่อไปก็จะตรวจสอบเฉพาะไฟล์ที่มีการเปลี่ยนแปลง หรือถูกลบออกไปจากการ Backup ครั้งที่แล้ว แล้วทำการ mark/update เพื่อ Backup ไว้เป็นวัน และเวลานั้นๆ ต่อไปเรื่อยๆ เป็นลูกโซ่ ซึ่งช่วยประหยัดพื้นที่ในการจัดเก็บได้มาก ถ้ามีการ Backup ทุกวัน ไฟล์ที่ได้จากการ Backup แบบนี้มันเพิ่มขึ้นมาเรื่อยๆ เวลาจัดเก็บไฟล์พวกนี้ต้องอยู่ครบทุกไฟล์ ต้องระวังให้ครั้งทำ Full-Incrementals ซ้ำไปซ้ำมาเป็นชุดๆ เพราะการเชื่อมไฟล์ Backup แบบนี้ ยิ่งเยอะจะยิ่งช้า และอ่านนานมาก ปรกติโดยส่วนตัวจะพยายามไม่ให้เกิน 14 ไฟล์ หรือขนาดไม่ใหญ่เกินไป (สัก 100GB – 150GB กำลังพอไหว) เพราะป้องกันไฟล์บางไฟล์เสียหาย หรือซอฟต์แวร์เปิดไฟล์ทั้งหมดไม่ได้ เพราะมีขนาดใหญ่เกินไป
  3. Full and Differential – อันนี้คล้ายกับตัวที่สอง ต่างกันเล็กน้อยตรงที่ เมื่อมีการสำรองข้อมูลครั้งต่อไปก็จะตรวจสอบเฉพาะไฟล์ที่มีการเปลี่ยนแปลง หรือถูกลบออกไปล่าสุดจากการ Backup ตัว Full แล้วทำการ mark/update เพื่อ Backup ไว้เป็นวัน และเวลานั้นๆ ไปเรื่อยๆ เวลากู้คืนกลับมาใช้ไฟล์ Full และตัวไฟล์ที่ Backup ตัวล่าสุด หรือวันที่ต้องการ แค่ 2 ส่วนก็กู้คืนได้แล้ว ซึ่งข้อดีคือ เร็วทั้งการอ่าน และเขียนไฟล์ รวมไปถึงลดความเสี่ยงต่อการสูญหายของไฟล์แต่ละส่วนก็น้อยกว่า แต่มีข้อเสียที่ เสียพื้นที่เยอะกว่าแบบข้อที่ 2 มาก
  4. Versioning with File System – อันนี้เป็นแบบที่ไม่ค่อยมีใครใช้กันสักเท่าไหร่ เพราะมันถูกจัดการด้วยตัว OS เองเป็นหลักเลย โดยผมขอยกตัวอย่างใน Windows 8 ชือ File History และใน Windows 7 ชื่อ Previous Versions โดยหลักการง่ายๆ คือระบบจะทำการสำรองข้อมูลของเราเป็น restore point หรือ snapshot  เมื่อเรา save ข้อมูลไว้อีกชุดนึงไว้ เวลาจะเรียกกลับมาก็แค่คลิ้กขวา restore กลับไปตามวันและเวลาที่มัน Backup ไว้ล่าสุด วิธีนี้ง่ายๆ แต่ผมนานๆ ใช้ที ดูแล้วมันทำงานบ้างไม่ทำงานบ้าง ยัง งงๆ อยู่ว่าทำไม อาจจะเพราะตั้งค่ามันเก็บข้อมูลให้ใช้พื้นที่น้อยไปหน่อยเลยมีค่าเฉลี่ยของ ครั้งที่สำรองข้อมูลของไฟล์บางชนิดน้อยลงไปเรื่อยๆ ส่วนใหญ่ผมจะใช้ตอนรีบเร่งจริงๆ เท่านั้น ออกแนวมีไว้อุ่นใจเป็นหลัก

จากข้อมูลสรุปๆ ผมก็เขียนเรื่องแนวๆ นี้ซึ่งก็มี แนวทางการ Backup ข้อมูล (ฉบับปรับใหม่) และ วิธีเก็บไฟล์รูปภาพให้อยู่กับเรานานๆ อีกด้วย

แน่นอนว่าในยุคที่เรามีการใช้ Cloud Storage กันอย่างกว้างขวาง ส่วนตัวแล้วไม่ได้ใช้ Cloud Storage  แค่ช่วยในการ Backup ข้อมูลเท่านั้น แต่ผมยังใช้ในการทำงานระหว่างเครื่องคอมพิวเตอร์ และมือถือที่ทุกๆ เครื่องสามารถเข้าถึงไฟล์ใน Cloud Storage ได้เหมือนๆ กันทุกเครื่อง ทำให้ไม่ต้องพก Flash Drive หรือ External Hard drive ไปๆ มาๆ ลดโอกาสสูญหาย และหลงลืมได้ ขอให้มี internet เพื่อเข้าถึง Cloud Storage ที่ใช้อยู่ได้ก็เพียงพอ

โดยปรกติตอนนี้ผมใช้ Cloud Storage อยู่หลักๆ 3 ตัวคือ SkyDrive เป็นตัวหลัก SkyDrive Pro เป็นที่เก็บไฟล์สำคัญบางอย่าง และ Dropbox เป็นส่วนสำหรับแชร์ทำงานกับลูกค้า โดยไม่ว่าจะมือถือหรือคอมพิวเตอร์ทุกเครื่องจะสามารถเข้าถึง Cloud Storage ทั้ง 3 ตัวนี้ได้ทั้งหมด แน่นอนว่าจะมีส่วนหนึ่งที่ใช้ Cloud Storage แบบเฉพาะ ที่ไว้จัดเก็บ Source code ซึ่งผมจะใช้ BitBucket.org ในการเป็น source code revision control (Git) ในการช่วยแบ่งเบาภาระของ SkyDrive, SkyDrive Pro และ Dropbox ไปอีกชั้นหนึ่ง

แน่นอนว่ามี Cloud Storage ในการจัดเก็บ แชร์ไฟล์งานระหว่างเครื่อง และกลุ่มการทำงานแล้ว ก็ต้องมีการ Backup ส่วนนี้ไว้เองที่บ้านด้วย (ต่อไปจะใช้คำว่า Local backup) ด้วยเช่นกัน เพราะต้องนึกถึงความเสี่ยงที่ระบบ Cloud Storage จะล่ม ซึ่งผมได้แบ่งกลุ่มไว้กว้างๆ อยู่ 3 กลุ่มคือ

1. กลุ่มสำคัญสูงสุด จะใช้  Cloud Storage และทำ Local backup ไปพร้อมๆ กัน โดยแยกไว้ 2 พวกย่อย คือ
– ไฟล์งานเอกสารที่หายไม่ได้ จะ backup ไว้ 2 ส่วน คือ ไว้บน Cloud Storage (SkyDrive/Dropbox ) และ HDD External ที่ตั้ง daily backup ทุกวัน (เปิดเครื่องทิ้งไว้ตอนกลางคืน ให้ Acronis True Image ทำการ Full and Incrementals backup)
– ไฟล์ source code และต้องทำ source code revision control จะ Backup ไว้ 2 ส่วน คือ ไว้บน BitBucket.org และ HDD External ที่ตั้ง daily backup ทุกวัน (เปิดเครื่องทิ้งไว้ตอนกลางคืน ให้ Acronis True Image ทำการ Full and Incrementals backup)

2. กลุ่มสำคัญมาก จะทำ Local backup เท่านั้น ได้แก่พวกไฟล์รูปภาพ หรือไฟล์ความทรงจำต่างๆ มักจะให้ความสำคัญสูงมาก หายไม่ได้ มีขนาดใหญ่ที่ไว้บน Cloud Storage ลำบาก ต้องมี 2 สำเนาเสมอบน HDD External โดยใช้ลักษณะการ Full data sync ต่าง HDD External ทุกครั้งที่มีข้อมูลใหม่ (ทำ Full data sync ผ่าน SyncToy)

3. กลุ่มสำคัญ จะทำ Local backup เท่านั้น ได้แก่พวกพวกไฟล์วิดีโอ (จำพวก เอ็มวีหายาก ไฟล์หนังหายากที่ rip จากแผ่นที่เก็บไว้ ป้องกันแผ่นเสีย), ไฟล์อีบุ๊ค, ซอฟต์แวร์ที่คัดลอกไว้เพื่อไว้สำหรับติดตั้งในอนาคต มีขนาดใหญ่ที่ไว้บน Cloud Storage ลำบาก ซึ่งส่วนใหญ่จะมี 2 สำเนาบน HDD External เสมอ และ Full data sync ต่าง HDD External เดือนละครั้ง (ทำ Full data sync ผ่าน SyncToy)

จากทั้งหมดที่กล่าวมา จะเห็นว่าผมพยายามปรับปรุงการ backup ให้รัดกุมที่สุด และถ้าได้ติดตามในตอนก่อนๆ จะเห็นว่ามีการปรับปรุงให้เรียบง่ายมากขึ้น ไม่ซับซ้อนเหมือนตอนก่อนๆ แน่นอนว่า หลายๆ คนคงให้เหตุผลว่าทำไมไม่ใช้ RAID ร่วมด้วย คือต้องอธิบายก่อนว่า RAID นั้นช่วยเรื่อง uptime เป็นหลัก ซึ่งเหมาะกับ Server และการให้บริการอย่างต่อเนื่อง การนำมาใช้ในการสำรองข้อมูลที่เน้นคงทน และสามารถกู้ข้อมูลกลับมาในวันก่อนๆ ได้นั้นยังคงเป็นจุดอ่อน รวมไปถึงมีจุดอ่อนในส่วนของ RAID Controller มีปัญหา หรือ File System เสียหายจนใช้งานไม่ได้ด้วย ซึ่ง RAID นั้นไม่ช่วยอะไรในกรณีนี้ ฉะนั้นการสำรองข้อมูลต่าง HDD แบบแยกออกเป็นอุปกรณ์ และทำ Full data sync จะดีกว่าสำหรับไฟล์แนวๆ ตัวอย่างที่ผมใช้ประจำคือ Server ที่ผมดูแลนั้นมีการใช้ RAID และยัง backup ข้อมูลต่างชุด HDD รวมไปถึงงานที่ซีเรียสมากๆ ผมจะ backup ต่างเครื่อง ด้วยซ้ำไป

สรุปผลจากทั้งหมดที่กล่าวมานี้ ช่วยชีวิตผมมาหลายต่อหลายครั้งแล้ว แม้ใช้งบเยอะหน่อย แต่ไฟล์งานสำคัญปลอดภัยผมถือว่าคุ้มค่าครับ

Windows Azure ตอนที่ 5 การติดตั้ง Linux และ Windows Server บน Windows Azure Virtual Machine

ระบบเครื่องประมวลผลเสมือนหรือ Virtual Machines (VM) เป็นหนึ่งในบริการโครงสร้างพื้นฐาน (IaaS) สำหรับให้เราปรับแต่งและนำระบบที่พัฒนาสำหรับใช้งานผ่านระบบอินเทอร์เน็ตและอินทราเน็ตขึ้นสู่บริการประมวลผลแบบกลุ่มเมฆ โดยบริการโครงสร้างพื้นฐานที่จัดเตรียมไว้ให้บนระบบประมวลผลแบบกลุ่มเมฆโดยระบบเครื่องประมวลผลเสมือนที่รองรับทั้ง Windows และ Linux

โดยผู้พัฒนาระบบที่ใช้ในบริการเครื่องประมวลผลเสมือนนี้มาประยุกต์ใช้งานเพื่อสร้างระบบที่ออกแบบได้เองตั้งแต่การเลือกใช้งานระบบปฏิบัติการ (Operating System) การตั้งค่าการสื่อสารระหว่างตัวเครื่องประมวลผลเสมือนติดตั้งซอฟแวร์สื่อสารระหว่างระบบ (Middleware) ซอฟต์แวร์ช่วยประมวลผลภาษาโปรแกรมมิ่ง (Software Runtime) ซอฟต์แวร์เพื่อรองรับโครงร่างการพัฒนาโปรแกรมคอมพิวเตอร์ (Software Framework) และระบบสำรองข้อมูลทั้งหมด ทำให้เราสามารถบริหารจัดการได้เสมือนเครื่องแม่ข่ายจริงๆ

การติดตั้ง Ubuntu Linux Server บน Windows Azure Virtual Machine

1. เลือกที่ NEW ที่หน้า Windows Azure Portal

2013-10-05_223623

2. เลือกที่ Compute ตามด้วย Virtaul Machine และเลือกที่ From Gallery

2013-10-05_224608_thumb

3. เลือก Ubuntu Linux Server รุ่นที่ต้องการจากหน้า Virtual machine image selection กดปุ่ม Next

2013-10-05_224718

4. กรอกข้อมูลตั้งค่า Virtual Machince ส่วนของคุณสมบัติเครื่องเสมือนได้แก่

4.1. ตัวเลือก Version Release Date ซึ่งเป็นรุ่นที่มีการรวบรวมการสร้างอิมเมจของตัวระบบปฏิบัติการนั้นๆ ซึ่งถ้าใช้วันที่ล่าสุด จะทำให้เราไม่ต้องอัพเดทแพตเยอะเกินความจำเป็น

4.2. ตั้งชื่อเครื่องเสมือนที่ Virtual Machine Name

4.3. เลือกขนาดของตัวเครื่อง (Size)

image_thumb[3]

4.4. เลือกชื่อเข้าระบบ (New user name)

4.5. เอาเครื่องหมายถูกที่ Upload compatible SSH key for authentication ออกไป

4.6. เลือก Provide a password และตั้งรหัสผ่านเข้าระบบจากตรงนี้

ตั้งค่าทั้งหมดเสร็จแล้วกดปุ่ม Next

2013-10-05_224947

5. กรอกข้อมูลตั้งค่า Virtual Machince ในส่วนของการใช้งานเครือข่ายได้แก่

5.1. Cloud Service เป็นตัวเลือกเพื่อผูกเข้ากับ Cloud Service ใหม่หรือผนวกตัว Virtual Machine ที่กำลังจะสร้างนี้ไปใช้งานร่วมกับ Virtual Machine เก่าโดยการผนวกเพื่อใช้งานร่วมกับ Virtual Machine เก่าจะสามารถใช้ความสามารถของ Load Balancer ได้ด้วย

5.2. Cloud Service DNS name ชื่อของ Cloud Service ที่จะใช้อ้างอิงเพื่อใช้งานกับ domain ชื่อ cloudapp.net

5.3. Subscription ชื่อของบัญชีผู้ใช้งานเพื่อเรียกเก็บค่าใช้ระบบ

5.4. Region/Affinity Group/Virtual Network โซนที่ต้องการนำ Virtual Machine นี้ไปใช้งาน

5.5. Storage Account ชื่อบัญชีผู้ใช้งานสำหรับจัดการเก็บ Virtual Machine ซึ่งไฟล์ Virtual Machine จะเป็นนามสกุล VHD ซึ่งเป็นตัวเดียวกับที่ใช้บน Windows Server

5.6. Availability Set เป็นการตั้งกลุ่มเพื่อทำการขยายระบบและรองรับการล่มของ Virtual Machine ซึ่งจะทำงานสอดคล้องกับ Cloud Service ในข้อที่ 5.1

2013-10-05_225355

6. ตั้งค่าการเข้าถึงผ่าน Port ของ Network ซึ่งเป็นการตั้งค่าให้สอดคล้องกับระบบรักษาความปลอดภัยของ Windows Azure ผ่านระบบ Firewall ด้วยการตั้งค่า Endpoint ซึ่งค่าเริ่มต้นของ Linux นั้นจะเป็น Port หมายเลข 22 ที่เป็น Secure Shell นั้นเอง

2013-10-05_225450_thumb

จากตัวอย่าง ถ้าเราต้องการใช้ Virtual Machine นี้ในการให้บริการเว็บก็เลือก HTTP เพื่อใช้ Port หมายเลข 80 เพื่อให้รองรับกับ Apache Web Server และ Port หมายเลข 21 เพื่อให้รองรับกับการส่งไฟล์ผ่าน FTP เป็นต้น

เมื่อทุกอย่างตั้งค่าครอบแล้วให้ตอบ OK หรือเครื่องหมายถูก ที่มุมขวาล่าง

2013-10-05_225435

7. จากตัวอย่างดังกล่าว เมื่อตอบตกลงให้สร้าง Virtual Machine แล้ว ให้รอจนกว่าจะ Provisioning เสร็จสิ้นแล้วขึ้นสถานะ Running

2013-10-05_225536

2013-10-05_225857

8. เมื่ออยู่ในสถานะ Running แล้วให้เข้าไปที่ Dashboard ของ Virtual Machine เครื่องที่เราสร้างขึ้นมา จะมีส่วนต่างๆ ในหน้า Dashboard นี้หลายส่วนให้เทำความเข้าใจ

8.1. web endpoint status ตั้งสถานะการตรวจจับการทำงานของ endpoint ที่ตั้งขึ้นมาเพื่อส่งสถานะไปแจ้งเมื่อมีการล่มเกิดขึ้นหรือโยกการเข้าถึงไปยังระบบอื่นๆ

8.2. autoscale status ตั้งค่าขยายระบบอัตโนมัติ โดยปรกติถ้าใช้งานเพียง Virtual Machine เดียวเราจะไม่สามารถตั้งค่าอะไรเพิ่มเติมได้ เพราะต้องคั้งค่า Availability Set เสียก่อน

8.3. usage overview จะแสดงจำนวน core ของ CPU ที่ใช้งานอยู่และสามารถขยายระบบออกไปได้ ถ้าตั้ง Availability Set ไว้จะเห็นจำนวน core ของ CPU ใน Available เพิ่มขึ้นมา

8.4. disk ส่วนแสดงรายการของ disk หรือไฟล์ VHD ที่เกี่ยวกับและทำงานร่วมกับ Virtual Machine เครื่องนี้

8.5. quick glance ใช้สำหรับแสดงสถานะของ Virtual Machine ได้แก่
status แสดงว่ากำลังทำงานอยู่หรือไม่
dns name ชื่อ DNS สำหรับใช้ในการติดต่อ ภายใต้ domain name ชื่อ cloudapp.net
host name ชื่อ host name ของระบบปฏิบัติการที่ติดตั้งอยู่
public virtual IP หมายเลข IP ภายนอกที่ใช้สำหรับติดต่อเข้ามา ใช้งานแทน dns name ได้
internal IP หมายเลข IP สำหรับควบคมผ่าน cloud agent ของ Windows Azure Portal
SSH details รายละเอียดสำหรับเชื่อมต่อผ่าน SSH
size คุณสมบัติของ Virtual Machine เครื่องนี้

8.6. matrix เป็นกราฟที่ใช้แสดงโหลดของ Virtual Machine เครื่องนี้ว่ามีการเคลื่อนไหวอย่างไรบ้าง

8.7. dashboard menu เมนูหลักในการจัดการ Virtual Machine ในส่วนต่างๆ

2013-10-05_230513_thumb[6]

9. ส่วนของ Endpoint เป็นส่วนที่ใช้สำหรับจัดการ Port เพื่อให้เราสามารถเชื่อมต่อกับ Virtual Machine ได้จากเครือข่ายภายนอก Windows Azure โดย Port ต่างๆ นั้นจะใช้ผ่านโปรแกรมหรือการเรียกใช้ตามที่ระบุไว้เท่านั้น ถ้าไม่มีการเปิดใน Endpoint นี้ก่อน จะทำให้การเข้าถึงในโปรแกรมหรือระบบที่ได้ติดตั้งลงใน Virtual Machine ที่ทำงานใน Port ดังกล่าว ใช้งานจากภายนอก Windows Azure ไม่ได้

2013-10-05_230538

10. การตั้งขนาดของ Virtual Machine สามารถกลับมาปรับได้จากหน้า Configure นี้ รวมไปถึงการตั้งค่า Availability Set เพื่อสร้างกลุ่มของการขยายและรองรับการล่มของระบบขึ้นมา ในส่วนของ monitoring นั้น เป็นส่วนที่ใช้สำหรับตั้งค่า web endpoint status ซึ่งเป็นที่เดียวกันในหน้า Dashboard

2013-10-05_230733

11. การเชื่อมต่อสามารถเข้าได้ผ่าน SSH Client อย่าง PuTTY โดยใช้ค่าจาก SSD Details มาใช้งานเพื่อเชื่อมต่อ ซึ่งเมื่อทำการเชื่อมต่อให้กดรับ rsa2 key fingerprint ก่อนเพื่อให้การเชื่อมต่อสำเร็จ

2013-10-05_230958

2013-10-05_231026

12. เมื่อเชื่อมต่อได้ ผ่านข้อมูลในข้อที่ 4. ก็จะเข้ามาในหน้า Shell ของระบบ เป็นอันเสร้จสิ้นการติดตั้ง Ubuntu Linux Server

2013-10-05_231141

 

การติดตั้ง Windows Server บน Windows Azure Virtual Machine

1. เลือกที่ NEW ที่หน้า Windows Azure Portal

2013-10-05_223623

2. เลือกที่ Compute ตามด้วย Virtaul Machine และเลือกที่ From Gallery

2013-10-05_224608

3. เลือก Windows Server รุ่นที่ต้องการจากหน้า Virtual machine image selection กดปุ่ม Next

2013-10-05_231605

4. กรอกข้อมูลตั้งค่า Virtual Machince ส่วนของคุณสมบัติเครื่องเสมือนได้แก่

4.1. ตัวเลือก Version Release Date ซึ่งเป็นรุ่นที่มีการรวบรวมการสร้างอิมเมจของตัวระบบปฏิบัติการนั้นๆ ซึ่งถ้าใช้วันที่ล่าสุด จะทำให้เราไม่ต้องอัพเดทแพตเยอะเกินความจำเป็น

4.2. ตั้งชื่อเครื่องเสมือนที่ Virtual Machine Name

4.3. เลือกขนาดของตัวเครื่อง (Size)

4.4. เลือกชื่อเข้าระบบ (New user name)

4.5. กรอกข้อมูลรหัสผ่าน (New password) และยืนยันรหัสผ่านอีกครั้ง

ตั้งค่าทั้งหมดเสร็จแล้วกดปุ่ม Next

2013-10-05_232502

5. กรอกข้อมูลตั้งค่า Virtual Machince ในส่วนของการใช้งานเครือข่ายได้แก่

5.1. Cloud Service เป็นตัวเลือกเพื่อผูกเข้ากับ Cloud Service ใหม่หรือผนวกตัว Virtual Machine ที่กำลังจะสร้างนี้ไปใช้งานร่วมกับ Virtual Machine เก่าโดยการผนวกเพื่อใช้งานร่วมกับ Virtual Machine เก่าจะสามารถใช้ความสามารถของ Load Balancer ได้ด้วย

5.2. Cloud Service DNS name ชื่อของ Cloud Service ที่จะใช้อ้างอิงเพื่อใช้งานกับ domain ชื่อ cloudapp.net

5.3. Subscription ชื่อของบัญชีผู้ใช้งานเพื่อเรียกเก็บค่าใช้ระบบ

5.4. Region/Affinity Group/Virtual Network โซนที่ต้องการนำ Virtual Machine นี้ไปใช้งาน

5.5. Storage Account ชื่อบัญชีผู้ใช้งานสำหรับจัดการเก็บ Virtual Machine ซึ่งไฟล์ Virtual Machine จะเป็นนามสกุล VHD ซึ่งเป็นตัวเดียวกับที่ใช้บน Windows Server

5.6. Availability Set เป็นการตั้งกลุ่มเพื่อทำการขยายระบบและรองรับการล่มของ Virtual Machine ซึ่งจะทำงานสอดคล้องกับ Cloud Service ในข้อที่ 5.1

2013-10-05_234002

6. ตั้งค่าการเข้าถึงผ่าน Port ของ Network ซึ่งเป็นการตั้งค่าให้สอดคล้องกับระบบรักษาความปลอดภัยของ Windows Azure ผ่านระบบ Firewall ด้วยการตั้งค่า Endpoint ซึ่งค่าเริ่มต้นของ Windows นั้นจะเป็น Port หมายเลข 3389 ที่เป็น Remote Desktop และ 5986 ที่เป็น PowerShell เพื่อ Remote เข้ามาได้

2013-10-05_234027

จากตัวอย่าง ถ้าเราต้องการใช้ Virtual Machine นี้ในการให้บริการเว็บก็เลือก HTTP เพื่อใช้ Port หมายเลข 80 เพื่อให้รองรับกับ IIS และ Port หมายเลข 21 เพื่อให้รองรับกับการส่งไฟล์ผ่าน FTP เป็นต้น

เมื่อทุกอย่างตั้งค่าครอบแล้วให้ตอบ OK หรือเครื่องหมายถูก ที่มุมขวาล่าง

2013-10-05_234041

7. จากตัวอย่างดังกล่าว เมื่อตอบตกลงให้สร้าง Virtual Machine แล้ว ให้รอจนกว่าจะ Provisioning เสร็จสิ้นแล้วขึ้นสถานะ Running

2013-10-05_234157

2013-10-05_234546

8. เมื่ออยู่ในสถานะ Running แล้วให้เข้าไปที่ Dashboard ของ Virtual Machine เครื่องที่เราสร้างขึ้นมา จะมีส่วนต่างๆ ในหน้า Dashboard นี้หลายส่วนให้เทำความเข้าใจ

8.1. web endpoint status ตั้งสถานะการตรวจจับการทำงานของ endpoint ที่ตั้งขึ้นมาเพื่อส่งสถานะไปแจ้งเมื่อมีการล่มเกิดขึ้นหรือโยกการเข้าถึงไปยังระบบอื่นๆ

8.2. autoscale status ตั้งค่าขยายระบบอัตโนมัติ โดยปรกติถ้าใช้งานเพียง Virtual Machine เดียวเราจะไม่สามารถตั้งค่าอะไรเพิ่มเติมได้ เพราะต้องคั้งค่า Availability Set เสียก่อน

8.3. usage overview จะแสดงจำนวน core ของ CPU ที่ใช้งานอยู่และสามารถขยายระบบออกไปได้ ถ้าตั้ง Availability Set ไว้จะเห็นจำนวน core ของ CPU ใน Available เพิ่มขึ้นมา

8.4. disk ส่วนแสดงรายการของ disk หรือไฟล์ VHD ที่เกี่ยวกับและทำงานร่วมกับ Virtual Machine เครื่องนี้

8.5. quick glance ใช้สำหรับแสดงสถานะของ Virtual Machine ได้แก่
status แสดงว่ากำลังทำงานอยู่หรือไม่
dns name ชื่อ DNS สำหรับใช้ในการติดต่อ ภายใต้ domain name ชื่อ cloudapp.net
host name ชื่อ host name ของระบบปฏิบัติการที่ติดตั้งอยู่
public virtual IP หมายเลข IP ภายนอกที่ใช้สำหรับติดต่อเข้ามา ใช้งานแทน dns name ได้
internal IP หมายเลข IP สำหรับควบคมผ่าน cloud agent ของ Windows Azure Portal
size คุณสมบัติของ Virtual Machine เครื่องนี้

8.6. matrix เป็นกราฟที่ใช้แสดงโหลดของ Virtual Machine เครื่องนี้ว่ามีการเคลื่อนไหวอย่างไรบ้าง

8.7. dashboard menu เมนูหลักในการจัดการ Virtual Machine ในส่วนต่างๆ

โดยในส่วนของเมนู Endpoint และ Configure นั้นไม่แตกต่างจากของ Linux แต่อย่างใดนัก

2013-10-05_235810

9. ในส่วนของการเชื่อมต่อเข้าไปยัง Virtual Machine เพื่อควบคุมนั้น สามารถดึง RDP profile จากในหน้า Windows Azure Portal ได้จากเมนู Connect ที่ด้านล่าง

2013-10-05_235906

10. เราจะได้ไฟล์ .rdp มา เมื่อ Save และ Open ไฟล์ดังกล่าว ตัว Windows ของเราจะทำการเชื่อมต่อกับ Virtual Machine ที่สร้างขึ้นมา

2013-10-05_235927

11. ตอบรับการเชื่อมต่อในคำแนะนำนี้

2013-10-05_235950

12. ใช้การเชื่อมต่อแบบกำหนดเอง ให้กรอกข้อมูลที่ข้อที่ 4.

2013-10-06_000047

13. ตอบรับ Certificate ของการเชื่อมต่อนี้

2013-10-06_000055

14. รอการเชื่อมต่อ และรอการตั้งค่าต่างๆ ครั้งแรกที่ได้เชื่อมต่อเข้าไป

2013-10-06_000105

2013-10-06_000121

15. เมื่อเชื่อมต่อเสร็จแล้ว เราก็สามารถควบคุม Virtual Machine ที่เป็น Windows Server ได้แล้ว

2013-10-06_000304

 

การเปิดใช้ SWAP Partition ของระบบปฏิบัติการ Linux บน Windows Azure

โดยปรกติแล้ว ถ้าเราลง Linux โดยทั่วไปจะมีการตั้ง SWAP Partition ไว้เป็นปรกติอยู่แล้ว แต่ถ้าอยู่บน Cloud นั้นตัวอิมแมจของระบบปฏิบัติการ Linux จะถูกปรับแต่งบางส่วนเพื่อไม่ให้สร้าง SWAP Partition ด้วยเหตุผลด้านพื้นที่ที่ต้องจองไว้และความไม่จำเป็นโดยทั่วไปของ Cloud อยู่แล้ว (ปรกติใช้ Cloud สำหรับ Compute ข้อมูลที่อาจจะไม่ได้ใช้หน่วยความจำเยอะ) เพราะไม่ใช่ทุกคนที่ลงระบบปฏิบัติการ ต้องได้ใช้ SWAP เสมอไป แต่ถ้าอยากลงก็มีทางให้อยู่ โดยการตั้งค่าต่อไปนี้ อ้างอิงอยู่บน Ubuntu Linux Server เพื่อให้สอดคล้องกับการติดตั้งระบบปฎิบัติการ Ubuntu Linux Server ด้านบน

1. จัดการ sudo ให้ตัวเองเป็น root ของระบบ

2. เข้าไปแก้ไข Windows Azure Linux Agent Configuration ซึ่งอยู่ที่ /etc/waagent.conf

3. เมื่อเปิดไฟล์ขึ้นมาจะตัวตั้งค่าอยู่พอสมควร ให้หาส่วนที่ขึ้นต้นด้วย ResourceDisk ซึ่งจะมีอยู่ทั้งหมด 5 ค่า

ResourceDisk.Format=y
ResourceDisk.Filesystem=ext4
ResourceDisk.MountPoint=/mnt/resource
ResourceDisk.EnableSwap=n
ResourceDisk.SwapSizeMB=0

4. เราจะปรับให้ใช้ SWAP ขนาด 2GB โดยปรับค่า 2 ตัวดังนี้

#เปิดการใช้ SWAP
ResourceDisk.EnableSwap=y

# 2GB หน่วยเป็น MB
ResourceDisk.SwapSizeMB=2048

5. เมื่อปรับแต่งตัวตั้งค่าทั้ง 2 ตัวแล้ว บันทึกไฟล์แล้วออกจากตัว editor

6. สั่ง Deprovision ด้วยคำสั่งด้านล่าง

azureuser@ns1:~$ waagent –force –deprovision
azureuser@ns1:~$ export HISTSIZE=0

7. เมื่อสั่งรันคำสั่งจบก็ exit ออกมา แล้วไปที่ Windows Azure Portal เพื่อสั่ง Restart ตัว Virtual Machines รอสัก 3-4 นาทีโดยประมาณ ระบบจะบูทกลับมาใหม่ ให้ remote กลับเข้ามา แล้วพิมพ์คำสั่ง swapon –s เพื่อตรวจสอบว่ามีไฟล์ SWAP ของระบบอยู่ที่ /mnt/resource/swapfile หรือไม่

2013-03-02_192724

Windows Azure ตอนที่ 4 การติดตั้ง WordPress, การปรับแต่ง PHP และการตั้งค่าในการขยายระบบบน Windows Azure Web Sites

จากตอนที่แล้ว “Windows Azure ตอนที่ 3 การติดตั้ง Drupal บน Windows Azure Web Sites” นั้น จะไม่ขอพูดในบางส่วนที่เป็นการอธิบายซ้ำซึ่งอยู่ในขั้นตอนที่ 1 – 30 ซึ่งจะใช้การตั้งค่าที่เหมือนกัน (ใช้ในการอ้างอิงได้ทุก CMS ของ PHP ด้วยซ้ำไป)

โดยจากขั้นตอนที่ 1- 30 จากบทความที่แล้ว เราจะมีข้อมูลดังต่อไปนี้

  • FTP host name , username และ password สำหรับการ FTP/FTPS เข้าไปวางไฟล์
  • Endpoint Information (MySQL hostname) และ Access Credentials (username และ password) ของฐานข้อมูล MySQL จาก cleardb

เมื่อเราได้ข้อมูลครบก็ทำการโอนย้ายไฟล์ของ WordPress ที่ดาวน์โหลดได้จาก wordpress.org/download

image

สำหรับการ FTP ไปวางไฟล์ ถ้าไม่ใช้ client ที่ติดมากับ Windows ก็ใช้สามารถใช้ client ของเจ้าอื่นๆ ได้ อย่างตัวอย่างนี้ก็ใช้ CuteFTP 9.0 ในการอัพโหลดไฟล์ได้เช่นกัน

โดยนำไฟล์ไปวางไว้ที่ /site/wwwroot

2013-09-30_160404

ทำการเข้าหน้าแรกของตัวเว็บที่ติดตั้งไฟล์ WordPress จากข้อที่แล้ว

2013-09-30_160450

นำข้อมูล Endpoint Information (MySQL hostname) และ Access Credentials (username และ password) ของฐานข้อมูล MySQL จาก cleardb มากรอกในหน้า database connection details นี้

2013-09-30_160551

สั่ง Run the install เพื่อติดตั้งฐานข้อมูลลง cleardb

2013-09-30_160650

เมื่อติดตั้งฐานข้อมูลเรียบร้อยแล้ว ก็กำหนดข้อมูลต่างๆ ของเว็บที่ทำจาก WordPress รวมไปถึง Username และ Password สำหรับเข้าไปจัดการ WordPress เสียก่อน

2013-09-30_160736

เมื่อกำหนดค่าเรียบร้อยก็ให้เข้าระบบ Dashboard ลอง WordPress ได้ทันที

2013-09-30_160827

2013-09-30_160920

 

การปรับแต่ง PHP บน Windows Azure Web Sites

1. การเปิดสร้าง rewrite rules เพื่อใช้ Custom URL ของ WordPress

เข้าไปที่ Dashboard ของ WordPress แล้วเลือกเมนู Settings และไปเมนูชื่อ Permalink

เสร็จแล้วตั้งค่า Permalink ได้ตามที่ต้องการ เสร็จแล้วกด Save

2013-09-30_174545

เมื่อ FTP เข้าไป จะเห็นว่าตัว WordPress จะสร้าง web.config ขึ้นมาให้ โดยภายในจะมี rewrite rules ที่เราตั้งไว้

2013-09-30_174800

โดยภายหลังจากสร้างไฟล์แล้ว ถ้าเราต้องการปรับแต่ง rewrite rules เพื่อใช้ Custom URL ก็สามารถทำผ่านไฟล์ web.config ได้ทันที

 

การเพิ่ม PHP Extension ใน Windows Azure Web Sites

ใน Windows Azure Web Sites นั้นเป็นระบบปฎิบัติการ Windows Server 2012 และระบบให้บริการเว็บ Microsoft Internet Information Services 8.0 (IIS 8.0) ซึ่งทำงานร่วมกับ PHP ที่ Compile ผ่าน MSVC9 x86 และทำงานผ่าน FastCGI API อีกทั้งยังทำงานแบบ Non Thread Safety ไว้ด้วย

การเข้าไปหา extension ใน https://downloads.php.net/pierre/ นั้นจึงต้องใช้ extension ที่เป็น nts ที่ย่อมาจาก Non Thread Safety และเป็นการ Compile แบบ VC9 x86 เช่นกัน

จากตัวอย่าง ทางผู้เขียนยกตัวอย่างการติดตั้ง extension ที่ชื่อว่า Memcache ลงบน PHP 5.3.19 บน Windows Azure Web Sites โดยเลือกชื่อว่า php_memcache-2.2.6-5.3-nts-vc9-x86.zip

2013-10-01_000520

ทำการแตกไฟล์ php_memcache-2.2.6-5.3-nts-vc9-x86.zip ออกมา จะได้ไฟล์ php_memcache.dll เสร็จแล้วนำไฟล์ไปวางไว้ที่ /site/wwwroot/bin

2013-09-30_181824

เข้าไปที่ Dashboard แล้วไปที่ CONFIGURE

2013-10-01_001903

เลื่อนลงมาที่หัวข้อ app settings แล้วใส่ค่าดังต่อไปนี้

KEY ใส่ค่าเป็น PHP_EXTENSIONS

VALUE ใส่ค่าเป็น bin\php_memcache.dll

ถ้าหากมีการกำหนดค่าของ extension มากกว่า 1 ตัวให้ใช้ comma (,) ขั้นไปเรื่อยๆ เช่น

bin\php_memcache.dll,bin\php_mongo.dll

โดยไฟล์ extension.dll ต้องอยู่ใน directory “/site/wwwroot/bin” เพื่อความสะดวกในการจัดการ

2013-09-30_181747

เมื่อตั้งค่าเรียบร้อยแล้วให้กด Restart

2013-09-30_182337

รอจนกว่าสถานะ Restart จะสำเร็จ

2013-09-30_182321

เมื่อแสดงผล phpinfo ใหม่อีกครั้ง extension ที่ใส่ลงไปจะมาให้เราเห็นใน phpinfo

2013-09-30_181846

ลองทำสอบใช้งานได้ตามโค้ด้านล่างก็จะสามารถใช้งานได้

2013-10-01_002648

 

การปรับแต่งค่า PHP.ini ใน Windows Azure Web Sites แบบ global setting

ในบางครั้ง ค่าเริ่มต้นของ phpconfig ที่ Windows Azure Web Sites ให้มา อาจจะไม่เพียงพอ หรือไม่เหมาะสม เช่นการแสดงผลความผิดพลาดที่ปิดไว้ หรือขนาดไฟล์ที่ให้รองรับการอัพโหลดเข้ามาที่ Windows Azure Web Sites เพียง 20MB ที่น้อยเกินไป เป็นต้น เราสามารถตั้งค่าพวกนี้ใหม่ได้ด้วยการใช้ไฟล์ชื่อ .user.ini โดยอัพโหลดเข้าไปไว้ใน /site/wwwroot เพื่อให้ Windows Azure Web Sites ใช้ค่าในไฟล์ดังกล่าวแทนค่าเริ่มต้นของระบบ

image

จากตัวอย่างได้ทดลองเปิดการแจ้งเตือนความผิดพลาด และเพิ่มขนาดไฟล์ที่รองรับการอัพโหลดเป็น 100MB ด้วยการตั้งค่าด้านล่าง

; User Settings
display_errors=On
upload_max_filesize=100M

เมื่อตั้งค่าเรียบร้อยแล้วก็ Restart ตัว Windows Azure Web Sites เพื่อให้ระบบอ่านค่าใหม่อีกครั้ง

2013-09-30_182836

2013-09-30_182911

 

ลักษณะการขยายระบบบน Windows Azure Web Sites

การเข้าไปปรับแต่งเรื่องการขยายระบบบน Windows Azure Web Sites นั้นสามารถทำได้ที่ หน้า Portal ของ Windows Azure โดยเข้าไปที่ Dashboard ของ Web Sites นั้นๆ แล้ว ไปที่เมนู SCALE เพื่อเลือกตัวเลือกรูปแบบสำหรับการขยายระบบ ซึ่งใน Windows Azure Web Sites นั้นจะมีรูปแบบสำหรับการขยายระบบอยู่ 3 รูปแบบคือ Free, Shared และ Standard

1. Free – เป็นการนำเว็บของเราไปไว้บน Virtual Machine บนระบบประมวลผลแบบกลุ่มเมฆ และให้เราใช้งาน CPU เพียง 1 Core โดยเป็นการให้ใช้งานในรูปแบบแชร์ทรัพยากรในการประมวผล ซึ่งจะให้ใช้งานฟรีโดยให้ระยะเวลาในการประมวลผลเพียง 1 ชั่วโมงต่อวันเท่านั้น และไม่สามารถขยายการใช้งานออกไป ด้วยการเพิ่มอินสแตนซ์ไม่ได้

2013-09-30_171614

2. Shared – เป็นการนำเว็บของเราไปไว้บน Virtual Machine บนระบบประมวลผลแบบกลุ่มเมฆ และให้เราใช้งาน CPU เพียง 1 Core โดยเป็นการให้ใช้งานในรูปแบบแชร์ทรัพยากรในการประมวผล ซึ่งจะให้ใช้งานโดยให้ระยะเวลาในการประมวลผลเพียง 4 ชั่วโมงต่อวันเท่านั้น (240 นาที) แต่สามารถขยายการใช้งานออกไปด้วยการเพิ่มอินสแตนซ์ได้มากทีสุดถึง 6 อินสแตนซ์ หรือทำให้ทำงานประมวลผต่อเนื่องได้ 24 ชั่วโมงเลยทีเดียว (4 ชั่วโมง x 6 อินสแตนซ์)

การเลื่อนปรับค่าทำได้ที่หน้า SCALE ด้วยการเลือก WEB SITE MODE ไปที่ SHARED แล้วไปเลื่อนปรับ INSTANCE COUNT ที่ด้านล่างตามจำนวนที่ต้องการ

2013-09-30_171647

3. Standard – เป็นการนำเว็บของเราไปไว้บน Virtual Machine บนระบบประมวลผลแบบกลุ่มเมฆ โดยเป็นการจอง Virtual Machine เป็นอินสแตนซ์ตามจำนวนและความสามารถที่ต้องการไว้เพียงระบบเดียวโดยคิดระยะเวลาการใช้งานเป็นชั่วโมงหรือนาที โดยขึ้นอยู่กับคุณสมบัติและความสามารถที่ได้เลือกขอใช้บริการ

สำหรับตัวเลือก Standard นี้จะมีตัวเลือกคุณสมบัติของ Virtual Machine ดังนี้

COMPUTE INSTANCE NAME

VIRTUAL CORES

RAM

Small

1

1.75 GB

Medium

2

3.5 GB

Large

4

7 GB

การเลือกปรับค่าทำได้ที่หน้า SCALE ด้วยการเลือก WEB SITE MODE ไปที่ STANDARD แล้วไปเลื่อนปรับ INSTANCE SIZE ตามคุณสมบัติที่ต้องการ

image

เมื่อเราเลือก Web Sites ตัวใดตัวหนึ่งเป็น Standard แล้ว เราสามารถเลือกให้ Web Sites อื่นๆ ที่เรามีอยู่ มาใช้งานอินสแตนซ์นี้ร่วมได้ด้วย

2013-10-01_011214

เมื่อเราเลือกแล้วว่าจะให้ Web Sites ตัวไหนบ้างใช้งาน Standard ที่เรากำหนด ก็มาถึงขั้นตอนการกำหนดการขยายระบบตามโหลดของหน่วยประมลผล หรือช่วงเวลาที่เรากำหนดได้อัตโนมัติ หรือการทำ Autoscale

 

การกำหนดขยายระบบแบบแปร่ตามการโหลดของหน่วยประมวล

จากภาพตัวอย่างจะเพิ่มอินสแตนซ์ที่มีคุณสมบัติแบบ Small (1 core, 1.75GB Memory) ระหว่าง 1 – 4 อินสแตนซ์ขึ้นมาตามโหลดของตัว Virtual Machine ที่มีอยู่ โดยใช้การวัดจากการโหลดของหน่วยประมวลผลที่ Virtual Machine โดยตั้งค่าให้อยู่ระหว่าง 60 – 80% ความหมายของตัวต่ำสุด-สูงสุดคือ

1. ถ้าโหลดต่ำกว่า 60% ก็จะทำการลดอินสแตนซ์ลงจนถึงค่า INSTANCE COUNT ที่ตั้งไว้

2. ถ้าโหลดสูงถึง 80% จะสร้างอินสแตนซ์เพิ่มขึ้นมาเรื่อยๆ แต่ไม่เกินค่า INSTANCE COUNT ที่ตั้งไว้ จนกว่าโหลดจะลงมาในระดับต่ำกว่า 80%

image

 

การกำหนดขยายระบบแบบแปร่ตามช่วงเวลาที่ตั้งไว้

2013-09-30_171826

สิ่งแรกที่ต้องทำก่อนคือตั้งค่าเวลาที่จะใช้ในการขยายระบบ เพื่อกำหนดช่วงเวลา โดยไปที่ “set up schedule times

2013-09-30_171906

การตั้งค่า Set up schedule times นั้นมีตัวเลือก

1. Different scale settings for day and night – ให้สามารถแยกระหว่างเวลาทำงการ (day) กับเวลาเลิกทำการ (night)

2. Differnet scale settings for week days and weekends – ให้แยกเวลาระหว่างวันทำการ (weekdays; วันจันทร์-ศุกร์) กับวันหยุด (weekends; วันเสาร์-อาทิตย์)

3. Time ตั้งเวลาว่าเวลาทำการจะเริ่มต้นเมื่อไหร่

4. Time zone กำหนด Time zone ที่ใช้อ้างอิง

2013-09-30_172213

จากตัวอย่างเมื่อผมเลือกทั้งหมด โดยกำหนดว่าเวลาทำการคือ 8:00 ถึง 20:00 เป็นเวลาทำการ และเลือกตั้งให้ขยายระบบแยกกันระหว่างเวลาทำการ เวลาเลิกการ วันทำการและวันหยุด โดยเมื่อเราตั้งเสร็จแล้ว ที่ EDIT SCALE SETTINGS FOR SCHEDULE จะมีตัวเลือกเพิ่มมา 3 ตัวเลือก คือ Week Day, Week Night และ Weekend

Week Day (วันทำการจันทร์-ศุกร์ เวลา 8:00 – 20:00) จะเพิ่มอินสแตนซ์ที่มีคุณสมบัติแบบ Small (1 core, 1.75GB Memory) จำนวน 4 อินสแตนซ์ขึ้นมาคงที่ตลอดระยะเวลาดังกล่าว

2013-09-30_172445

Week Night(วันทำการจันทร์-ศุกร์ เวลา 20:01 – 7:59) จะลดอินสแตนซ์ที่มีคุณสมบัติแบบ Small (1 core, 1.75GB Memory) ลงเหลือจำนวน 1 อินสแตนซ์คงที่ตลอดระยะเวลาดังกล่าว

2013-09-30_172508

Weekend (วันทำการเสาร์-อาทิตย์ เวลา 00:00 – 23:59) จะปรับอินสแตนซ์ที่มีคุณสมบัติแบบ Small (1 core, 1.75GB Memory) กลับมาที่จำนวน 2 อินสแตนซ์คงที่ตลอดระยะเวลาดังกล่าว

2013-09-30_172549

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

 

การตั้งค่าขยายระบบแบบแปร่ผันตามโหลดของหน่วยประมวลและแปร่ตามช่วงเวลา

ทำการตั้งค่าเวลาที่จะใช้ในการขยายระบบ เพื่อกำหนดช่วงเวลา

1. ไปที่ “set up schedule times” ตามข้อที่ปรับแต่งเรื่องช่วงเวลาในการขยายระบบเสียก่อน

2013-09-30_172213

2. แล้วเลือก Week Day, Week Night และ Weekend ตามช่วงเวลาที่ต้องการปรับขยายระบบ

3. เลือก SCALE BY METRIC โดยเลือกที่ CPU จะมีตัวเลือก TARGET CPU ขึ้นมาเพิ่มเติมจาก INSTANCE COUNT ที่มีอยู่ก่อนแล้ว

Week Day (วันทำการจันทร์-ศุกร์ เวลา 8:00 – 20:00)

ระบบเพิ่มอินสแตนซ์ที่มีคุณสมบัติแบบ Small (1 core, 1.75GB Memory) จำนวน 2 – 6 อินสแตนซ์ขึ้นและลง โดยแปร่ตามการโหลดของหน่วยประมลผลตั้งแต่ 70 – 90 % ของระบบ

2013-09-30_172700

Week Night(วันทำการจันทร์-ศุกร์ เวลา 20:01 – 7:59)

ระบบเพิ่มอินสแตนซ์ที่มีคุณสมบัติแบบ Small (1 core, 1.75GB Memory) จำนวน 1 – 2 อินสแตนซ์ขึ้นและลง โดยแปร่ตามการโหลดของหน่วยประมลผลตั้งแต่ 70 – 90 % ของระบบ

2013-09-30_172833

Weekend (วันทำการเสาร์-อาทิตย์ เวลา 00:00 – 23:59)

ระบบเพิ่มอินสแตนซ์ที่มีคุณสมบัติแบบ Small (1 core, 1.75GB Memory) จำนวน 1 – 4 อินสแตนซ์ขึ้นและลง โดยแปร่ตามการโหลดของหน่วยประมลผลตั้งแต่ 70 – 90 % ของระบบ

2013-09-30_173237

จากทั้งหมดที่ได้กล่าวมาในชุดบทความ Windows Azure นี้ มุ่งเน้นเรื่องราวการทำความเข้าใจระบบประมวลผลแบบกลุ่มเมฆ รูปแบบบริการต่างๆ ของ Windows Azure การคิดราคา และยกตัวอย่างการนำเว็บไซต์ขึ้นสู่ระบบ Windows Azure โดยมุ่งเป็นตัวอย่างในการขยายระบบอย่างง่ายเพื่อความเข้าใจในขั้นตอนการสร้าง ปรับแต่ง และนำระบบขึ้นบนบริการย่อยที่ชื่อ Windows Azure Web Sites ทำให้เห็นการติดตั้งเว็บไซต์ที่มีตัวช่วยให้สามารถรองรับโหลดขนาดใหญ่ อีกทั้งยังมีความฉลาดในการขยายตัวเองได้ตามรูปแบบที่ได้ตั้งค่าไว้ด้วย