บริการ 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 ไปในตัว

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 ทำให้เห็นการติดตั้งเว็บไซต์ที่มีตัวช่วยให้สามารถรองรับโหลดขนาดใหญ่ อีกทั้งยังมีความฉลาดในการขยายตัวเองได้ตามรูปแบบที่ได้ตั้งค่าไว้ด้วย

Windows Azure ตอนที่ 3 การติดตั้ง Drupal บน Windows Azure Web Sites

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

โดยสำหรับ Drupal นั้นสามารถติดตั้งและใช้งาน Windows Azure Web Sites ได้ทันทีโดยไม่ต้องปรับแต่งตัวโค้ดพื้นฐานใดๆ ซึ่งใน Windows Azure Web Sites นั้นได้รองรับ PHP ทั้ง versions ที่ 5.3 และ 5.4 ผ่าน PHP/FastCGI บน Internet Information Services (IIS) ใน Windows Server

สำหรับในการติดตั้งขึ้นบน Windows Azure Web Sites นั้น สามารถติดตั้งและนำระบบขึ้นได้ผ่านทาง FTP, FTPS, WebMatrix และ Git โดยจะทำการบันทึกตัวเว็บไซต์ของเราไว้ใน File System Storage ของตัว Windows Server ที่เรากำลังใช้งานอินสแตนซ์ตัวนั้นอยู่ โดยจำกัดพื้นที่ 1GB สำหรับแบบฟรีหรือแบบแชร์การใช้งาน (Free/Shared instance) ส่วนสำหรับอินสแตนซ์แบบจองโหลดการใช้งาน (Reserved instance) จะได้พื้นที่ถึง 10GB โดยถ้าต้องการใช้งานมากกว่านี้ทาง Microsoft แนะนำให้ใช้งานผ่าน Windows Azure Storage แบบ “บลอบ” (Blob, Binary Large Object) ซึ่งจะรองรับพื้นที่ให้บริการถึง 100TB ต่อ 1 บัญชีพื้นที่ข้อมูล

สำหรับการใช้งานฐานข้อมูลนั้นมีตัวเลือกในการใช้งานฐานข้อมูลอยู่ 2 แบบคือ ระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) และระบบฐานข้อมูลที่ไม่ใช่ภาษาสอบถามเชิงโครงสร้าง (NoSQL) โดยใน Drupal จะใช้ระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ที่ชื่อ MySQL ซึ่ง Microsoft มีพันธมิตรที่ชื่อ ClearDB เพื่อให้บริการรองรับกับ MySQL ในชื่อของ ClearDB MySQL database cluster โดยระบบการจัดการฐานข้อมูลเชิงสัมพันธ์นี้จะทำงานบนระบบประมวลผลกลุ่มเมฆทั้งหมด

เรามาดูกันว่า การติดตั้ง Drupal เพื่อใช้งานบน Windows Azure Web Sites ทำกันอย่างไร

1. ทำการ Login เข้า Windows Azure Portal เสียก่อน โดยจะพบกับหน้า all items

1

2. เลือกที่ตัวเลือก WEB SITES ด้านซ้ายเพื่อดูรายการ web sites ที่มีอยู่ในระบบ Windows Azure ของเรา สำหรับการสร้างเว็บไซต์เพิ่มขึ้นใน Windows Azure ให้เลือกที่ NEW มุมซ้ายล่างของ Windows Azure Portal

2

3. จะมีตัวเลือกในการสร้างขึ้นมา ให้เลือก COMPUTE ตามด้วย WEB SITE และแนะนำให้เลือก CUSTOM CREATE

3

4. จะเปิดหน้าต่าง Create Web Site ขึ้นมา ในแต่ละช่องมีความหมายดังต่อไปนี้

URL ให้เลือก sub domain ที่จะใช้งานภายใต้ชื่อ .azurewebsites.net

SUBSCRIPTION เลือกบัญชีสำหรับใช้ในการคิดค่าใช้จ่ายของระบบ

REGION ระบุว่าจะให้ตัวไฟล์ที่เราพัฒานั้นไปอยู่ในพื้นที่ใดของศูณย์ข้อมูลของ Azure สำหรับประเทศไทย ใกล้ที่สุดคือ East Asia ซึ่งอยู่ที่ฮองกง

DATABASE เป็นตัวเลือกที่ระบุว่าจะมีการใช้ฐานข้อมูลหรือไม่ โดย Drupal ที่เราติดตั้งลงไปนั้นใช้ MySQL เราจึงเลือก Create a new MySQL database

DB CONNECTION STRING NAME ใช้ค่าเริ่มต้นคือ DefaultConnection

Publish form source control เป็นสำหรับใช้ในการดึงชุดคำสั่งโปรแกรมมาจาก source code control อย่าง SVN หรือ GIT มาติดตั้งและใช้ในการส่งชุดคำสั่งขึ้นไปในระบบ Windows Azure Web Site แทนการใช้ FTP ได้อีกทางหนึ่งด้วย

เมื่อกรอกข้อมูลทั้งหมดครบแล้วเลือกลูกศรไปด้านขวา เพื่อทำการตั้งค่าอื่นๆ ต่อไป

4

5. มาถึงขั้นตอนการสร้างฐานข้อมูล MySQL กัน ขอย้อนกลับไปนิดนึงว่า Microsoft นั้นมีพันธมิตรที่ชื่อ ClearDB เพื่อให้บริการรองรับกับ MySQL ในชื่อของ ClearDB MySQL database cluster เพราะฉะนั้นการตั้งค่าตรงนี้ในตัว Windows Azure Portal จะไปทำการสร้างให้ถึง ClearDB โดยเราไม่ต้องเข้าไปสร้างเองแต่อย่างใด

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

เมื่อตั้งค่าทั้งสองจบให้ติ๊กที่ “I agree …” เพื่อยอมรับข้อตกลงของ ClearDB แล้วคลิ้กที่เครื่องหมายถูก เพื่อทำการสร้างเว็บไซต์หนึ่งเว็บบน Windows Azure Web Sites

5

6. รอสถานะของการสร้างตัว web sites เพียงสักครู่หนึ่ง ก็จะมีรายชื่อของตัวเว็บไซต์ที่เราสร้างไว้ตั้งแต่ด้านบนเพิ่มขึ้นมาใน Windows Azure Portal ของเรา

เมื่อทุกอย่างสำเร็จให้เลือกที่ชื่อเว็บไซต์ที่เราได้สร้างขึ้นมาเพื่อเข้าไป dashboard ของเว็บไซต์ของเราใน Windows Azure Web Sites

6

7. ในหน้า dashboard จะเป็นส่วนหลักและสรุปว่ามีการทำงานอะไรบ้างเช่น CPU TIME, DATA IN/OUT, ERRORS และ REQUEST เพื่อใช้ในการปรับปรุงหรือใช้ตัดสินใจขยายระบบเมื่อมีการใช้งานหนักๆ ได้อย่างทันที โดยรองรับการรายงานเป็นแบบช่วงเวลาต่างๆ กันไป

7

8. สำหรับในส่วนอื่นๆ ในหน้า dashboard ก็มีส่วน

endpoint สำหรับเปิด-ปิด-ตั้งค่า การตรวจสอบการทำงานของตัวเว็บไซต์

autoscale status สำหรับใช้ในการขยายระบบได้อัตโนมัติเมื่อมีการใช้งานหนักๆ ได้ทันทีโดยไม่ต้องให้นักพัฒนาหรือผู้ดูแลมาปรับขยายด้วยตัวเอง

usage overview เป็นส่วนแสดงการใช้งานระบบต่างๆ ว่ามีโควต้าและการใช้งานไปเท่าไหร่แล้ว

linked resources เป็นส่วนที่แสดงการเชื่อมต่อกับระบบภายนอก ซึ่งในตัวอย่างจะเป็นว่าเราได้เชื่อมต่อกับ ClearDB ที่เป็น MySQL database ซึ่งเมื่อมีการแก้ไข หรือลบตัวเว็บไซต์นี้ออกจาก Windows Azure Web Sites ตัว linked resources เหล่านี้จะถูกแก้ไข-ลบเช่นกัน

quick glance เป็นส่วนของการให้ข้อมูลสถานะ ค่าสำหรับเข้าใช้งาน การตั้งค่าหรือโหลดตัวช่วยในการส่งไฟล์ต่างๆ เข้าไปในตัวระบบ

8

9. โดยเริ่มต้นแล้วนั้น Windows Azure WEeb Sites จะตั้งค่า username และ password สำหรับการใช้ FTP/FTPS ไว้ให้เราแล้ว แต่แน่นอนว่าถ้าใช้ publish profile ของ Windows Azure ซึ่งใน Microsoft Visual Studio นั้นรองรับก็จะสะดวกดี แต่เมื่อเราใช้งานผ่านเครื่องมืออื่นๆ ที่ไม่ได้รองรับ เราจึงต้องมากำหนดค่าต่างๆ เหล่านี้เอง โดยไปที่ Set up deployment credentials ในหัวข้อ quick glance

9

10. ตัว Windows Azure Portal จะแสดงหน้าต่างให้เรากำหนค่า username และ password สำหรับการ FTP/FTPS เข้าไปใช้งานแทนที่ค่าเริ่มต้นของระบบที่ได้กำหนดไว้ให้เราตั้งแต่ตอนสร้างบัญชีนี้ขึ้นมา

10

11

11. เมื่อเรากำหนดส่วนของการสร้างไฟล์ได้แล้ว ก็มาถึงการเข้าถึงส่วนของฐานข้อมูล MySQL กันบ้าง โดยให้ไปที่ โดยให้ไปที่หัวข้อ linked resources แล้วคลิ้กลิ้งค์เพื่อเลือกชื่อฐานข้อมูลที่เราได้กำหนดไว้ตอนเราได้เริ่มต้นสร้างขึ้นมาในข้อแรกๆ

12

12. ตัว Windows Azure จะเปิดหน้าต่างของ browser ใหม่ขึ้นมา แล้วพาเราไปหน้าเว็บ ClearDB เพื่อทำให้เราจัดการฐานข้อมูลนี้จากหน้าเว็บนั้นแทนใน Windows Azure Portal ของ Microsoft โดยในหน้าที่เราเปิดมาครั้งแรกจะเจอหน้า Performance ทันที

13

13. แน่นอนว่าเราต้องการข้อมูลส่วนของ hostname, username และ password ของ MySQL เพื่อนำไปติดตั้ง Drupal ซึ่งข้อมูลทั้งหมดจะอยู่ที่ Endpoint Information ที่อยู่ถัดไปอีก 2 เมนูจาก Performance

เข้ามาในหน้า Endpoint Information เราจะเห็น Hostname อยู่ในตาราง Cluster Gateway Information ที่อยู่ด้านบน พร้อมทั้งรายละเอียด Max connections และ Max Queries/Hour ซึ่งเป็นโควต้าสำหรับ Free Account ซึ่งมาพร้อมกับพื้นที่ให้ 20MB สำหรับ database จำนวน 1 ตัว

สำหรับ username และ password จะอยู่ที่ตาราง Access Credentials ที่อยู่ด้านซ้ายล่างของหน้า Endpoint Information

14

14. หลังจากข้อที่ 10. เราได้แก้ไข username และ password สำหรับการเข้าไป FTP/FTPS แล้ว เราก็มาดูข้อมูลสำหรับส่วนของ hostname ที่ใช้ในการเชื่อมต่อผ่าน FTP/FTPS โดยอยู่ในหัวข้อ Quick glance ข้อย่อย FTP HOST NAME และ FTPS HOST NAME เพื่อนำไปเชื่อมต่อสำหรับการนำไฟล์ต่างๆ ขึ้นไปบน Windows Azure Web Sites

15

15. เมื่อเราได้ข้อมูลที่จำเป็นทั้งหมดครบแล้ว ก็ถึงเวลาสำหรับการติดตั้งตัว Drupal โดยก่อนอื่น เข้า https://drupal.org/downlaod เพื่อเข้าไปดาวน์โหลดตัว drupal ตัวล่าสุดมารอไว้ในเครื่องของเราเสียก่อน

31

16. ทำการสร้างตัวเชื่อมต่อ FTP จาก Network Location บน Windows (อ้างอิง Windows 8) เสียก่อน

โดยไปที่ Computer (My Computer) แล้วเลือก Add a network location

หมายเหตุ:นักพัฒนาอาจจะใช้ FTP Client ตัวอื่นๆ ก็ทำได้เช่นกัน โดยอาศัยข้อมูลข้างต้นที่ได้เกริ่นไปก่อนหน้านี้ในการสร้าง FTP profile ของแต่ละ client

16

17. จะได้หน้าต่างต้นรับว่าเรากำลังจะสร้าง Network Location ใหม่บน Windows ให้กด Next

18. ในหน้านี้เป็นหน้าที่เลือกประเภทว่าเราจะสร้าง Network Location แบบใด ซึ่งตอนนี้เรามีเพียงแบบเดียวคือ Choose a custom network location ซึ่งนักพัฒนาบางคนอาจจะมีมากกว่านี้ แต่ให้เลือกตัวเลือกนี้ แล้วกด Next

17 18

19. ในหน้าต่อมานี้จะให้เราใส่ internet หรือ network address ให้เราเอาข้อมูล FTP HOST NAME ใน dashboard ของ ของ Windows Azure Web Sites มาใส่ในช่อง Internet or network address แล้วกด Next

20. หน้ากำหนด username ให้กรอก Username ที่อยู่ใน DEPLOYMENT / FTP USER ในหัวข้อ Quick glance ลงไปในช่อง Username แล้วกด Next

19 20

21. มาในหน้าของการตั้งชื่อ network location ก็ตั้งชื่อตามที่ต้องการแล้วกด Next

22. เป็นหน้าสรุปข้อมูลการเชื่อมต่อทั้งหมด แนะนำให้เลือก Open the network location when I click Finish. เมื่อเสร็จสิ้นทั้งหมดแล้วกด Finish

21 22

23. เมื่อกด Finish แล้ว File Explorer จะเปิดหน้าต่างใหม่เพื่อทำการเชื่อมต่อ ซึ่งจะเห็นหน้าต่าง Log on as ขึ้นมาเพื่อถาม username และ password เราจึงกรอก password ที่ได้กำหนดไว้ในข้อที่ 10. ลงไป และถ้าไม่ต้องการให้มีการถาม password ซ้ำอีกให้เลือก Save password แล้วจึงกด Log On

24. ถ้าทั้ง hostname, username และ password ตรงตามที่ได้ตั้งไว้ เราจะเข้ามาถึงภายใน Windows Azure Web Sites และพร้อมที่จะนำไฟล์เว็บไซต์ที่เราพัฒนานั้นๆ ขึ้นไปแล้ว

image 23

25. สำหรับ folder ที่ใช้ในการจัดเก็บไฟล์นั้น จะอยู่ที่ site\wwwroot ภายใน Windows Azure Web Sites เมื่อเราเข้าไป จะเจอไฟล์ hostingstart.html อยู่หนึ่งไฟล์

24

26. ทดสอบสร้างไฟล์ PHP มาหนึ่งไฟล์ชื่อ phpinfo.php เพื่อสร้างสอบว่าใช้งาน PHP ได้และมี PHP เป็น version อะไรจากใน site\wwwroot

27. เมื่อสร้างไฟล์เรียบร้อย เราก็เข้าไปที่ https://xxxx.azurewebsites.net/phpinfo.php เพื่อตรวจสอบ PHP version และการเข้าถึงตัวเว็บไซต์ที่เราสร้างนั้นถูกต้องหรือไม่ (ตัวอย่างคือ https://testdrupalweb.azurewebsites.net/phpinfo.php)

25 26

28. เมื่อทดสอบเสร็จแล้ว แน่นอนว่าเราต้องการใช้ PHP version 5.4 สามารถที่จะเข้าไปเปลี่ยนแปลง version ได้ที่ CONFIGURE ซึ่งอยู่ถัดจากเมนู DASHBOARD ของ Windows Azure Web Sites ไปอีกสองเมนู จะเจอ PHP VERSION เราสามารถปรับไปใช้ PHP version 5.4 ได้จากตัวเลือกนี้

27

29. เมื่อเลือก PHP VERSION เป็น 5.4 แล้ว ให้กด SAVE และรอจนกว่าสถานะการเปลี่ยนแปลงจะจบการทำงานที่ด้านล่าง

28

29

30. เมื่อสถานะการเปลี่ยนแปลงเสร็จสิ้น ให้ลอง refresh หน้า phpinfo.php ที่เราสร้างขึ้นอีกครั้ง จะเห็นการเปลี่ยนแปลงเป็น PHP version 5.4 แทนที่แล้ว

30

ข้อควรระวัง: ซึ่งแนะนำว่าเมื่อตรวจสอบเรียบร้อยแล้วให้ลบออกไป เนื่องจากใน Environment Variable ที่ชื่อ MYSQLCONNSTR_DefaultConnection มีข้อมูลการเชื่อมต่อฐานข้อมูลที่เป็น linked resources ที่เราได้สร้างไว้อยู่ จึงไม่ปลอดภัยที่จะมีไฟล์นี้คงไว้ในระบบของเรา

image

31. เมื่อตอนนี้เราปรับแต่งตัว version ของ PHP เรียบร้อยแล้ว ก็ได้เวลาในการนำไฟล์ Drupal ขึ้นไป โดยใช้ Network Location ของ File Explorer

วิธีก็ไม่ยากอะไร เราคลายไฟล์บีบอัดของ Drupal ออกมา แล้วทำการลากไปวางที่ site\wwwroot ที่ Network Location ที่เราได้สร้าง แล้วรอจนกว่าจะ copy ไฟล์ (ใน FTP Client ตัวอื่นๆ จะเรียกว่า upload) เข้าไปที่ Windows Azure Web Sites ที่เรามีบัญชีอยู่

32

32. เมื่อ copy ไฟล์เข้ามาที่ Windows Azure Web Sites ที่เรามีบัญชีอยู่เรียบร้อย ให้เปิดหน้าเว็บที่เราได้มีบัญชีอยู่ขึ้นมา ตัว Drupal จะพาเราเข้าหน้า install.php ให้ทันที ก็ทำการติดตั้งตามขั้นตอนของ Drupal ตามปรกติดังต่อไปนี้

ในขั้นตอนการเลือก profile ให้เลือก Standard แล้วกด Save and continue

33

33. เลือก language ให้เลือก English (built-in) แล้วกด Save and continue

34

34. ในส่วนของฐานข้อมูลนั้น

Database type ให้เลือก MySQL, MariaDB, or equivalent

Database name ให้กรอกข้อมูลที่ได้กรอกไว้ในข้อที่ 5. ลงไป

Database username ให้กรอกข้อมูลที่ได้ระบุไว้ในข้อที่ 13. ลงไป

Database password ให้กรอกข้อมูลที่ได้ระบุไว้ในข้อที่ 13. ลงไป

ให้ขยาย ADVANCED OPTIONS ออกมา แล้วแก้ไข Database host ให้กรอกข้อมูลที่ได้ระบุไว้ในข้อที่ 13. ลงไป

แล้วกด Save and continue

35

35. ถึงขั้นตอนการ install ตัว Drupal ในขั้นตอนนี้รอการติดตั้งสักพัก

36

36. เมื่อการติดตั้งจบ ให้ทำการกรอกข้อมูลของเว็บต่างๆ ลงไปให้ครบ

37

37. ในส่วนสำคัญคือ time zone ให้เลือก time zone ที่เหมาะสมกับพื้นที่ในการใช้งานให้ถูกต้อง แล้วกด Save and continue

38

38. การติดตั้ง Drupal เสร็จสมบูรณ์แล้วในขั้นตอน ให้คลิ้กลิ้งค์เข้าหน้าเว็บไซต์ผ่าน Visit your new site

39

39. จะเจอหน้าตาของ Drupal ที่คุ้นเคยและเราเป็น administrator ของระบบทันที

40

40. ตรวจสอบความเรียบร้อยอีกครั้ง แนะนำให้ไปที่ Reports และเลือกที่ Status report เพื่อตรวจสอบข้อมูลอื่นๆ ว่ามีการติดตั้งหรือค่าสิทธิ์การเข้าถึงที่ผิดพลาดหรือไม่อีกครั้ง

41

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

โดยในตอนหน้าจะมาพูดถึงการติดตั้ง WordPress บน Windows Azure Web Sites และการขยายระบบขึ้น-ลง (Scale up-down) เพื่อรองรับการโหลดของระบบที่เปลี่ยนแปลงตลอดเวลา

Windows Azure ตอนที่ 2 การคิดค่าบริการ

ใน Windows Azure นั้น การคิดเงินในการใช้งานโดยทั่วไปนั้นแบ่งออกเป็น 3 ส่วนหลักๆ ที่จำเป็นต้องนำมาคิดค่าบริการเกือบจะในทุกๆ บริการ ได้แก่

  1. Compute (Hours/Minutes)
  2. Storage (GB/TB)
  3. Bandwidth (GB/TB)

Compute

เป็นการคิดค่าใช้ระบบในด้านการประมวลผล (Compute) และมีพื้นที่หน่วยความจำหลัก (Memory) มาให้พร้อมกันเป็นคู่ โดยคิดเป็นหน่วยชั่วโมง แต่ในบางบริการจะเป็นการคิดแบบหน่วยนาที (ข้อมูลล่าสุด ณ วันที่ 17 มิถุนายน 2013) โดยบริการที่การคิดค่าบริการแบบนี้ได้แก่ Web Sites, Virtual Machines, Cloud Services, Biztalk Server, SQL Server และ SQL Reporting แต่มีบริการหนึ่งที่ทำงานด้านการประมวลผลและมีพื้นที่หน่วยความจำหลักเช่นกัน แต่เป็นลักษณะของโหนดประมวลผล (Compute Node) ที่ชื่อบริการว่า HDInsight อีกด้วย

โดยตัวเลือกของการประมวลผลของ CPU ได้ 3 รูปแบบ คือ

  1. Free Compute บน Virtual Cores ของ CPU ตัวหนึ่ง เป็นการให้ใช้งานฟรีในส่วนของ Web Sites เท่านั้น โดยให้ระยะเวลาในการประมวลผลเพียง 1 ชั่วโมงต่อวันเท่านั้น
  2. Shared Compute บน Virtual Cores ของ CPU ตัวหนึ่ง เป็นการให้ใช้งานในรูปแบบแชร์ทรัพยากร Core ใน CPU โดยให้ระยะเวลาในการประมวลผล 4 ชั่วโมงต่อวัน (หรือ 240 นาทีต่อวัน) โดยคิดระยะเวลาการใช้งานเป็นชั่วโมงหรือนาที โดยขึ้นอยู่กับรูปแบบการให้บริการ
  3. Reserved Compute บน Virtual Cores ของ CPU ตัวหนึ่ง เป็นการให้ใช้งานในรูปแบบในการจองและเป็นผู้ใช้งานทรัพยากร Core ของ CPU แต่เพียงผู้เดียวโดยคิดระยะเวลาการใช้งานเป็นชั่วโมงหรือนาที โดยขึ้นอยู่กับรูปแบบการให้บริการ

เมื่อเราเลือกรูปแบบการนำการประมวลผลได้แล้ว จะมีส่วนที่เรียกว่าประเภทของสัญญาอนุญาต (license) ที่เพิ่มเติมเข้ามาด้วยในบางรูปแบบ เช่น

  1. OS แบบ Windows หรือ Linux
  2. BizTalk Server แบบ Standard หรือ Enterprise
  3. SQL Server แบบ Web, Standard หรือEnterprise

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

  1. Virtual Machines ที่เป็น OS แบบ Windows หรือ Linux
  2. Virtual Machines ที่เป็น BizTalk Server แบบ Standard หรือ Enterprise
  3. Virtual Machines ที่เป็น SQL Server แบบ Web, Standard หรือ Enterprise
  4. Cloud Services ที่เขียนระบบเพื่อรองรับงาน Web roles และ Worker roles
COMPUTE INSTANCE NAME VIRTUAL CORES RAM
Standard Instances
Extra Small (A0)

Shared

768 MB

Standard Instances
Small (A1)

1

1.75 GB

Standard Instances
Medium (A2)

2

3.5 GB

Standard Instances
Large (A3)

4

7 GB

Standard Instances
Extra Large (A4)

8

14 GB

Memory Intensive Instances (A6)

4

28 GB

Memory Intensive Instances (A7)

8

56 GB

สำหรับในส่วนของ Web Sites นั้นจะอ้างอิงเพิ่มเติมในส่วนของการใช้งานแบบฟรี

FREE SHARED RESERVED
CPU 60 min
CPU/day
240 min
CPU/day
Dedicated CPU
Custom
domain name
No Yes Yes
Sites 10 100 100
Storage 1 GB 1 GB 10 GB
Storage transactions Free Free Free
Relational database

20 MB, MySQL or SQL Databases

Outbound data transfer 165MB/day Bandwidth
rates
Bandwidth
rates
Inbound data transfer Free Free Free

Dedicated CPU

SIZE CPU CORES RAM
Small 1 1.75 GB
Medium 2 3.5 GB
Large 4 7 GB

สำหรับการคิดราคาใน HDInsight (Microsoft’s Hadoop-based service) นั้นจะคิดราคาตามชนิดของโหนด โดยมีโหนดอยู่ 2 แบบคือ

  1. Head Node โดยเป็น Virtual Machines แบบ Extra Large (A4)
  2. Compute Node โดยเป็น Virtual Machines แบบ Large (A3)

ซึ่งการใช้งาน HDInsight นั้นจะต้องสร้างโหนดทั้งสองแบบนี้มาอย่างละหน่วยประมวลผลเพื่อใช้งานและคิดค่าบริการรวมของการเปิดใช้งานทั้ง 2 แบบลงไป

ในด้านของ Mobile Services นั้นจะมีเพียงแบบฟรีและแบบคิดราคาเป็นชั่วโมงการเปิดใช้งาน โดยส่วนที่สำคัญคือ scheduled jobs เป็นสำคัญ โดยทั้งสองแบบนั้นในบัญชีการใช้งานจะสามารถสร้าง Mobile Services ได้ 10 บริการ สำหรับการส่งข้อมูลออก และการเชื่อมต่อฐานข้อมูลนั้นจะคิดตามการคิดค่าบริการของ Bandwidth และ SQL Database

FREE RESERVED
CPU Shared 1 CPU Core
(max 10 Core/subscription)
Mobile Services supported 10 per subscription 10 per subscription
Scheduled jobs 1 scheduled job
700 executions/month
10 scheduled jobs
Inbound data transfer Unlimited Unlimited
Outbound data transfer 165MB/day Bandwidth
rates
SQL Database (required) SQL Database
rates
SQL Database
rates

ส่วนสุดท้ายในการการคิดราคาแบบประมวลผลคือ SQL Reporting ซึ่งจะคิดราคาเป็นหน่วยชั่วโมง โดยคิดราคาที่ 30 รายงาน (report) ต่อชั่วโมง เช่น ถ้ามีการรันรายงานที่ 40 รายงานจะคิดราคาที่ 2 ชั่วโมง เป็นต้น

ข้อมูลราคาล่าสุด

Storage

เป็นการคิดค่าบริการตามพื้นที่ที่จัดเก็บข้อมูลไว้ระบบประมวลแบบกลุ่มเมฆ โดยจะมี 3 รูปแบบ

  1. Storage ซึ่งเป็นบริการที่รวมการจัดเก็บข้อมูลแบบ Blobs, Tables และ Queues ไว้เป็นรูปแบบบริการเดียว
    โดยการคิดราคาจะมีอยู่ด้วยกัน 3 ย่อยดังนี้
    Geo Redundant เป็นการคิดค่าบริการจัดเก็บไฟล์แบบสำรองต่างพื้นที่ IDC
    Locally Redundant เป็นการคิดค่าบริการจัดเก็บไฟล์แบบสำรองภายในพื้นที่ IDC
    Transactions เป็นการคิดราคาในการอ่านหรือเขียนข้อมูลจาก Blobs, Tables และ Queues
    โดยคิดเงิน 1 ล้านครั้งต่อหน่วยราคา (ราคาวันที่เขียนบทความคือ 1 ล้านครั้งต่อ 0.10 USD)
  2. Backup สำหรับคนที่ต้องการ Backup บน Windows Server Backup ของ Windows Server 2012 สามารถ Backup บน Storage ระบบประมวลแบบกลุ่มเมฆ ซึ่งจะไม่มีการคิดเงินในส่วนของ Bandwidth, Storage, Storage transactions และ Compute เพิ่มเติม แต่อย่างใด
  3. SQL Database โดยจะคิดราคาในรูปแบบขนาดที่จัดเก็บข้อมูลและจำนวนฐานข้อมูลที่ใช้งาน

ข้อมูลราคาล่าสุด

Bandwidth

มีรูปแบบการคิดราคา 2 แบบคือพื้นที่ที่ระบบอยู่ หรือเรียกว่า Regions และเครือข่ายการกระจายเนื้อหา หรือ Content Delivery Network

การรับและส่งข้อมูลเข้าพื้นที่ที่ระบบอยู่นั้น เป็นการคิดราคาของการเรียกข้อมูลออกมาหรือส่งข้อมูลกลับเข้าไปในเขต IDC ที่เราได้ตั้งค่าสำหรับติดต่อเข้ากับระบบประมวลผล (Compute) หรือพื้นที่จัดเก็บข้อมูล (Storage) โดยตรง ซึ่งจะแบ่งการคิดราคาเป็นโซน (zone) ทั้งหมด 2 โซน ได้แก่

  • Zone 1: East US, West US, North Central US, South Central US, North Europe และ Western Europe
  • Zone 2: East Asia และ Southeast Asia

โดย การคิดเงินนั้นในส่วนของ Zone ที่ 1 จะมีราคาถูกกว่า Zone ที่ 2 โดยการคิดราคาจะเริ่มต้นที่ 5GB เป็นต้นไป ถ้าใช้งานไม่ถึง 5GB จะไม่คิดเงินค่าใช้ข้อมูลแต่อย่างใด

สำหรับการคิดราคาของเครือข่ายการ กระจายเนื้อหา นั้นจะคิดราคาในด้านการเรียกใช้ข้อมูลตามการใช้งานจริงตั้งแต่เริ่มต้นส่ง ข้อมูล โดยไม่มีกรอบกำหนดเริ่มต้นที่ 5GB แต่ยังคงคิดราคาแบบ Zone เช่นเดียวกับแบบเขตในการรับ-ส่งข้อมูลเช่นเดียวกัน

โดยการคำนวณราคาใน ด้านของ Bandwidth นั้น จะมีการคิดราคาของ Transactions ในการเรียกใช้งานทั้งเรียกออกมาและส่งข้อมูลกลับเข้าไป โดยคิดเงิน 1 ล้านครั้งต่อหน่วยราคา (ราคาวันที่เขียนบทความคือ 1 ล้านครั้งต่อ 0.10 USD)

ข้อมูลราคาล่าสุด
Data Transfers

  • Regions
  • Content Delivery Network

สำหรับการคิดราคาในรูปแบบอื่นๆ

  • Connection Hours สำหรับใช้บริการ Virtual Network
  • Relay hours สำหรับใช้บริการ Service Bus
  • Messages สำหรับใช้บริการ Service Bus
  • GB Processed สำหรับใช้บริการ Media Services
  • Reserved Units สำหรับใช้บริการ Media Services
  • On-Demand Streaming Reserved Units สำหรับใช้บริการ Media Services

จะเป็นส่วนย่อยๆ ที่มีการคิดราคาโดยใช้พื้นฐานคล้ายๆ กับ Compute, Storage และ Bandwidth เป็นหลักทั้งหมด

ตัวอย่างการใช้บริการแบบ Windows Azure Virtual Machines

  • Compute: Small (A1)
    เป็น 1 Reserved Virtual Cores และ RAM ขนาด 1.75GB ติดตั้ง Linux Virtual Machines (Ubuntu Server 12.04 LTS)
  • Storage: 30GB ต่อเดือน
    เป็น Image สำเร็จรูปของ Linux Virtual Machines ติดตั้งแบบ Geo Redundant (IDC Southeast Asia ใน Singapore และ IDC East Asia ใน Hong Kong)
  • Bandwidth: 45GB ต่อเดือน
    เป็นราคาคาดการณ์การใช้งาน

ราคาที่คิดไว้คือ

  • Compute: ~$45 ต่อเดือน ($0.06 ต่อชั่วโมง)
    โดยคำนวณที่ 744 ชั่วโมง (ต่อเดือน)
  • Storage: $2.85 ต่อเดือน
    โดยคำนวณที่ 744 ชั่วโมง (ต่อเดือน) และ 1TB มีค่าเท่ากับ 1,024 GB
  • Storage Transactions: ~$1-$5 ต่อเดือน
    โดยขึ้นอยู่กับการอ่านเขียนตัวไฟล์ใน Storage มากน้อยแค่ไหน
  • Bandwidth: $4.80 ต่อเดือน
    โดยคำนวณที่ 744 ชั่วโมง (ต่อเดือน) และ 1TB มีค่าเท่ากับ 1,024 GB

รวมแล้วต่อเดือนจะมีค่าใช้บริการที่ $53.65 – $58.65 โดยประมาณ

คำแนะนำ: ขอให้อ้างอิงการคำนวณราคาระบบประมวลผลบนกลุ่มเมฆ Windows Azure ล่าสุดได้จากเว็บ windowsazure.com ทั้งหมดเพื่อความถูกต้องสูงสุด

ในตอนหน้าเราจะมาเริ่มการติดตั้งและใช้งาน Windows Azure Web Sites สำหรับ Drupal และ WordPress กัน