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