Thuê Cloud VPS Việt Nam: hướng dẫn chọn cấu hình cho startup + SaaS nhỏ

Chia sẻ bài viết

Mục lục
💡 AI-ready skill doc: bạn đang vibe code với Claude Code/Cursor/Codex/Gemini? Copy nguyên bài này paste vào AI của bạn - nó sẽ đọc như một skill document và áp dụng đúng pattern này vào project mà không cần bạn giải thích lại. Tiện, gọn, dùng được luôn.
Minh họa thuê Cloud VPS Việt Nam cho startup

Founder Việt làm SaaS thường rơi vào 2 trap: hoặc over-spec mua VPS 4 triệu/tháng từ MVP đầu tiên rồi đốt vốn, hoặc under-spec mua gói 200k để rồi khi launch có 500 user thì server sập. Bài này đưa ra framework cụ thể chọn cấu hình Cloud VPS Việt Nam theo từng giai đoạn startup, tính toán resource thật cho từng layer (web, database, queue, cache), và bảng cost ladder từ 0 đến 100k user.

Tại sao cần Cloud VPS thay vì shared hosting hay AWS?

Đa số startup Việt 2026 chọn Cloud VPS Việt Nam thay vì AWS/GCP cho giai đoạn 0-10k user vì 3 lý do:

  1. Giá rẻ hơn 5-10x: VPS 4vCPU/4GB ở VN ~639k/tháng vs AWS t3.xlarge ~2-3 triệu/tháng (chưa tính bandwidth out đắt khủng).
  2. Latency thấp với người dùng Việt: datacenter VN cho ping 5-15ms, AWS Singapore 30-50ms.
  3. Billing dự đoán được: 1 invoice/tháng cố định, không có bill bất ngờ vì bandwidth out như AWS.

Khi nào chuyển AWS/GCP? Khi cần multi-region, managed services (RDS, Lambda) tiết kiệm thời gian dev hơn cost server, hoặc khách hàng enterprise yêu cầu compliance đặc biệt. Trước đó, Cloud VPS Việt Nam là choice hợp lý.

Framework chọn cấu hình: tính từng layer

Đừng đoán "VPS 4GB chắc đủ". Tính cụ thể từng layer:

LayerRAM ước tínhGhi chú
OS (Ubuntu/Debian)~300-500MBIdle Linux server
Web server (Nginx, Caddy)~100-200MBReverse proxy nhẹ
App server (Node.js)~150-300MB per processx N process
App server (Laravel-PHP-FPM)~50-80MB per workerx N worker, scale theo concurrent request
App server (Python Gunicorn)~80-200MB per workerPhụ thuộc framework
PostgreSQL idle~150MB + shared_buffersshared_buffers thường 25% RAM
MySQL/MariaDB idle~200MB + innodb_buffer_poolinnodb_buffer_pool ~50% RAM cho DB-heavy
Redis cache~5MB base + data sizeData size phụ thuộc cache scope
Queue worker (BullMQ, Celery, Sidekiq)~80-200MB per workerx N worker theo job rate
Monitoring (Netdata)~150-300MBOptional nhưng nên có

Cộng lại: một app SaaS Laravel cơ bản (Nginx + PHP-FPM 4 worker + PostgreSQL + Redis + 1 queue worker) đã chiếm ~1,5-2GB RAM idle. Cần thêm buffer 50% cho traffic burst. Vậy VPS 2GB chỉ đủ MVP nhẹ, sang traffic thật phải 4GB.

Cost ladder: VPS theo từng giai đoạn startup

Giai đoạn 0: MVP, validate idea (0-100 user)

Gói khuyến nghị: VPS 20 (1vCPU/1GB/20GB - 199k/tháng) hoặc VPS 30 (2vCPU/2GB/30GB - 299k/tháng).

Mục tiêu: validate idea nhanh nhất, đốt ít tiền nhất. Có thể chấp nhận downtime ngắn. Stack typical: Laravel/Express + SQLite hoặc PostgreSQL nhỏ + 1 process.

Mẹo: dùng SQLite cho MVP nếu app không multi-tenant phức tạp. Tiết kiệm RAM cho PostgreSQL, deploy đơn giản hơn (file backup).

Giai đoạn 1: Public launch, traffic 100-1000 user/ngày

Gói khuyến nghị: VPS 50 (4vCPU/4GB/50GB - 639k/tháng).

Mục tiêu: chạy mượt với 1k user/ngày, 50-100 concurrent request đỉnh. Stack: Nginx + 4 worker PHP-FPM hoặc 2 process Node.js + PostgreSQL với shared_buffers 1GB + Redis cache + 1-2 queue worker.

Bắt đầu setup monitoring: Netdata hoặc Grafana + Prometheus. Backup database hàng ngày.

Giai đoạn 2: Growth, traffic 1k-10k user/ngày

Gói khuyến nghị: VPS 80 (6vCPU/6GB/80GB - 999k/tháng) hoặc VPS 160 (8vCPU/8GB/160GB - 1.790.000đ/tháng).

Mục tiêu: chạy stable với 10k user/ngày, 500-1000 concurrent đỉnh. Stack có thể bắt đầu tách: database lên VPS riêng nếu PostgreSQL chiếm 50%+ RAM. Queue worker scale theo job rate.

Xem xét tách: 1 VPS cho web + 1 VPS cho database. Lợi ích: scale độc lập, restart web không ảnh hưởng DB. Chi phí: ~2x nhưng đáng nếu uptime quan trọng.

Giai đoạn 3: Scale, 10k-100k user/ngày

Gói khuyến nghị: VPS 250 (10vCPU/10GB/250GB - 2.190.000đ/tháng) hoặc cao hơn cho web + VPS riêng cho database.

Stack production: 2-3 VPS web đằng sau load balancer + 1-2 VPS database (primary + replica) + Redis cluster + queue workers tách riêng. Monitoring đầy đủ. CDN cho static assets (Cloudflare free tier).

Giai đoạn 4: Enterprise scale (100k+ user/ngày)

Cân nhắc multi-region, Kubernetes, managed database (DigitalOcean Managed PostgreSQL, AWS RDS), CDN trả phí (Cloudflare Pro/Business). Cost lên 10-30 triệu/tháng infra. Lúc này startup đã có revenue đủ trả.

Bảng cost theo user (ước tính cho SaaS B2B điển hình)

Số user activeCấu hìnhCost/thángCost/user
1-100 (MVP)1 VPS 30299k3-30k
100-1.0001 VPS 50639k0,6-6k
1.000-10.0001 VPS 80 hoặc 160999k - 1,79tr0,1-1,8k
10.000-50.000VPS 250 web + VPS 160 DB~4-5tr0,08-0,5k
50.000-100.0002x VPS 320 web + VPS 250 DB + LB~8-12tr0,08-0,24k

Lưu ý: cost/user giảm mạnh khi scale (kinh tế quy mô). Tại 100k user, cost infra chỉ ~80-240đ/user/tháng, dễ profit nếu pricing 50-200k/tháng/user.

Câu hỏi đúng trước khi mua VPS startup

Đừng hỏi "VPS bao nhiêu RAM đủ?" Hỏi:

  1. Database lớn cỡ nào sau 6 tháng? Quyết định disk size. Nhiều SaaS B2B chỉ vài GB DB sau năm 1, nhưng SaaS UGC (user uploads, posts) có thể 100GB sớm.
  2. Bao nhiêu concurrent request đỉnh? Quyết định số worker, từ đó RAM. SaaS B2B làm việc giờ hành chính có pattern khác social app (peak tối-cuối tuần).
  3. Có job nền nặng không (gửi email, sync API, xử lý file)? Quyết định số queue worker. App có nhiều job nền cần RAM nhiều.
  4. Có cần real-time (WebSocket, SSE)? WebSocket giữ connection mở = RAM cho mỗi user online. 1k user online qua WebSocket = ~200-500MB RAM.
  5. Khách hàng ở Việt Nam hay quốc tế? Quyết định location datacenter.
  6. Có cần file upload không (avatar, document)? Quyết định disk + cân nhắc Object Storage (S3, R2) thay vì VPS lớn.
💡 Mẹo: Trả lời 6 câu trên trước khi mua VPS sẽ tiết kiệm bạn cả triệu đồng/tháng từ over-spec, hoặc cả ngày debug khi server sập vì under-spec.

Pattern: vertical scale vs horizontal scale

Khi server bị slow, có 2 cách scale:

Vertical scale (scale up): nâng cấp gói VPS

Tăng từ VPS 50 lên VPS 80 lên VPS 160. Đơn giản, không cần đổi code. Hầu hết nhà cung cấp VPS có nút "Upgrade" trong control panel, restart trong vài phút là xong. Phù hợp cho 0-50k user.

Giới hạn: 1 VPS có max RAM/CPU. Đến VPS 320 (12vCPU/12GB) là gần đỉnh, cần horizontal.

Horizontal scale (scale out): nhiều VPS, load balancer

Thay vì 1 VPS to, dùng 2-4 VPS nhỏ đằng sau load balancer (Nginx, Caddy, HAProxy). Database tách riêng. Cần code stateless (không lưu session trên local disk, dùng Redis hoặc DB).

Phức tạp hơn nhưng scale vô hạn. Phù hợp cho 50k+ user hoặc app cần high availability (1 VPS chết, các VPS khác vẫn phục vụ).

Stack recommendation: 3 setup phổ biến cho Cloud VPS Việt Nam

Setup 1: All-in-one (MVP, < 1k user)

1 VPS chạy tất cả: Nginx + App + DB + Redis + Worker.

# /etc/nginx/sites-enabled/myapp.conf
server {
    listen 80;
    server_name myapp.com;
    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
    }
}

Đơn giản, đủ cho MVP. Risk: 1 service crash kéo theo tất cả.

Setup 2: Web + DB tách (1k-10k user)

VPS A: Nginx + App + Worker. VPS B: PostgreSQL + Redis.

Setup PostgreSQL listen trên private IP của VPS B, App ở VPS A connect qua private network. Bảo mật: firewall chỉ cho VPS A access port 5432 của VPS B.

# /etc/postgresql/16/main/postgresql.conf
listen_addresses = '10.0.0.2'  # private IP

# /etc/postgresql/16/main/pg_hba.conf
host  myapp_db  myapp_user  10.0.0.1/32  scram-sha-256

Setup 3: HA setup (10k+ user)

2 VPS web sau Cloudflare/Caddy Load Balancer. 1 VPS DB primary + 1 replica. Redis dedicated. Worker queue trên VPS riêng.

Cần CI/CD deploy đồng bộ ra nhiều VPS web (GitHub Actions deploy qua SSH, hoặc Coolify/Dokploy).

Backup strategy bắt buộc cho startup

Đừng tin "nhà cung cấp có backup". Backup thật là:

  1. Daily DB dump: cron job dump PostgreSQL lên Object Storage (R2, B2) mỗi ngày. Retain 30 ngày.
  2. Weekly VPS snapshot: dùng feature snapshot của nhà cung cấp. Retain 4 weeks.
  3. Offsite backup: ít nhất 1 copy ở khác provider/region. Tránh trường hợp 1 datacenter sập = mất hết.
  4. Test restore quý/lần: backup không test = không phải backup. Restore vào VPS test xem có chạy được không.
#!/bin/bash
# /usr/local/bin/db-backup.sh
DATE=$(date +%Y%m%d)
DB_NAME=myapp_db
BACKUP_DIR=/var/backups/postgres

mkdir -p $BACKUP_DIR
pg_dump -U postgres -Fc $DB_NAME > $BACKUP_DIR/${DB_NAME}_${DATE}.dump

# Upload to S3/R2
aws s3 cp $BACKUP_DIR/${DB_NAME}_${DATE}.dump \
    s3://mybucket/db-backups/ \
    --endpoint-url https://your-r2-endpoint

# Xóa backup local cũ hơn 7 ngày
find $BACKUP_DIR -name "*.dump" -mtime +7 -delete

# Crontab: 0 3 * * * /usr/local/bin/db-backup.sh

Monitoring: biết server sắp sập trước khi user phàn nàn

Tối thiểu phải monitor:

  • CPU/RAM/Disk usage: alert khi vượt 80%.
  • Disk I/O: nếu wait I/O cao, ổ cứng quá tải hoặc app query không tối ưu.
  • HTTP error rate: 5xx error > 1% là alert.
  • Response time: P95 > 2s là alert.
  • Database connection pool: nếu vượt 80% slot, sắp out of connection.

Tool free đề xuất: Netdata (real-time dashboard, alert qua Telegram/Slack), UptimeRobot (external uptime check), Sentry (error tracking app).

Khi nào nên tách database khỏi web server?

Dấu hiệu cần tách:

  • PostgreSQL chiếm > 50% RAM tổng VPS.
  • Query đôi khi chậm bất thường khi web traffic burst.
  • Restart web app làm interrupt DB query (postgres connection drop).
  • Cần backup DB không ảnh hưởng web traffic.

Lợi ích tách: scale độc lập, DB nâng cấp không ảnh hưởng web, security boundary rõ ràng.

Câu hỏi thường gặp khi thuê Cloud VPS startup

Bao lâu nên upgrade gói VPS?

Khi CPU/RAM sustained 70%+ trong giờ peak. Upgrade trước khi crash, không phải sau.

VPS Việt Nam vs DigitalOcean Singapore: chọn gì?

Khách Việt: VPS VN. Khách quốc tế: DO Singapore. Khách mixed: 2 VPS ở 2 location + Cloudflare routing. DO Singapore ping VN ~30-50ms, cảm nhận chậm hơn rõ.

Có nên dùng managed PostgreSQL của DigitalOcean/Linode thay vì self-host?

Managed DB tốt cho startup không có dev senior, nhưng giá đắt gấp 2-3x VPS tự host. Nếu có dev biết postgres, self-host trên Cloud VPS Việt Nam tiết kiệm nhiều.

Khi nào cần CDN?

Khi có static asset (image, video, JS bundle) > 1MB và có khách quốc tế. Cloudflare free tier đủ cho 99% startup giai đoạn 0-50k user.

Bài viết liên quan

Bắt đầu hành trình SaaS với Cloud VPS đúng giá

TND có 8 gói Cloud VPS từ 199k (MVP) đến 480GB top tier. Ceph SSD Enterprise NVMe, RAM ECC, datacenter VN + US, khởi tạo 60 giây. Upgrade trong vài phút khi cần scale.

Xem bảng giá Cloud VPS

Tóm gọn: Cloud VPS TND Việt Nam rất phù hợp cho startup giai đoạn 0-50k user. Bắt đầu từ VPS 30 (299k) khi MVP, upgrade lên VPS 50/80/160 khi traffic tăng. Tách database khi RAM database vượt 50% VPS. Đầu tư monitoring và backup từ ngày đầu. Khi đến 100k user, mới cần nghĩ đến đa region / Kubernetes - lúc đó startup đã đủ revenue để chi cho cloud lớn hơn. Tránh trap over-engineer ngay từ đầu, cũng tránh trap thuê VPS giá rẻ quá mức rồi server sập khi launch.

2009
15+ năm vận hành liên tục
10+
tập đoàn lớn tin dùng
100+
doanh nghiệp SMB Việt
30 ngày
đổi key lỗi miễn phí
Phần mềm bản quyền chính hãng chúng tôi cung cấp
Bản quyền chính hãng Hóa đơn VAT đầy đủ Đổi key lỗi 30 ngày Vận hành từ 2009 MST 0200994870 Hotline 0225.999.6666