Tuesday, 19 March 2024

ใช้ GCP f1-micro รันเว็บไซต์ส่วนตัวฟรีๆ – ตอนที่ 2 วางแผนดำเนินการ

ต่อจากตอนที่แล้ว ซึ่งคงพอรู้เรื่องระบบคลาวด์พื้นฐานไปบ้างแล้ว คำถามที่จะต้องถามต่อมาคือ แล้วจะเริ่มต้นอย่างไรได้บ้าง? ในตอนนี้คือเรื่องของการวางแผน (planning) ว่าเว็บไซต์ส่วนตัวของเราที่จะทำบน GCP f1-micro นั้น จะต้องทำอะไรบ้าง

วางแผน… ทำไม?

พอถึงตอนนี้ ทุกคนอาจจะงงว่า อ้าว ทำไมถึงต้องแนะนำให้วางแผนด้วย (วะ) ไหนบอกว่า Always Free

คืออย่างนี้ครับ GCP Always Free แม้จะฟรีถาวรตลอดชาติก็ตาม แต่มันก็มีข้อจำกัดบางอย่างเสมอ โดยเฉพาะที่อันตรายที่สุดคือ ถ้าเกินจากที่กำหนดว่าฟรีถือว่ามีค่าใช้จ่าย ต้องเก็บเงินทันที ไม่มีลิมิตด้วย

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

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

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

ข้อจำกัด ที่ควรคิดถึง

ตอนที่แล้วอย่างที่ผมเล่าให้ฟัง f1-micro มีข้อจำกัดมากมาย แต่ทำไมเว็บไซต์ถึงทำงานได้เสถียรและมีประสิทธิภาพ? คำตอบก็อยู่ตรงที่การ “วางแผน” ของระบบทั้งหมดที่มี

ข้อจำกัดเรื่องระบบประมวลผล และการส่งข้อมูลผ่านเครือข่ายขาออก (Network Egress) ที่มีสูงสุด 1 GB ต่อเดือน ย่อมต้องทำให้เรา “คิดแล้วคิดอีก” แถมตำแหน่งเครื่องก็ล็อคเอาไว้ที่สหรัฐอเมริกาด้วย ถ้าเข้าไทยก็ช้าอีก แถมต้องเสีย ค่าส่งข้อมูลบานเบอะอีกต่างหาก ไม่นับค่าโดเมนเนมและอื่นๆ จิปาถะอีก

Photo by Panumas Nikhomkhai from Pexels

คือถ้าไม่ใจสู้ ผมคิดว่าคงวิ่งไปหาบริการโฮสติ้งแล้ว (อันนี้ไม่ได้โฆษณาให้ใคร แต่ที่ไรท์ติ้งอินไทยใช้ 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 มาให้ด้วย ก็ต้องทำเอาเองอีกเช่นกัน

เหนื่อยกันทุกระดับ แต่ต้องค่อยเป็นค่อยไปครับ

สิ่งที่ต้องทำ

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

  1. เปิด Google Cloud Platform Account
  2. เรียกใช้บริการ Virtual Machine (Compute Engine) พร้อมติดตั้ง Linux
  3. Can’t Live Without You เปิดใช้ swap บน VM หนีตายสถานการณ์แรมต่ำ
  4. ล็อคค่า IP Address และเชื่อมเข้ากับโดเมน
  5. ติดตั้ง Apache + MySQL/Maria DB + PHP
  6. I will survive! ปรับแต่ง Apache + MySQL/Maria DB ให้เหมาะกับ f1-micro
  7. Let’s Encrypt กับการขอ SSL ฟรีๆ และบังคับให้ Apache ทำการ redirect ผู้ใช้เข้า HTTPS เสมอ
  8. ติดตั้ง WordPress และปรับแต่งประสิทธิภาพ
  9. เปิดบัญชี Cloudflare และเชื่อมต่อเข้ากับ GCP

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

ไว้เจอกันตอนหน้าครับ

เรื่องแนะนำ

ใช้ GCP f1-micro รันเว็บไซต์ส่วนตัวฟรีๆ – ตอนที่ 4 เปิด swap + ล็อค IP Address

หลังจากเราเปิดบัญชี GCP และ เริ่มรัน Virtual Machine บน Compute Engine ตามขั้นตอนในตอนที่แล้ว มาในตอนนี้เราจะเริ่มต้นเปิด swap และล็อค IP Address กันครับ

LEAVE A REPLY

Please enter your comment!
Please enter your name here