Kinh nghiệm chọn VPS phù hợp để chạy Next.js ổn định, tiết kiệm chi phí
Next.js mạnh vì linh hoạt: SSR, SSG, ISR, API Routes, image optimization, middleware, streaming… Nhưng chính sự linh hoạt này khiến việc chọn VPS dễ sai. Chọn quá yếu → app chậm, build lỗi, RAM đầy, downtime. Chọn quá mạnh → lãng phí tiền hằng tháng. Chọn sai vị trí server → TTFB cao. Chọn sai kiến trúc deploy → khó scale, khó debug.
Bài viết này chia sẻ kinh nghiệm thực tế để chọn VPS chạy Next.js ổn định, đủ dùng, dễ mở rộng, tối ưu chi phí.
1. Hiểu workload Next.js trước khi chọn VPS
Không phải app Next.js nào cũng cần cấu hình giống nhau. Cần phân loại trước.
Website tĩnh / landing page
Đặc điểm:
– Chủ yếu SSG.
– Ít request động.
– Không dùng nhiều API server-side.
– Nội dung ít thay đổi.
Cấu hình gợi ý:
– 1 vCPU
– 1GB RAM
– 20GB SSD
– CDN phía trước.
Nếu dùng next export hoặc build static hoàn toàn, VPS thậm chí chỉ cần Nginx serve file tĩnh.
Blog / website nội dung có ISR
Đặc điểm:
– Có build ban đầu.
– Có revalidate định kỳ.
– Traffic vừa.
– Cần Node.js runtime nếu dùng ISR.
Cấu hình gợi ý:
– 1-2 vCPU
– 2GB RAM
– 40GB SSD
RAM 1GB vẫn chạy được, nhưng build dễ nghẽn nếu project lớn.
Web app có SSR, auth, dashboard
Đặc điểm:
– Request server-side liên tục.
– Cần DB/cache/API.
– Có đăng nhập, phân quyền.
– TTFB quan trọng.
Cấu hình gợi ý:
– 2 vCPU
– 4GB RAM
– 50-80GB NVMe
– Redis/DB tách riêng nếu traffic tăng.
SaaS / thương mại điện tử / app traffic cao
Đặc điểm:
– SSR nhiều.
– API Routes xử lý logic.
– Image optimization.
– Cần uptime cao.
Cấu hình gợi ý ban đầu:
– 4 vCPU
– 8GB RAM
– NVMe SSD
– Load balancer nếu scale ngang.
– DB managed hoặc VPS riêng.
2. CPU: Next.js cần gì?
CPU ảnh hưởng trực tiếp tới:
– Thời gian build.
– SSR response time.
– API processing.
– Image optimization.
– Concurrent users.
Với Next.js, xung đơn nhân tốt thường quan trọng hơn số core nếu app nhỏ/vừa. Nhưng khi có nhiều request SSR song song, nhiều core giúp rõ.
Kinh nghiệm chọn CPU
– App nhỏ: 1 vCPU đủ.
– App production nghiêm túc: 2 vCPU nên là mức tối thiểu.
– App có SSR/API/image nhiều: 4 vCPU tốt hơn.
– Tránh VPS quá rẻ dùng CPU oversold nặng.
Dấu hiệu CPU thiếu:
– Build rất lâu.
– SSR chậm dù RAM còn.
– CPU 100% khi traffic tăng nhẹ.
– PM2 process thường xuyên lag.
3. RAM: yếu tố dễ gây crash nhất
Next.js build khá ngốn RAM. Runtime cũng cần RAM cho Node.js, cache, process manager, Nginx, DB client.
Mức RAM tham khảo
– 1GB RAM: chỉ nên dùng cho app nhỏ, static, demo.
– 2GB RAM: mức hợp lý cho production nhỏ.
– 4GB RAM: khuyến nghị cho app SSR nghiêm túc.
– 8GB+ RAM: app lớn, traffic cao, nhiều service.
Nếu RAM thiếu, lỗi thường gặp:
JavaScript heap out of memory
Killed
ENOMEMCó nên dùng swap?
Có. Với VPS nhỏ, swap giúp tránh crash đột ngột khi build/deploy. Nhưng swap chậm, không thay RAM thật.
Gợi ý:
– VPS 1-2GB RAM → thêm 1-2GB swap.
– VPS production → vẫn nên có swap nhẹ.
– Không lạm dụng swap cho tải thật.
4. Ổ cứng: chọn NVMe nếu có thể
Next.js cần đọc/ghi nhiều trong:
– node_modules
– .next
– build cache
– log
– upload nếu có
– Docker layer nếu dùng Docker
SSD vs NVMe
– SSD SATA: ổn.
– NVMe: tốt hơn rõ, đặc biệt khi build/deploy.
– HDD: tránh.
Dung lượng tối thiểu:
– App nhỏ: 20GB
– App production: 40-80GB
– Dùng Docker: 80GB+ nếu nhiều image/container.
Lưu ý: log có thể phình rất nhanh. Cần log rotation.
5. Băng thông, network, vị trí datacenter
Next.js SSR nhạy với latency. Người dùng ở Việt Nam nhưng VPS đặt quá xa → TTFB cao.
Chọn location
– Người dùng Việt Nam: ưu tiên Singapore, Hong Kong, Tokyo, Việt Nam.
– Người dùng châu Âu: Frankfurt, Amsterdam, London.
– Người dùng Mỹ: US East/West tùy nhóm user.
Singapore thường là lựa chọn cân bằng: latency tốt, nhà cung cấp nhiều, giá ổn.
Băng thông
Website nhỏ: 1-2TB/tháng thường đủ. Nhưng nếu serve ảnh/video trực tiếp từ VPS → nhanh hết bandwidth.
Khuyến nghị:
– Dùng CDN cho static asset.
– Dùng object storage cho media.
– Không để VPS gánh toàn bộ ảnh lớn.
6. Managed VPS hay unmanaged VPS?
Unmanaged VPS
Bạn tự cài:
– OS
– Node.js
– Nginx
– SSL
– Firewall
– Deploy
– Monitoring
– Backup
– Security update
Ưu điểm:
– Rẻ.
– Linh hoạt.
– Tối ưu sâu.
Nhược điểm:
– Cần kỹ năng sysadmin.
– Sai config → downtime/security risk.
Phù hợp:
– Dev có kinh nghiệm Linux.
– Startup cần tiết kiệm.
– App không yêu cầu SLA quá cao.
Managed VPS
Nhà cung cấp hỗ trợ vận hành nhiều phần.
Ưu điểm:
– Đỡ mất công.
– Có hỗ trợ kỹ thuật.
– Phù hợp team nhỏ không có DevOps.
Nhược điểm:
– Đắt hơn.
– Ít tự do hơn.
Phù hợp:
– Doanh nghiệp.
– App thương mại.
– Team không chuyên server.
7. Nên dùng Docker hay cài trực tiếp?
Cài trực tiếp trên VPS
Stack phổ biến:
– Ubuntu LTS
– Node.js LTS
– PNPM/NPM/Yarn
– PM2
– Nginx
– Certbot
Ưu điểm:
– Nhẹ.
– Dễ hiểu.
– Ít overhead.
Nhược điểm:
– Khó đồng nhất môi trường.
– Rollback kém hơn Docker.
Docker
Ưu điểm:
– Môi trường nhất quán.
– Deploy sạch.
– Dễ rollback.
– Dễ scale.
Nhược điểm:
– Cần RAM/disk nhiều hơn.
– Cần hiểu image, volume, network.
Kinh nghiệm: app nhỏ → cài trực tiếp được. App team/production dài hạn → Docker tốt hơn.
8. Cấu hình VPS gợi ý theo ngân sách
Ngân sách thấp: 5-7 USD/tháng
Phù hợp:
– Landing page.
– Blog nhỏ.
– MVP ít traffic.
Cấu hình:
– 1 vCPU
– 1GB RAM
– 20-25GB SSD
– 1TB bandwidth
Lưu ý:
– Nên thêm swap.
– Không chạy DB nặng cùng VPS.
– Build local rồi deploy artifact nếu RAM yếu.
Mức cân bằng: 10-15 USD/tháng
Phù hợp:
– Web app nhỏ/vừa.
– Blog nhiều nội dung.
– SSR vừa phải.
Cấu hình:
– 2 vCPU
– 2-4GB RAM
– 40-80GB SSD/NVMe
Đây là mức rất đáng chọn cho production ban đầu.
Mức ổn định cao: 20-40 USD/tháng
Phù hợp:
– SaaS nhỏ.
– Dashboard nhiều user.
– E-commerce nhỏ/vừa.
Cấu hình:
– 4 vCPU
– 8GB RAM
– 80GB+ NVMe
Nên tách DB sang managed DB hoặc VPS riêng nếu dữ liệu quan trọng.
9. Những lỗi chọn VPS thường gặp
Chọn VPS 1GB RAM cho app SSR lớn
Kết quả: build fail, process bị kill, deploy bất ổn.
Cách tránh: chọn tối thiểu 2GB, tốt hơn 4GB.
Chạy tất cả trên một VPS nhỏ
Node.js, PostgreSQL, Redis, Nginx, worker, cron cùng một máy 1-2GB → nghẽn.
Cách tránh: tách service khi app tăng trưởng.
Không dùng CDN
VPS phải serve toàn bộ JS/CSS/image → tốn bandwidth, chậm global.
Cách tránh: bật CDN, cache static asset.
Không có monitoring
Không biết CPU/RAM/disk đầy lúc nào.
Cách tránh: dùng Netdata, Grafana, Uptime Kuma, hoặc monitoring của provider.
Không backup
VPS lỗi disk hoặc xóa nhầm → mất dữ liệu.
Cách tránh: snapshot định kỳ, backup DB riêng, kiểm tra restore.
10. Checklist chọn VPS cho Next.js
Trước khi mua, kiểm tra:
– Datacenter gần người dùng chính
– CPU không quá oversold
– RAM tối thiểu 2GB cho production
– NVMe nếu build/deploy trên server
– Bandwidth đủ, rõ chính sách vượt mức
– Có snapshot/backup
– Có IPv4 ổn định
– Hỗ trợ firewall
– Provider uy tín
– Dễ nâng cấp cấu hình
– Uptime tốt
– Thanh toán minh bạch
Provider rẻ chưa chắc tiết kiệm nếu downtime nhiều. Với app kinh doanh, chi phí downtime thường lớn hơn tiền VPS.
11. Tối ưu chi phí sau khi chọn VPS
Chọn đúng VPS chỉ là bước đầu. Muốn tiết kiệm dài hạn, cần tối ưu vận hành.
Tối ưu build
– Dùng standalone output.
– Cache dependency.
– Dùng PNPM để tiết kiệm disk.
– Build ở CI nếu VPS yếu.
– Không build nhiều lần vô ích.
Tối ưu runtime
– Bật gzip/brotli ở Nginx/CDN.
– Cache SSR hợp lý.
– Dùng ISR thay SSR nếu có thể.
– Tối ưu query DB.
– Tách image/media khỏi VPS.
– Giới hạn log.
Tối ưu scale
Khi traffic tăng, đừng nâng VPS mù quáng. Hãy đo bottleneck:
– CPU cao → tăng vCPU hoặc cache.
– RAM đầy → tăng RAM, giảm memory leak.
– Disk I/O cao → NVMe, tối ưu log/cache.
– DB chậm → index, connection pool, tách DB.
– Network cao → CDN/object storage.
Đo trước, nâng sau → tiết kiệm hơn.
Kết luận: chọn VPS theo giai đoạn, không theo cảm tính
Với Next.js, lựa chọn an toàn cho đa số production nhỏ/vừa là 2 vCPU, 2-4GB RAM, 40GB+ NVMe, datacenter Singapore nếu user ở Việt Nam. App nhỏ có thể bắt đầu từ 1GB RAM, nhưng cần swap, CDN, monitoring. App SSR/API nghiêm túc nên chọn 4GB RAM trở lên để tránh lỗi build/runtime khó chịu.
Công thức thực tế:
– MVP nhỏ → 1 vCPU / 1-2GB RAM.
– Production phổ thông → 2 vCPU / 4GB RAM.
– App tăng trưởng → 4 vCPU / 8GB RAM, tách DB/cache.
– Traffic lớn → load balancer, nhiều instance, CDN, managed DB.
Đừng mua VPS mạnh nhất ngay từ đầu. Cũng đừng tiết kiệm quá mức khiến app chậm, lỗi, mất khách. Hãy bắt đầu bằng cấu hình vừa đủ, đo tài nguyên thường xuyên, tối ưu trước khi nâng cấp. Đây là cách chạy Next.js ổn định mà vẫn kiểm soát chi phí tốt nhất.