วิธีลดค่าโฮสติ้งสำหรับแอปของคุณ
หากต้องการลดค่าโฮสติ้ง ให้หาก่อนว่าอะไรกำลังทำงานอยู่จริงและทำไม จากนั้นปล่อยให้ทุกอย่างหลับเมื่อไม่มีใครใช้งาน บนโฮสต์ที่ปรับขนาดเป็นศูนย์ แอปที่ไม่ได้ใช้และฐานข้อมูลที่หลับแทบไม่มีค่าใช้จ่าย การประหยัดที่มากที่สุดจึงมักมาจากการขจัดสิ่งที่ทำให้มันตื่นอยู่ ซึ่งบ่อยที่สุดคือโค้ดที่ตรวจฐานข้อมูลทุกไม่กี่วินาที จากนั้นจึงลดแบนด์วิดท์และลบแอปที่ไม่มีใครใช้
แอปขนาดเล็กส่วนใหญ่ไม่ได้มีปัญหาเรื่องทราฟฟิก แต่มีปัญหา “มีบางอย่างทำงานตลอดเวลา” คู่มือนี้อธิบายวิธีหาและแก้ไขปัญหานั้น พร้อมพรอมต์ที่คุณให้เครื่องมือสร้างแอป AI ได้
คุณจ่ายสำหรับอะไรบ้าง
ค่าโฮสติ้งของแอปขนาดเล็กมาจากไม่กี่อย่าง การรู้ว่าอันไหนใหญ่ทำให้รู้ว่าควรดูที่ไหน
| ค่าใช้จ่าย | สิ่งที่ขับเคลื่อน | วิธีแก้ที่พบบ่อย |
|---|---|---|
| Compute (เซิร์ฟเวอร์) | เครื่องมีขนาดแค่ไหนและทำงานกี่ชั่วโมง | ปล่อยให้หลับ ปรับขนาดให้พอดี |
| Database (ฐานข้อมูล) | ขนาดและระยะเวลาที่มันตื่นอยู่ | หยุดการ query ตลอดเวลาเพื่อให้มันหลับได้ |
| Bandwidth (แบนด์วิดท์) | ผู้เข้าชมดาวน์โหลดข้อมูลไปเท่าไร | บีบอัดรูปภาพ แคชไฟล์ |
| Storage (พื้นที่เก็บข้อมูล) | ไฟล์และข้อมูลที่คุณเก็บไว้ | ลบอัปโหลด ล็อก และสำรองข้อมูลเก่าที่ไม่จำเป็น |
| Third-party APIs (API ภายนอก) | การเรียกไปยังโมเดล AI แผนที่ อีเมล SMS | แคชผลลัพธ์ ตั้งขีดจำกัด |
โฮสต์สมัยใหม่หลายแห่ง รวมถึง Mythex ปรับขนาดเป็นศูนย์: เมื่อไม่มีใครใช้แอป เซิร์ฟเวอร์จะหยุดและไม่คิดค่าประมวลผล แล้วตื่นขึ้นเมื่อมีผู้เข้าชมครั้งถัดไป สิ่งนี้เปลี่ยนคำถามจาก “เซิร์ฟเวอร์ของฉันใหญ่แค่ไหน” เป็น “ทำไมเซิร์ฟเวอร์ของฉันถึงตื่นอยู่”
ขั้นตอนที่ 1: ดูว่าเงินไปไหน
ก่อนเปลี่ยนอะไร ให้เปิดหน้าการใช้งานของโฮสต์และหา:
- โปรเจกต์ไหน ที่มีค่าใช้จ่ายมากที่สุด บ่อยครั้งแอปเดียวคือส่วนใหญ่ของบิล
- หมวดหมู่ไหน เช่น compute, database, bandwidth หรือ storage
- เวลาใด ที่ใช้จ่าย หากมีเส้นคงที่ตลอดกลางคืนในตอนที่คุณไม่มีผู้ใช้ นั่นคือเบาะแสว่ามีบางอย่างทำให้แอปตื่นอยู่
บน Mythex รายละเอียดการใช้งาน แสดงการใช้งาน 30 วันที่ผ่านมา แบ่งเป็น Build (เอเจนต์ AI) และ Run (โฮสติ้ง แบนด์วิดท์ ฐานข้อมูล และพื้นที่จัดเก็บไฟล์) พร้อมรายละเอียดตามโปรเจกต์
ขั้นตอนที่ 2: ปล่อยให้แอปและฐานข้อมูลที่ไม่ได้ใช้หลับ
นี่คือตัวช่วยประหยัดที่แท้จริงสำหรับแอปขนาดเล็กส่วนใหญ่ ฐานข้อมูลที่หลับเมื่อว่างและตื่นเมื่อมีคำขอถัดไปแทบไม่มีค่าใช้จ่ายในช่วงเวลาเงียบ ส่วนฐานข้อมูลที่ถูก query ทุกไม่กี่วินาทีจะไม่มีวันว่าง คุณจึงจ่ายทั้งวัน
เอกสารขีดจำกัดของโฮสติ้ง ของ Mythex อธิบายวิธีการทำงานสำหรับแอปที่เผยแพร่: แอปที่หลับไม่เสียค่าประมวลผล ฐานข้อมูลเริ่มที่ขนาดเล็กที่สุด เติบโตเมื่อมีการใช้งาน หลับหลังว่าง 5 นาที และคิดค่าใช้จ่ายตามขนาดคูณกับเวลาที่มันตื่นอยู่ ดังนั้นแอปที่ query ฐานข้อมูลแม้เพียงทุกไม่กี่นาที ทั้งวันทั้งคืน จะถูกเรียกเก็บเหมือนกับว่ามันยุ่งตลอดเวลา ส่วนแอปเดียวกันที่ไม่มีการทำงานเบื้องหลังจะมีค่าใช้จ่ายน้อยมาก
สิ่งที่ทำให้แอปตื่นอยู่บ่อย ๆ ได้แก่:
- Polling หน้าที่ถามเซิร์ฟเวอร์ว่า “มีอะไรใหม่ไหม” ทุก 2–5 วินาที หากเปิดแท็บนั้นทิ้งไว้บนแล็ปท็อปเครื่องเดียว ฐานข้อมูลจะไม่มีวันหลับ
- แดชบอร์ดที่รีเฟรชอัตโนมัติ ที่โหลดข้อมูลใหม่ตามตัวจับเวลา แม้ไม่มีใครดูอยู่
- ระบบมอนิเตอร์ uptime ที่ปิงแอปทุกนาที
- ลูปเบื้องหลัง ในโค้ดเซิร์ฟเวอร์ เช่น
setIntervalที่ทำความสะอาดหรือซิงก์ข้อมูลไปเรื่อย ๆ - คำขอ “keep-alive” ตามกำหนดเวลา ที่ใครบางคนเพิ่มเพื่อหลีกเลี่ยงการเข้าครั้งแรกที่ช้า วิธีการนี้ทำงานด้วยการป้องกันไม่ให้หลับ ซึ่งเป็นสิ่งที่ทำให้เสียเงินพอดี
ขอให้เอไอช่วยหาสิ่งเหล่านี้:
ตรวจสอบโค้ดว่ามีอะไรที่ทำงานตามตัวจับเวลาหรือ query ฐานข้อมูลซ้ำ ๆ บ้าง เช่น polling, setInterval, การรีเฟรชอัตโนมัติ, ลูปเบื้องหลัง แสดงรายการแต่ละอย่าง ความถี่ที่ทำงาน และว่ามันทำงานเมื่อไม่มีใครเปิดหน้านั้นหรือไม่ ยังไม่ต้องเปลี่ยนอะไร
จากนั้นแก้ทีละอย่าง:
แดชบอร์ด polling /api/orders ทุก 3 วินาที เปลี่ยนให้รีเฟรชเฉพาะตอนที่แท็บของเบราว์เซอร์มองเห็นอยู่ และทุก 60 วินาทีแทน 3 วินาที เพิ่มปุ่ม Refresh สำหรับกดเอง
หากแอปของคุณต้องการการอัปเดตสด (เช่น แชต หรือกระดานคะแนนสด) ให้ถามว่าสามารถ ส่ง การอัปเดตเฉพาะเมื่อมีบางอย่างเปลี่ยนแทนการถามตลอดเวลาได้หรือไม่ สำหรับแอปจำนวนมาก “รีเฟรชเมื่อผู้ใช้กลับมาที่แท็บ” ก็เพียงพอแล้ว
ขั้นตอนที่ 3: ปรับขนาดเซิร์ฟเวอร์ให้พอดี
เครื่องที่ใหญ่กว่าคิดค่าใช้จ่ายต่อชั่วโมงมากกว่า แอปที่สร้างด้วย AI จำนวนมากเริ่มต้นด้วยขนาดเริ่มต้นที่ใช้ได้ดี ปัญหามักเกิดจากการขอ “พลังมากขึ้น” เพื่อแก้อาการช้าที่จริง ๆ แล้วเกิดจาก query ที่ช้า
- คงขนาดที่เล็กที่สุดที่รองรับทราฟฟิกของคุณโดยไม่มีข้อผิดพลาด
- หากเห็นหน่วยความจำล่มบ่อย ให้ถามเอไอก่อนว่าแอปโหลดข้อมูลมากเกินไปเข้าหน่วยความจำหรือไม่ เช่น โหลดทั้งตารางแทนที่จะโหลดผลลัพธ์เพียงหน้าเดียว
- เพิ่มเครื่องก็ต่อเมื่อมีทราฟฟิกที่วัดได้แล้วว่าต้องการ
บน Mythex ขนาดเครื่องจะถูกเลือกตอนเผยแพร่ตามสิ่งที่แอปต้องการ เครื่องเพิ่มเติมจะเริ่มทำงานเฉพาะตอนทราฟฟิกหนาแน่นและกลับไปหลับเมื่อทราฟฟิกลดลง ค่าใช้จ่ายขึ้นกับขนาด จึงขอในแชทให้ใช้ขนาดที่เล็กลงได้หากคุณคิดว่ามันใหญ่เกินไป
ขั้นตอนที่ 4: ลดแบนด์วิดท์
แบนด์วิดท์คือปริมาณที่ผู้เข้าชมดาวน์โหลด รูปภาพมักเป็นส่วนที่ใหญ่ที่สุด
- บีบอัดรูปภาพและให้บริการในรูปแบบสมัยใหม่ เช่น WebP หรือ AVIF
- ย่อรูปภาพให้เท่ากับขนาดที่แสดงจริง รูปถ่าย 4,000 พิกเซลที่แสดงเป็นภาพย่อ 400 พิกเซลทำให้ดาวน์โหลดส่วนใหญ่ไปโดยเปล่าประโยชน์
- โหลดรูปภาพแบบ lazy สำหรับรูปที่อยู่ต่ำกว่าหน้าจอแรก
- แคชไฟล์ static (สคริปต์ สไตล์ รูปภาพ) เพื่อไม่ให้ผู้เข้าชมที่กลับมาดาวน์โหลดซ้ำ ดูแคชคืออะไร
- อย่าให้แอปส่งไฟล์ขนาดใหญ่ทุกครั้งที่มีการเปิดหน้า
ตรวจสอบรูปภาพทุกรูปในแอป ย่อให้เท่ากับขนาดใหญ่สุดที่แสดง แปลงเป็น WebP และโหลดแบบ lazy สำหรับรูปใดก็ตามที่อยู่ต่ำกว่าหน้าจอแรก บอกฉันขนาดรวมก่อนและหลัง
หน้าที่เร็วขึ้นและแบนด์วิดท์ที่ลดลงมักไปด้วยกัน ดูวิธีทำให้เว็บไซต์เร็วขึ้น
ขั้นตอนที่ 5: ทำความสะอาดสิ่งที่ไม่มีใครใช้
- ยกเลิกการเผยแพร่แอปเก่า การ deploy ทดสอบ การทดลองที่จบแล้ว เว็บไซต์งานอีเวนต์ของปีที่แล้ว
- ลบอัปโหลด ล็อก และไฟล์ส่งออกเก่าที่ไม่จำเป็น
- ลบลิงก์พรีวิวที่แชร์ ที่คุณไม่ได้ใช้แล้ว บน Mythex การเปิดลิงก์พรีวิวจะปลุกโปรเจกต์และใช้เครดิตของคุณ ลิงก์ที่ลืมไปแล้วซึ่งมีคนเปิดอยู่เรื่อย ๆ ยังคงมีค่าใช้จ่าย
- เอาบริการที่ไม่ได้ใช้ออก เช่น เซิร์ฟเวอร์ API หรือ worker ที่แอปไม่เรียกใช้แล้ว
ขั้นตอนที่ 6: พิจารณาเว็บไซต์ static
หากเว็บไซต์ของคุณไม่มีการล็อกอิน ไม่มีข้อมูลผู้ใช้ที่บันทึกไว้ และไม่มีลอจิกฝั่งเซิร์ฟเวอร์ เช่น เว็บไซต์การตลาด พอร์ตโฟลิโอ หรือเมนูร้าน มันสามารถเป็น เว็บไซต์ static คือไฟล์ธรรมดาที่ส่งผ่าน CDN ไม่มีเซิร์ฟเวอร์หรือฐานข้อมูลที่ต้องทำงานอยู่ บน Mythex เว็บไซต์ static ไม่ใช้เครดิตขณะที่วางอยู่เฉย ๆ
เว็บไซต์นี้ไม่มีการล็อกอินหรือข้อมูลที่บันทึกไว้ สามารถสร้างใหม่เป็นเว็บไซต์ static ที่ไม่มีเซิร์ฟเวอร์ได้หรือไม่ เราจะเสียอะไรไป
ขั้นตอนที่ 7: ดูการเรียก API ที่มีค่าใช้จ่าย
สำหรับแอปที่เรียกโมเดล AI แผนที่ หรือ SMS ค่าบิลของบริการภายนอกอาจมากกว่าค่าโฮสติ้งมาก
- กำหนดให้ต้องล็อกอินสำหรับสิ่งใดก็ตามที่มีค่าใช้จ่ายต่อการเรียก
- เพิ่มขีดจำกัดต่อผู้ใช้ (ดูขีดจำกัดอัตราการเรียกคืออะไร)
- แคชคำตอบที่ไม่เปลี่ยน เช่น การแปลงที่อยู่เดียวกันเป็นพิกัดซ้ำ ๆ
- ตั้งเพดานการใช้จ่ายหรือการแจ้งเตือนที่ผู้ให้บริการแต่ละราย
ความผิดพลาดที่พบบ่อย
- เดาแทนที่จะวัด ตรวจดูการแบ่งการใช้งานก่อน ส่วนที่แพงมักไม่ใช่สิ่งที่คุณคาดไว้
- ซื้อเซิร์ฟเวอร์ที่ใหญ่กว่าเพื่อแก้อาการช้า ดัชนีฐานข้อมูลที่หายไปหรือการโหลดข้อมูลมากเกินไปมักเป็นสาเหตุจริง
- Polling ทุกอย่าง ตัวจับเวลาทุกสองสามวินาทีคือเหตุผลที่ฐานข้อมูลจะตื่นอยู่ตลอด
- ปิงแอปเพื่อให้ “อุ่นอยู่” การทำแบบนี้ตัดการประหยัดจากการปรับขนาดเป็นศูนย์ออกไป ยอมรับการตื่นช้าสั้น ๆ ตอนเข้าครั้งแรก หรือจ่ายสำหรับการทำงานตลอดเวลาอย่างตั้งใจ
- ลืมการ deploy เก่า แอปที่ไม่ได้ใช้ที่มีฐานข้อมูลและงานเบื้องหลังจะสะสมค่าใช้จ่ายไปเงียบ ๆ
- รูปภาพที่ไม่ได้บีบอัด มักเป็นค่าแบนด์วิดท์ที่สูงที่สุดของเว็บไซต์ขนาดเล็ก
รายการตรวจสอบ
- ฉันรู้ว่าโปรเจกต์ไหนและหมวดหมู่ไหน (compute, database, bandwidth, storage) ที่มีค่าใช้จ่ายมากที่สุด
- ไม่มีอะไรทำ polling ฐานข้อมูลทุกไม่กี่วินาทีเมื่อไม่มีใครดูอยู่
- แดชบอร์ดรีเฟรชตามช่วงเวลาที่เหมาะสม หรือเฉพาะตอนที่แท็บมองเห็นอยู่
- ไม่มีระบบมอนิเตอร์ uptime หรือลูปเบื้องหลังที่ทำให้แอปตื่นโดยไม่มีเหตุผล
- เซิร์ฟเวอร์มีขนาดเล็กที่สุดที่ยังใช้งานได้
- รูปภาพถูกย่อ บีบอัด และโหลดแบบ lazy ส่วนไฟล์ static ถูกแคช
- แอปเก่าถูกยกเลิกการเผยแพร่ ไฟล์เก่าถูกลบ และลิงก์พรีวิวที่ไม่ได้ใช้ถูกเอาออก
- เว็บไซต์ที่ไม่มีข้อมูลหรือการล็อกอินเป็น static
- API ที่มีค่าใช้จ่ายมีการล็อกอิน ขีดจำกัดต่อผู้ใช้ และการแจ้งเตือนการใช้จ่ายจากผู้ให้บริการ
ลดค่าใช้จ่ายบน Mythex
Mythex ใช้ยอดเครดิตก้อนเดียวสำหรับทั้งการสร้างและการโฮสต์ ดังนั้นการประหยัดค่าโฮสติ้งจะเหลือเครดิตให้สร้างมากขึ้น ประเด็นเฉพาะของ Mythex มีดังนี้:
- แอปที่เผยแพร่แล้วและฐานข้อมูลจะหลับเมื่อว่างและตื่นเมื่อมีผู้เข้าชมครั้งถัดไป ฐานข้อมูลหลับหลังว่าง 5 นาที การเอา polling ที่ทำงานตลอดออกจึงมักเป็นผลที่ได้มากที่สุด
- แพ็กเกจ Pro จ่ายครึ่งหนึ่งของอัตราของ Free สำหรับโฮสติ้ง ฐานข้อมูล แบนด์วิดท์ พื้นที่เก็บไฟล์ และแซนด์บ็อกซ์พรีวิว ส่วน AI มีราคาเท่ากันทั้งสองแพ็กเกจ ดูเครดิต
- คุณจะได้รับอีเมลก่อนยอดเครดิตต่ำจนอาจทำให้แอปที่เผยแพร่หยุดชั่วคราว และแอปที่หยุดไว้จะยังเก็บฐานข้อมูลและไฟล์ของตัวเองไว้
สำหรับภาพรวมของต้นทุนการทำงาน ดูการสร้างแอปใช้เงินเท่าไร และการโฮสต์เว็บคืออะไร
คำถาม
ทำไมค่าโฮสติ้งของฉันถึงสูง ทั้งที่แอปมีผู้ใช้น้อย
มักเป็นเพราะมีบางอย่างทำให้แอปตื่นอยู่ตลอด เช่น โค้ดที่ตรวจสอบฐานข้อมูลทุกไม่กี่วินาที ระบบมอนิเตอร์ที่ปิงแอปทุกนาที หรือลูปเบื้องหลังที่ลืมไปแล้ว สิ่งเหล่านี้ทำให้เซิร์ฟเวอร์และฐานข้อมูลทำงานตลอดเวลาแม้ไม่มีผู้เข้าชม
แอปที่หลับอยู่มีค่าใช้จ่ายหรือไม่
บนโฮสต์ที่ปรับขนาดเป็นศูนย์ แอปที่หลับแทบไม่เสียค่าประมวลผล แต่โดยทั่วไปคุณยังต้องจ่ายค่าข้อมูลที่เก็บไว้ บน Mythex แอปที่เผยแพร่และหลับอยู่ไม่เสียค่าประมวลผล และฐานข้อมูลจะหลับหลังว่าง 5 นาที โดยคิดค่าใช้จ่ายเฉพาะช่วงเวลาที่มันตื่นอยู่
การ polling ส่งผลเสียต่อค่าโฮสติ้งหรือไม่
การ polling ทุกไม่กี่วินาทีทำให้ฐานข้อมูลไม่มีช่วงว่างเลย จึงหลับไม่ได้ ลองลดความถี่ให้น้อยลง ทำเฉพาะตอนที่มีคนดูหน้านั้นอยู่ หรือส่งการอัปเดตมาให้แทนการถาม
เว็บไซต์แบบ static ถูกกว่าการโฮสต์เว็บแอปหรือไม่
โดยทั่วไปใช่ เว็บไซต์ static เป็นเพียงไฟล์ที่ส่งผ่าน CDN ไม่มีเซิร์ฟเวอร์หรือฐานข้อมูลที่ต้องทำงานตลอด หากเว็บไซต์ของคุณไม่มีการล็อกอินหรือข้อมูลที่บันทึกไว้ การสร้างเป็นเว็บไซต์ static คือหนึ่งในการประหยัดที่มากที่สุดที่ทำได้