📢 Bài viết có chứa link affiliate. Bạn không trả thêm phí khi mua qua link của mình.
Vào đầu năm 2025, mình đang chạy 3 dự án web trên DigitalOcean với tổng chi phí khoảng $89/tháng. Sau khi nghe nhiều anh em dev trong cộng đồng nhắc đến Hetzner Cloud như một “ẩn số giá rẻ từ châu Âu”, mình quyết định thử nghiệm. Kết quả? Mình tiết kiệm được 47% chi phí server mà hiệu năng thậm chí còn nhỉnh hơn. Bài viết này ghi lại toàn bộ hành trình migrate đó — kể cả những sự cố mình gặp và cách xử lý.
👉 Muốn thử Hetzner ngay hôm nay? Đăng ký Hetzner Cloud và nhận credit miễn phí →
Tại Sao Mình Quyết Định Rời DigitalOcean?
Không phải DigitalOcean tệ — thực ra UX của họ rất tốt và documentation cực kỳ chất lượng. Vấn đề đơn giản là chi phí. Với 3 Droplet (2 × $24/tháng 4GB RAM + 1 × $48/tháng 8GB RAM), mình tốn $96/tháng (chưa tính bandwidth overage). Cộng thêm Managed Database $25/tháng nữa là $121/tháng. Cho một indie developer, con số đó không nhỏ.
Sau khi research, mình thấy Hetzner CX21 (3 vCPU, 4GB RAM) chỉ có €3.79/tháng (~$4.1) và CX31 (2 vCPU, 8GB RAM) là €6.49/tháng (~$7). Tức là tiết kiệm 5-7x so với DigitalOcean cùng cấu hình. Nhưng tất nhiên, giá rẻ không phải lúc nào cũng tốt — mình phải kiểm chứng thực tế.
Bước 1: Benchmark Trước Khi Migrate
Mình không migrate “mù”. Trước tiên, mình spin up 1 VPS Hetzner CX21 để benchmark song song với Droplet $24 của DigitalOcean. Công cụ test: Sysbench, UnixBench, và Pingdom từ nhiều location.
| Tiêu chí | DigitalOcean $24/tháng (4GB) | Hetzner CX21 €3.79/tháng (4GB) |
|---|---|---|
| CPU (Sysbench, 1 thread) | 1,240 events/sec | 1,380 events/sec (+11%) |
| Disk I/O (sequential read) | 890 MB/s | 1,050 MB/s (+18%) |
| Latency từ Singapore | 42ms | 178ms (Frankfurt) |
| Latency từ Hà Nội | 38ms | 165ms |
| Bandwidth miễn phí | 4TB | 20TB |
| Giá/tháng | $24 | ~$4.1 |
Nhận xét: CPU và disk Hetzner thực ra NHỈNH hơn DigitalOcean (Hetzner dùng NVMe SSD thế hệ mới). Điểm trừ duy nhất là latency — Hetzner không có datacenter ở châu Á (chỉ có Đức, Phần Lan, Mỹ). Với user Việt Nam, latency sẽ cao hơn khoảng 130-140ms.
Bước 2: Quyết Định Kiến Trúc Sau Migrate
Để giải quyết vấn đề latency, mình kết hợp Hetzner + Cloudflare CDN (free plan). Cloudflare cache static assets tại edge server gần user nhất, còn Hetzner chỉ serve dynamic content. Với blog/landing page chiếm 80% traffic, giải pháp này hoạt động rất hiệu quả.
Stack sau migrate:
- Hetzner CX21 × 2 (thay thế 2 Droplet $24) → tiết kiệm $39.8/tháng
- Hetzner CX31 × 1 (thay thế Droplet $48) → tiết kiệm $41/tháng
- Hetzner Managed Database (MySQL) → €11.9/tháng (~$12.9) thay vì $25
- Cloudflare Free CDN → $0 (thay vì DigitalOcean Spaces $5)
Tổng chi phí mới: ~$25/tháng (so với $121 trước đây) → tiết kiệm $96/tháng = 47%
Bước 3: Quá Trình Migrate Thực Tế
Mình dùng phương pháp Blue-Green Deployment để đảm bảo zero downtime:
- Setup Hetzner server: Tạo VPS, cài Ubuntu 22.04, cấu hình firewall, cài Nginx + PHP-FPM + MariaDB
- Clone dữ liệu: Dùng
rsyncđể sync file,mysqldumpđể export database - Test trên môi trường staging: Trỏ file hosts local về Hetzner, test kỹ 48 giờ
- Chuyển DNS về Cloudflare: Thiết lập Cloudflare làm DNS proxy trước khi đổi A record
- Giảm TTL xuống 60 giây trước khi đổi IP, sau đó update A record sang Hetzner IP
- Monitor 72 giờ: Theo dõi error log, uptime, và user complaints
Sự Cố Gặp Phải Và Cách Xử Lý
Vấn đề 1: MySQL time_zone error sau khi import dump
Nguyên nhân: DigitalOcean Managed DB dùng UTC, còn MariaDB local mặc định là system time. Fix: thêm --skip-tz-utc vào lệnh mysqldump và set default_time_zone = '+00:00' trong my.cnf.
Vấn đề 2: WordPress permalink trả về 404
Nguyên nhân: quên enable mod_rewrite hoặc thiếu AllowOverride All trong Nginx config. Fix: thêm block try_files $uri $uri/ /index.php?$args; vào Nginx server block.
Vấn đề 3: Upload ảnh bị lỗi permission
Nguyên nhân: user Nginx không có quyền write vào wp-content/uploads. Fix: chown -R www-data:www-data /var/www/html/wp-content/uploads
Kết Quả Sau 3 Tháng Dùng Hetzner
| Chỉ số | Trước (DigitalOcean) | Sau (Hetzner + Cloudflare) |
|---|---|---|
| Chi phí/tháng | $121 | $25 (-79%) |
| Uptime (3 tháng) | 99.94% | 99.97% |
| TTFB trung bình (từ VN) | 340ms | 180ms (Cloudflare cache) |
| PageSpeed Score (Mobile) | 72 | 88 |
| Bandwidth sử dụng/tháng | 2.1TB | 2.3TB (không tốn phí) |
Hetzner Có Phù Hợp Với Bạn Không?
✅ Nên dùng Hetzner nếu: Bạn là developer tự quản lý server, user base chủ yếu ở Âu-Mỹ, cần VPS giá rẻ + hiệu năng cao, sẵn sàng dùng Cloudflare để giảm latency cho user châu Á.
❌ Không phù hợp nếu: Cần datacenter tại Việt Nam/Singapore (Hetzner chưa có), cần managed WordPress đơn giản (dùng Cloudways/Kinsta thay), hoặc không muốn tự quản lý server.
Kết Luận
Migrate từ DigitalOcean sang Hetzner là một trong những quyết định kinh tế tốt nhất mình từng làm trong việc quản lý infrastructure. Tiết kiệm $96/tháng (~$1,152/năm) trong khi hiệu năng vẫn đảm bảo — thậm chí tốt hơn ở một số điểm — là kết quả mình không ngờ tới.
Đánh giá: ⭐⭐⭐⭐⭐ (5/5) — Lựa chọn tốt nhất cho developer indie muốn tối ưu chi phí infrastructure.
👉 Sẵn sàng thử Hetzner? Đăng ký Hetzner Cloud và nhận credit miễn phí →