VPS Web Hosting vs Shared Hosting: khi nào nên chuyển từ shared sang VPS

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 VPS Web Hosting vs Shared Hosting

Bạn đang chạy 1-2 site WordPress trên shared hosting, mỗi tháng vài chục nghìn đồng, mọi thứ vẫn ổn. Bỗng dưng load chậm, hay bị "503 Service Unavailable", admin báo "đã vượt CPU limit", hosting provider gửi mail mời upgrade. Đây là dấu hiệu rõ ràng: bạn đang hit trần shared hosting. Bài này tôi nói thẳng khi nào nên chuyển sang VPS, chuyển có khó không, chi phí thật ra sao và quy trình migrate chuẩn để không downtime.

1. Shared hosting là gì - và limit cứng ở đâu

Shared hosting nghĩa là 1 máy chủ vật lý (hoặc 1 VPS lớn) được chia ra cho hàng trăm khách hàng cùng dùng. Mỗi user có 1 account cPanel/DirectAdmin/Plesk, vài GB disk, vài chục GB bandwidth, dùng PHP-FPM share, MySQL share. Provider áp các giới hạn:

  • CPU/process limit: mỗi account thường giới hạn 1-2 core, 100% CPU trong vài giây sẽ bị throttle.
  • RAM: mỗi PHP process bị cap (256-512MB), tổng concurrent process bị giới hạn.
  • I/O: số IOPS bị throttle để không ảnh hưởng tenant khác.
  • Không có root: không thể cài extension PHP custom, không sửa được nginx/apache config global, không cài Redis/Memcached server-level.
  • 1 IP share với hàng trăm site khác: nếu hàng xóm gửi spam, IP có thể bị blacklist - ảnh hưởng email và SEO của bạn.
  • Không cron job dài hạn / worker process: nhiều shared hosting kill process chạy quá vài giây.

Đây không phải shared hosting "xấu" - đây là design tradeoff. Bạn trả rẻ thì phải chấp nhận resource share và limit.

2. 8 dấu hiệu cần upgrade lên VPS

  1. Site load > 3s khi có ~50 user online cùng lúc. Đây là threshold tâm lý: chậm hơn user bounce, Google tụt rank.
  2. Lỗi 503 / 508 (Resource Limit Reached) xuất hiện trong cPanel. Provider đang throttle bạn.
  3. Email từ provider: "Account của bạn vượt CPU quota, vui lòng upgrade hoặc giảm tải".
  4. Bạn cần cài extension PHP custom (imagick, mcrypt, swoole, redis client) mà host không cho.
  5. Bạn cần chạy worker / queue / cron > vài phút (Laravel queue worker, n8n background, scrape job).
  6. Traffic ổn định > 10.000 visit/ngày với content WordPress + WooCommerce hoặc forum / membership site.
  7. Bạn muốn dùng stack hiện đại: Node.js, Python, Go, Rust, Docker - shared hosting đa số chỉ PHP/MySQL.
  8. Bạn cần dedicated IP cho SSL legacy, gửi email marketing, hoặc tránh bị "hàng xóm xấu" làm ảnh hưởng SEO.

Nếu hit từ 2-3 dấu hiệu trở lên, thật sự đến lúc chuyển. Cố ngồi shared nữa sẽ mất traffic, mất conversion, lỗ nhiều hơn tiền tiết kiệm.

3. Chi phí thật: VPS có đắt hơn shared bao nhiêu

Nhiều người sợ VPS đắt. Thực tế giờ giá VPS rất sát với shared hosting cao cấp:

LoạiGiá VND/tháng (tham khảo)Phù hợp với
Shared hosting cơ bản30.000 - 80.000Site giới thiệu, blog cá nhân < 1000 visit/ngày
Shared hosting business / pro150.000 - 350.000Site SME, blog 3-10k visit/ngày
VPS entry (2 vCPU, 2GB RAM)~199.000 (TND VPS 20)Site 5-30k visit/ngày, full control
VPS phổ thông (4 vCPU, 4GB RAM)~299.000 (TND VPS 30)Site 30-100k visit/ngày, WooCommerce
VPS mạnh (4 vCPU, 8GB RAM)~639.000 (TND VPS 50)Site 100-300k visit/ngày, multi-site

So sánh: 1 gói shared "pro" 350k/tháng (cấu hình 4GB RAM dùng chung, 2 CPU dùng chung) thì lên thẳng VPS 30 của TND giá 299.000đ/tháng đã được 4 vCPU + 4GB RAM RIÊNG, Ceph SSD NVMe, IPv4 sạch dedicated, root access. Tức là VPS thực tế còn rẻ hơn shared "cao cấp" mà chất lượng vượt trội.

💡 Mẹo: Đừng so sánh shared 30k với VPS 200k rồi nói "VPS đắt". So sánh đúng phải là shared business class (200-400k) với VPS entry (200-300k). Lúc này VPS thắng tuyệt đối về performance và freedom.

4. Cost ẩn của VPS mà nhiều người không tính

Trung thực: VPS không chỉ có giá thuê. Bạn cần tính thêm:

  • Thời gian setup ban đầu: 2-4 tiếng nếu chưa quen Linux. Cài web server, PHP, MySQL, SSL, firewall, backup script.
  • Thời gian maintain: ~30 phút/tháng cho update OS, monitoring, security patch.
  • Backup: phải tự setup. VPS không tự backup như shared (trừ khi provider có dịch vụ backup add-on).
  • Monitoring: phải tự cài Uptime Kuma, healthcheck, hoặc dùng dịch vụ free (UptimeRobot).

Hai cách giảm pain:

  1. Dùng control panel: cài aaPanel (free) hoặc CyberPanel (free, OpenLiteSpeed) lên VPS - được giao diện cPanel-like, click cài WordPress, SSL, backup trong 2 phút.
  2. Chọn provider có support tiếng Việt 24/7: khi sự cố, support fix trong vài phút thay vì bạn loay hoay vài tiếng.

5. Cost diff giữa VPS quản lý và self-managed

LoạiBạn làmProvider làmPhù hợp với
Self-managed VPSToàn bộ (cài stack, security, backup)Hardware + networkDev biết Linux
VPS + control panel freeVận hành thông qua panelHardware + networkSME có chút technical
Managed VPSChỉ deploy codeOS, security, backup, monitorNgười không muốn touch server, chấp nhận trả nhiều hơn

6. Quy trình migrate từ shared sang VPS - không downtime

Đây là playbook chuẩn, áp dụng cho WordPress (phổ biến nhất). Site khác (Laravel, Joomla, Drupal) tương tự.

Bước 1: Chuẩn bị VPS

# SSH vào VPS Ubuntu 24.04 mới mua
ssh root@your-vps-ip

# Update OS
apt update && apt upgrade -y

# Cách nhanh nhất: cài aaPanel (free, giao diện đẹp)
URL=https://www.aapanel.com/script/install_7.0_en.sh
wget -O install.sh $URL && bash install.sh aapanel

# aaPanel sẽ in URL + user + pass. Mở browser, login.
# Trong panel: cài LNMP stack (Nginx + MySQL + PHP 8.3) bằng 1 click.

Bước 2: Tạo site mới trên VPS

Trong aaPanel: Websites -> Add Site -> nhập domain (vẫn dùng domain cũ), tạo database trống, set PHP 8.3. Panel tự gen Nginx vhost.

Bước 3: Migrate data từ shared

# Trên shared hosting: backup
# Cách 1: dùng plugin All-in-One WP Migration (đơn giản)
# Cách 2: backup thủ công qua cPanel File Manager

# Trên cPanel:
# 1. zip toàn bộ public_html
# 2. export database từ phpMyAdmin (file .sql)
# 3. download cả 2 về local

# Trên VPS, upload và extract:
cd /www/wwwroot/yourdomain.com
# Upload zip qua aaPanel File Manager
unzip backup.zip
chown -R www:www .

# Import database
mysql -u root -p yourdb < /tmp/backup.sql

Bước 4: Test với hosts file (KHÔNG đổi DNS vội)

# Trên máy LOCAL của bạn, sửa /etc/hosts (Linux/Mac) hoặc
# C:\Windows\System32\drivers\etc\hosts (Windows)
# Thêm dòng:
your-vps-ip yourdomain.com www.yourdomain.com

# Mở browser, vào yourdomain.com - bạn sẽ thấy site chạy trên VPS mới
# trong khi user khác vẫn thấy site trên shared cũ

Test mọi trang chính, admin, form liên hệ, checkout (nếu có Woo). Tìm và fix lỗi (thiếu plugin, sai file path, sai constant trong wp-config.php).

Bước 5: Cài SSL trên VPS trước khi đổi DNS

Trong aaPanel: Website -> chọn site -> SSL -> Let's Encrypt -> Apply. Cần DNS đã point tạm bằng A record phụ hoặc dùng DNS-01 challenge. Hoặc dùng Cloudflare flexible SSL tạm thời.

Bước 6: Đổi DNS

# Vào trang quản lý DNS (Cloudflare, GoDaddy, Namecheap, hoặc nhà reg)
# Sửa A record của domain:
# Cũ: A record -> IP shared hosting
# Mới: A record -> IP VPS mới

# Set TTL thấp (300s = 5 phút) để propagation nhanh
# Sau 1-24h DNS sẽ propagate toàn cầu

# Check propagation
dig yourdomain.com +short
nslookup yourdomain.com

Bước 7: Quan sát + giữ shared 1 tuần

Đừng huỷ shared hosting ngay. Giữ thêm 1 tuần để:

  • Đảm bảo DNS đã propagate hết.
  • Có backup phòng khi cần rollback.
  • Tránh mất data từ DB transaction xảy ra trong window switch.
⚠️ Lưu ý: Nếu site có order/booking realtime (WooCommerce, booking system), nên migrate vào giờ thấp điểm (2-4h sáng), bật maintenance mode 10 phút khi import DB lần cuối để không miss order. Plugin "WP Maintenance Mode" làm việc này trong 30 giây.

7. Sau khi lên VPS - tận dụng tối đa

Lên VPS mà vẫn chạy stack y như shared thì phí. Vài nâng cấp gần như free, perf bay cao:

  • Object cache Redis: cài Redis server, cài plugin Redis Object Cache. Giảm 40-80% DB query.
  • OPcache PHP: bật max - giảm CPU per request đáng kể.
  • Page cache server-level: Nginx FastCGI cache hoặc LiteSpeed Cache. Serve hàng nghìn req/s không qua PHP.
  • CDN Cloudflare: free plan đủ dùng. Cache static, hide origin IP, anti-DDoS.
  • Image WebP/AVIF: plugin Imagify hoặc ShortPixel. Giảm bandwidth 50-70%.
  • HTTP/3 + Brotli compression: aaPanel/LiteSpeed bật được dễ.

8. Khi nào VPS chưa phải đáp án

Trung thực: không phải ai cũng cần VPS. Bạn vẫn nên ở shared nếu:

  • Site < 500 visit/tháng và bạn không biết Linux, không muốn học.
  • Site landing page tĩnh, không có form/login, hosting nào cũng được.
  • Budget < 100k/tháng và shared đang chạy ổn.

Còn lại, nếu bạn nghiêm túc với site (kinh doanh, SEO, traffic ổn định), VPS là step đúng. Đặc biệt khi giá entry VPS giờ rẻ ngang shared business class, lý do không upgrade chỉ còn là "ngại học". Mà học Linux + Nginx 2-3 buổi là xong, kiến thức dùng suốt đời.

9. Kết luận

Shared hosting tốt cho khởi đầu. Nhưng khi site bắt đầu có traffic, có business, có yêu cầu performance - VPS là nâng cấp bắt buộc, không phải nice-to-have. Chi phí chênh lệch giờ rất ít, performance gấp 3-5 lần, freedom thì gấp 100 lần. Cứ thử 1 tháng, nếu thấy không hợp thì hạ lại, mất có 200-300k.

Bài viết liên quan

Sẵn sàng upgrade từ shared lên VPS?

TND có dải Cloud VPS từ 199.000đ/tháng (VPS 20: 2 vCPU + 2GB RAM + 40GB Ceph SSD NVMe). IPv4 sạch dedicated, RAM ECC, datacenter VN/US, khởi tạo 60 giây. Support tiếng Việt 24/7 giúp bạn migrate nhanh.

Xem bảng giá Cloud VPS
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