Back to Home
Opinion • อ่าน 5 นาที

I Killed My Production Server (And What I Learned)

Why I Migrated to Serverless

เรื่องมันเริ่มจากคืนวันศุกร์ที่ควรจะได้นอนดูซีรีส์สบายๆ... จู่ๆ ไลน์ Alert ของ UptimeRobot ก็เด้งรัวๆ ว่าระบบใช้งานไม่ได้ (HTTP 502 Bad Gateway) ตอนแรกนึกว่าแค่ Nginx เอ๋อ รีสตาร์ทเซอร์วิสก็คงหาย แต่สิ่งที่ผมเจอตอนเจาะ SSH เข้าไปดู VPS กลับทำให้หลังเย็นวาบ

$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 40G 0 100% /
/dev/vda15 105M 5.3M 100M 5% /boot/efi

ใช่ครับ "No space left on device" พื้นที่ 100% เต็มเปรี๊ยะ ลืมตั้ง Log rotation แป๊บเดียว แดกพื้นที่จน Database (MySQL) แครชตายสนิท ซ้ำร้ายไปกว่านั้นคือคอนฟิกบางอันที่เขียนสดไว้ในเครื่องดันค้างเติ่ง และนั่นแหละครับ... ผมเผลอฆ่า Production Server ของตัวเองด้วยความสะเพร่าล้วนๆ

หลังจากกู้คืนระบบแบบหัวเสียข้ามคืน ดึง Backup ที่เกือบจะไม่อัปเดตมานั่งยัดลงฐานข้อมูลใหม่ ผมเลยมานั่งดึงสติตัวเองว่า "ทำไมเรายังต้องมานั่งเฝ้า Server วิ่งไล่ลบไฟล์ขยะเองในยุค 2026 วะ?" ทั้งๆ ที่เราเป็น Developer ควรเอาเวลาไป Focus ที่การเขียน Business Logic มากกว่ามานั่งเป็น System Admin จำเป็น นั่นเป็นจุดเริ่มต้นที่ทำให้ผมตัดสินใจ "ระเบิดระบบทิ้ง" แล้วย้าย Infrastructure ของเราทั้งหมดไปซบ Serverless Architecture

1. ลาก่อน VPS รายเดือน (ที่จ่ายทิ้งขว้าง)

แต่ก่อนตอนใช้ DigitalOcean ผมจ่ายค่า Droplet อัดสเปกอยู่เดือนละ $20 (หรือบางทีก็ไปถึง $40 ช่วงมีคนเข้าเยอะๆ) ซึ่งถ้ามานั่งคำนวณจริงๆ ถามว่าคุ้มไหม? ลองนึกภาพแบบนี้ครับ ตอนตี 3 - 6 โมงเช้า ที่คนไทยหลับกันหมด แทบไม่มีคนเข้าเว็บเลย แต่ผมก็ยังต้องจ่ายค่าเช่า CPU และ RAM เต็มพิกัดตลอดยี่สิบสี่ชั่วโมง มันเหมือนการเปิดแอร์เบอร์แรงสุดทิ้งไว้ในห้องประชุมที่ไม่มีคนอยู่

พอย้ายมาเป็นท่า Serverless (ตอนนี้เราใช้ Vercel กับ Netlify ผสมกันสำหรับ Frontend/Backend ส่วน Database ย้ายไปพวก Serverless DB อย่าง Supabase หรือ PlanetScale) โมเดลการคิดเงินมันเปลี่ยนไปเลย จาก Fixed Cost เป็น Pay-per-Use แฟร์ๆ คือ "รันเท่าไหร่ จ่ายเท่านั้น"

ตารางเปรียบเทียบ Cost (ประสบการณ์ตรง)

| รายการค่าใช้จ่าย | VPS เดิม (DigitalOcean) | ยุค Serverless (Netlify + Supabase) |
|----------------|----------------------|---------------------------------|
| ค่า Server หลัก | $20.00 / เดือน | $0.00 (อยู่ใน Free Tier) |
| พื้นที่ Backup | $4.00 / เดือน | $0.00 (โค้ดอยู่ Git, DB มี Auto Backup) |
| SSL (HTTPS) | Let's Encrypt (ตั้ง Job เอง) | อัตโนมัติ ปรับให้อัตโนมัติฟรี |
| เวลาดูแลรักษาระบบ | ~4 ชั่วโมง / เดือน | 0 ชั่วโมง (แทบไม่ต้องแตะ) |
| **รวมต่อเดือน (ไม่รวมค่าแรง)** | **$24.00 (เกือบพันบาท)** | **$0.00** |

ใช่ครับ ในช่วงที่ทราฟฟิกไม่ได้บ้าเลือดระดับเว็บอีคอมเมิร์ซใหญ่ๆ บิลออกมาคือ $0.00 ถ้วน! มันเปลี่ยนโครงสร้างต้นทุน (Cost Structure) ของโปรเจกต์ขนาดเล็กถึงกลางไปเลย

2. ความสบายใจระดับ "No Ops" (ไม่ต้องมีคนเฝ้า Server)

ผมกล้าพูดเต็มปากเลยว่า "สุขภาพจิตผมดีขึ้นเยอะ" ตั้งแต่เลิกดูแล Server OS เอง

เรามักเห็นทีม DevOps ต้องมีความเครียดสะสม เพราะปัญหา "Disk Full", "High CPU Load", "Memory Leak" หรือต้องตื่นมากลางดึกเพื่อ "OS Patching" ป้องกันช่องโหว่ Zero-day มันสามารถเกิดขึ้นได้ 24/7 พอเรากระโดดมาใช้ Managed Services หน้าที่ของผมหดคอเหลือแค่อย่างเดียว คือ "เขียน Code ให้มันส่งผลลัพธ์ที่ถูกต้อง และบั๊กน้อยที่สุด" ส่วนเรื่องการรันแอปให้เสถียร อัปเดตแพตช์ความปลอดภัย หรือตั้งค่า Firewall กันพวกจู่โจม ปล่อยให้วิศวกรระดับเทพของ Cloud Provider เค้าจัดการไป เราสู้เค้าไม่ได้หรอกครับในแง่ของ Infrastructure Management

3. แล้วขีดจำกัดล่ะ? เวลาคนเข้าเยอะๆ (Scalability)

ถ้าเป็นระบบดั้งเดิม พอจัดโปรโมชั่นที ผมต้องรีบเข้าหน้าเว็บไปกด Resize Droplet เพิ่ม RAM รอมัน Reboot เสียเวลาเว็บดับไปอีก 5 นาที หรือถ้าไฮโซหน่อยก็ต้องเซ็ต Load Balancer วุ่นวาย

แต่พอใช้ Serverless มันเหมือนมีเวทมนตร์ Auto-scaling สมมติอยู่ๆ มีไอดอลทวีตถึงบทความเว็บเรา จนทราฟฟิกพุ่งพรวดเข้ามาพร้อมกัน 100,000 คน ระบบ Serverless Functions จะสเกลทรัพยากร (Resource) มารองรับ "ระดับเสี้ยววินาที" แบบ On-demand (Spin up instances) โดยที่เราไม่ต้องกดปุ่มอะไรสักนิด พอคนซาปุ๊บ มันก็จะหดตัวเองกลับไปเหลือ 0 ทันที ไม่กินเงินต่อ สุดยอดไหมล่ะ?

4. ด้านมืดที่ไม่มีใครบอก (ข้อควรระวัง)

ไม่อยากให้มองว่ามันคือกระสุนเงิน (Silver Bullet) ไปซะทุกอย่าง Serverless เองก็มีเจ็บปวดบ้างสำหรับโปรเจกต์เฉพาะทาง โดยเฉพาะ:

สรุป: บทเรียนราคาแพง(แต่โคตรคุ้มค่า)

การปล่อยให้ Server ตัวเองพังวันนั้น ถือเป็น The Best Accident! เป็นฟีดแบ็กแรงๆ ที่ทำให้ผมตาสว่าง การย้ายระบบสู่ Serverless ไม่ใช่แค่เรื่องของการประหยัดตังค์ $20/เดือน มันอาจจะดูจิ๊บจ๊อย แต่สิ่งที่ได้กลับมามหาศาลคือการ "ปลดล็อกเวลา" ให้ผมกับทีมงานกลับมาโฟกัสกระบวนการคิด การทำ Marketing และพัฒนาฟีเจอร์ใหม่ๆ ให้ผู้ใช้งาน ดีกว่าการจมอยู่กับหน้าจอดำๆ

สำหรับ Startup หรือโปรเจกต์ใหม่ๆ ในวันนี้... ไม่ต้องคิดเยอะแล้วครับ เริ่มด้วยแนวทาง Serverless First เถอะ แล้วคุณจะขอบคุณตัวเองตอนที่เห็นคนเข้าเว็บหลักแสน แต่ Server คุณไม่ล่มสักแอสคริปต์ ในวันเสาร์อาทิตย์ที่คุณกำลังนั่งจิบเบียร์ชิลๆ