ทำไมเราถึงรับ Traffic ทั้งหมดด้วยเครื่องเดียว ไม่ใช้พวก Firebase/S3/Google Cloud Storage หรือพวกระบบเก็บข้อมูลที่มัน Auto-scale ได้

เขียนโดย: Dollapak Suwanpunya

ความจริงแล้วเราก็มีแผนสำรองที่จะ Deploy ไปบน Google Cloud Stoarge (ต่อไปจะขอเรียกว่า GCS) แต่ก็ไม่ได้ใช้ ใช้แค่สำรองข้อมูลไว้ก็พอ

เนื่องจากการทำเว็บเฉพาะกิจและไม่ได้หารายได้ อะไรที่ประหยัดได้เราก็ควรประหยัดไว้ก่อนครับ ต้นทุนที่เรามีคือมี Google Cloud account ที่บุญมีแล็ปให้การสนับสนุนมา และโฮสของทาง the matter ซึ่งมีระบบกระจายข้อมูล (CDN) ของ Cloudflare ไว้อยู่แล้ว ก็เลยคิดว่าควรจะประมวลผลไว้ที่เครื่องสักเครื่องนึง แล้วอัพโหลดขึ้นไปที่เครื่องที่ The Matter ให้บริการอยู่แล้วดีกว่า ยังไงก็น่าจะเร็วและประหยัดกว่า เพราะการออกแบบให้เว็บต้องไปเรียกข้อมูลจาก GCS จะทำให้เราต้องจ่ายค่าใช้ข้อมูลตามจำนวนผู้ใช้อีก ซึ่งจะเป็นการจ่ายเงินซ้ำซ้อนกับของที่มีอยู่ ดังนั้น GCS จึงถูกเลือกไว้ใช้แค่การสำรองข้อมูลเท่านั้น

ส่วนการประมวลผล เนื่องจากเราเขียนโปรแกรมที่เรียกข้อมูลจาก REST API ของทาง dttpool แล้วแปลงให้อยู่ในรูปที่ต้องการใช้งาน พร้อมกับเขียนเก็บลงไว้หลายที่ ปัญหาที่คาดการณ์ไว้ก็คือระบบข้อมูลจากทางกกตมีการเปลี่ยนแแปลงตลอดเวลา ไม่แน่นอน แม้กระทั่งชั่วโมงสุดท้ายก่อนจะใช้งานจริง (นั่นแหละครับท่านผู้ชม) ซึ่งงานที่อยู่บนความไม่แน่นอนแบบนี้ การทำ Serverless ด้วย AWS Lambda หรือ Google Cloud Function ไม่น่าจะเหมาะ เพราะใช้เวลา Deploy โค้ดใหม่แต่ละครั้งประมาณห้านาที ซึ่งนานกว่าการแก้ไขที่มีผลทันทีด้วย virtual machine (จึงทำให้ VM มีราคาต่อชั่วโมงยังแพงกว่า Serverless)

ดังนั้น เราก็เลยสร้าง virtual machine instance ซึ่งเป็นคอมพิวเตอร์สมมติที่เราสามารถเข้าแทรกแซงได้ทันทีผ่าน ssh