ต่อจากตอนที่แล้ว ซึ่งคงพอรู้เรื่องระบบคลาวด์พื้นฐานไปบ้างแล้ว คำถามที่จะต้องถามต่อมาคือ แล้วจะเริ่มต้นอย่างไรได้บ้าง? ในตอนนี้คือเรื่องของการวางแผน (planning) ว่าเว็บไซต์ส่วนตัวของเราที่จะทำบน GCP f1-micro นั้น จะต้องทำอะไรบ้าง
วางแผน… ทำไม?
พอถึงตอนนี้ ทุกคนอาจจะงงว่า อ้าว ทำไมถึงต้องแนะนำให้วางแผนด้วย (วะ) ไหนบอกว่า Always Free
คืออย่างนี้ครับ GCP Always Free แม้จะฟรีถาวรตลอดชาติก็ตาม แต่มันก็มีข้อจำกัดบางอย่างเสมอ โดยเฉพาะที่อันตรายที่สุดคือ ถ้าเกินจากที่กำหนดว่าฟรีถือว่ามีค่าใช้จ่าย ต้องเก็บเงินทันที ไม่มีลิมิตด้วย
ถึงท่อนนี้หลายคนอาจจะบอก อื้ม ก็ส่งบิลมาเก็บสิ เรื่องมันไม่ง่ายขนาดนั้นเพราะการเรียกเก็บนั้นต้องใช้บัตรเครดิตด้วย คือเรียกว่ายังไงก็คงหนีไม่พ้นแน่นอน และพอมาถึงจุดนี้หลายคนก็เลย ‘ถอยทัพหนี’ ไปนั่นเอง
นี่แหละครับ ข้อเสียใหญ่ของมันเลย ถ้าสมมติว่าใช้งานเกินที่มันให้ฟรี ก็เตรียมเสียเงินให้ได้เลย แถมเผลอๆ อาจจะแพงเสียกว่าการไปใช้บริการโฮสติ้งเจ้าอื่นด้วยซ้ำ
การวางแผน จึงเป็นเรื่องของการประเมินและใช้ทรัพยากรให้ดีที่สุด กล่าวอีกแบบคือ วางแผนให้ค่าใช้จ่ายงอกออกมาต่ำที่สุด อย่าลืมนะครับว่านี่เป็นเรื่องของเว็บไซต์ส่วนตัว เพราะถ้าตั้งใจจะทำเว็บไซต์เพื่อตอนสนององค์กรหรือคนทั่วไปแบบตลาดดาษดื่น อันนั้นก็อีกเรื่องหนึ่ง เล่นกันได้ให้เต็มที่ อยากจัดใหญ่จัดเต็มก็เต็มที่ไป
ข้อจำกัด ที่ควรคิดถึง
ตอนที่แล้วอย่างที่ผมเล่าให้ฟัง f1-micro มีข้อจำกัดมากมาย แต่ทำไมเว็บไซต์ถึงทำงานได้เสถียรและมีประสิทธิภาพ? คำตอบก็อยู่ตรงที่การ “วางแผน” ของระบบทั้งหมดที่มี
ข้อจำกัดเรื่องระบบประมวลผล และการส่งข้อมูลผ่านเครือข่ายขาออก (Network Egress) ที่มีสูงสุด 1 GB ต่อเดือน ย่อมต้องทำให้เรา “คิดแล้วคิดอีก” แถมตำแหน่งเครื่องก็ล็อคเอาไว้ที่สหรัฐอเมริกาด้วย ถ้าเข้าไทยก็ช้าอีก แถมต้องเสีย ค่าส่งข้อมูลบานเบอะอีกต่างหาก ไม่นับค่าโดเมนเนมและอื่นๆ จิปาถะอีก
คือถ้าไม่ใจสู้ ผมคิดว่าคงวิ่งไปหาบริการโฮสติ้งแล้ว (อันนี้ไม่ได้โฆษณาให้ใคร แต่ที่ไรท์ติ้งอินไทยใช้ bstudio.click อยู่ ก็แฮปปี้ดีทีเดียว) แต่ถ้าคิดว่าเราจะหาทางออกให้กับข้อจำกัดเหล่านี้ได้ ก็ต้องวางแผนให้สอดคล้องกับข้อจำกัดเหล่านี้
ในทางเทคนิค ข้อจำกัดที่เราต้องเผชิญแน่ๆ คือ ด้วยขนาดเครื่อง VM ที่ทำเป็นเซิร์ฟเวอร์มันเล็กมากๆ ถ้าเกิดสมมติเจอโหลดขนาดใหญ่ หรือคนดูพร้อมกันสัก 40-50 คน (ไม่นับกรณี DDoS) เราก็คงต้องเปิดทั้ง Cache แล้วก็ CDN ฟรีอย่าง CloudFlare ด้วย เพื่อให้เกิดประสิทธิภาพสูงที่สุด (อนึ่ง GCP <-> CloudFlare มีค่าใช้จ่ายนะครับ แต่ถูกมากๆ)
นอกจากนั้นแล้ว ไหนๆ จะเปลี่ยนเว็บทั้งที ก็ทำ SSL ผ่าน Let’s Encrypt ไปเลยพร้อมกันทีเดียว จะได้ทำงานง่ายขึ้นกว่าเดิมมาก
ตัว VM แบบ f1-micro เอง ก็มีข้อจำกัดเช่นกัน เพราะแรมน้อย ถ้าเราตัดสินใจใส่ LAMP stack (Linux + Apache + MariaDB/MySQL + PHP) รับรองว่าแค่นี้เมมก็จะเต็มแล้ว โยน WordPress เข้าไปอีกก็คงเสถียรต่ำมาก ต้องทำ Optimization ให้ใช้หน่วยความจำ (memory footprint) ให้เล็กที่สุด ขณะเดียวกันเครื่องพวกนี้ก็ไม่เปิด swap มาให้ด้วย ก็ต้องทำเอาเองอีกเช่นกัน
เหนื่อยกันทุกระดับ แต่ต้องค่อยเป็นค่อยไปครับ
สิ่งที่ต้องทำ
เมื่อถึงจุดนี้ ผมขอสรุปลำดับสิ่งที่ต้องทำ เพื่อให้ง่ายขึ้นครับ (แล้วก็จะเห็นภาพชัดเจนด้วย) มีดังนี้
- เปิด Google Cloud Platform Account
- เรียกใช้บริการ Virtual Machine (Compute Engine) พร้อมติดตั้ง Linux
- Can’t Live Without You เปิดใช้ swap บน VM หนีตายสถานการณ์แรมต่ำ
- ล็อคค่า IP Address และเชื่อมเข้ากับโดเมน
- ติดตั้ง Apache + MySQL/Maria DB + PHP
- I will survive! ปรับแต่ง Apache + MySQL/Maria DB ให้เหมาะกับ f1-micro
- Let’s Encrypt กับการขอ SSL ฟรีๆ และบังคับให้ Apache ทำการ redirect ผู้ใช้เข้า HTTPS เสมอ
- ติดตั้ง WordPress และปรับแต่งประสิทธิภาพ
- เปิดบัญชี Cloudflare และเชื่อมต่อเข้ากับ GCP
ขั้นตอนเหล่านี้เป็นขั้นตอนหลักๆ ของการทำให้เว็บไซต์ส่วนตัวเราทำงานได้บนเครื่องจำกัดจำเขี่ย ซึ่งผมรับรองได้ว่าถ้าท่านปรับแต่งแล้ว การทำงานของท่านจะทำงานด้วยดีอย่างแน่นอนครับ
ไว้เจอกันตอนหน้าครับ