Migration từ Shared Hosting lên VPS: Checklist đầy đủ không downtime
Tại sao cần migrate từ Shared Hosting lên VPS?
Khi website của bạn phát triển, Shared Hosting có thể trở thành rào cản cho hiệu suất và khả năng mở rộng. Virtual Private Server (VPS) cung cấp tài nguyên độc lập, quyền kiểm soát cao hơn và khả năng tùy chỉnh linh hoạt. Tuy nhiên, quá trình migration cần được thực hiện cẩn thận để tránh downtime và mất dữ liệu.
Bài viết này sẽ hướng dẫn bạn một quy trình migration hoàn chỉnh với checklist chi tiết, đảm bảo quá trình chuyển đổi diễn ra suôn sẻ và an toàn.
Giai đoạn 1: Chuẩn bị trước khi Migration
1.1. Đánh giá và lựa chọn VPS phù hợp
Trước khi bắt đầu, bạn cần xác định cấu hình VPS phù hợp với nhu cầu:
- CPU và RAM: Phân tích lưu lượng truy cập hiện tại và dự đoán tăng trưởng
- Dung lượng lưu trữ: Tính toán tổng dung lượng database, files và dự phòng 30-50%
- Băng thông: Đảm bảo đủ cho traffic peak
- Vị trí server: Chọn datacenter gần với đối tượng người dùng chính
- Hệ điều hành: Ubuntu 22.04 LTS hoặc CentOS 8 được khuyến nghị
1.2. Backup toàn bộ dữ liệu
Đây là bước quan trọng nhất trong toàn bộ quy trình:
- Backup database: Sử dụng phpMyAdmin hoặc mysqldump để export toàn bộ databases
- Backup files: Download toàn bộ thư mục public_html qua FTP/SFTP
- Backup email: Export tất cả email accounts nếu sử dụng email hosting
- Lưu trữ cấu hình: Ghi lại các settings quan trọng (PHP version, extensions, cron jobs)
- Kiểm tra backup: Verify tính toàn vẹn của các file backup
1.3. Kiểm tra dependencies và requirements
Lập danh sách đầy đủ các yêu cầu kỹ thuật:
- Phiên bản PHP và các extensions cần thiết
- Phiên bản MySQL/MariaDB
- SSL certificates và cấu hình HTTPS
- Các services bổ sung: Redis, Memcached, Elasticsearch
- Cron jobs và scheduled tasks
- Third-party integrations và API keys
Giai đoạn 2: Thiết lập VPS mới
2.1. Cấu hình server cơ bản
Sau khi có quyền truy cập VPS, thực hiện các bước sau:
- Update hệ thống:
apt update && apt upgrade -y(Ubuntu) hoặcyum update -y(CentOS) - Cấu hình firewall: Mở các ports cần thiết (80, 443, 22)
- Tạo user mới: Không sử dụng root cho các tác vụ thường ngày
- Cài đặt fail2ban: Bảo vệ khỏi brute-force attacks
- Cấu hình SSH: Disable root login, sử dụng SSH keys
2.2. Cài đặt Web Server Stack
Lựa chọn và cài đặt stack phù hợp với website:
Option 1: LAMP Stack (Linux, Apache, MySQL, PHP)
- Cài đặt Apache2 và cấu hình virtual hosts
- Cài đặt MySQL/MariaDB và secure installation
- Cài đặt PHP với các extensions cần thiết
Option 2: LEMP Stack (Linux, Nginx, MySQL, PHP)
- Cài đặt Nginx với cấu hình tối ưu
- Cài đặt PHP-FPM cho hiệu suất cao hơn
- Cấu hình Nginx server blocks
2.3. Cài đặt Control Panel (Optional)
Nếu muốn giao diện quản lý đơn giản hơn, cân nhắc:
- cPanel/WHM: Phổ biến nhưng có phí license
- Webmin: Miễn phí, giao diện web-based
- VestaCP/HestiaCP: Miễn phí, nhẹ và dễ sử dụng
- CyberPanel: Miễn phí, tích hợp OpenLiteSpeed
Giai đoạn 3: Migration dữ liệu
3.1. Transfer files
Có nhiều phương pháp để transfer files:
Phương pháp 1: Direct transfer từ Shared Hosting
- SSH vào VPS mới
- Sử dụng
wgethoặcrsyncđể pull files trực tiếp từ shared hosting - Giải nén và đặt vào thư mục web root
Phương pháp 2: Upload qua FTP/SFTP
- Sử dụng FileZilla hoặc WinSCP
- Upload files từ backup local lên VPS
- Phù hợp cho website nhỏ và trung bình
3.2. Import database
Thực hiện import database một cách an toàn:
- Tạo database mới và user trên VPS
- Import SQL file:
mysql -u username -p database_name < backup.sql - Verify data integrity sau khi import
- Update database credentials trong config files
3.3. Cấu hình website
Điều chỉnh các settings cho môi trường mới:
- Update file cấu hình (wp-config.php, .env, config.php)
- Cấu hình virtual host/server block
- Set đúng permissions cho files và folders (755 cho folders, 644 cho files)
- Cài đặt SSL certificate (Let's Encrypt miễn phí)
- Test website trên VPS bằng cách sửa file hosts local
Giai đoạn 4: Testing và DNS Migration
4.1. Testing kỹ lưỡng
Trước khi chuyển DNS, kiểm tra kỹ càng:
- Functionality testing: Test tất cả features, forms, checkout process
- Performance testing: Kiểm tra page load speed, database queries
- Mobile responsiveness: Test trên các thiết bị khác nhau
- SSL/HTTPS: Verify certificate hoạt động đúng
- Email testing: Gửi và nhận email test
- Cron jobs: Verify scheduled tasks chạy đúng
4.2. Giảm TTL của DNS records
24-48 giờ trước khi migration:
- Đăng nhập vào DNS management panel
- Giảm TTL (Time To Live) xuống 300 seconds (5 phút)
- Điều này giúp DNS propagation nhanh hơn khi bạn thay đổi records
4.3. Chuyển đổi DNS
Đây là bước chuyển đổi chính thức:
- Update A record trỏ về IP của VPS mới
- Update CNAME records nếu cần
- Giữ nguyên MX records nếu email hosting riêng
- Monitor DNS propagation qua các tools như whatsmydns.net
Giai đoạn 5: Post-Migration
5.1. Monitoring và optimization
Sau khi migration hoàn tất:
- Monitor uptime: Sử dụng tools như UptimeRobot, Pingdom
- Check error logs: Theo dõi Apache/Nginx error logs
- Performance monitoring: Cài đặt New Relic hoặc similar tools
- Security scan: Chạy security audit với tools như Sucuri
5.2. Tối ưu hóa VPS
Cải thiện hiệu suất sau migration:
- Cài đặt caching (Redis, Memcached, Varnish)
- Enable OPcache cho PHP
- Cấu hình CDN (Cloudflare, StackPath)
- Optimize database queries và indexes
- Enable Gzip compression
- Implement browser caching
5.3. Backup và disaster recovery
Thiết lập quy trình backup tự động:
- Cấu hình automated daily backups
- Store backups ở location khác (S3, Google Cloud Storage)
- Test restore process định kỳ
- Document disaster recovery procedures
Checklist tổng hợp Migration không Downtime
Pre-Migration (1-2 tuần trước):
- ☐ Đánh giá requirements và chọn VPS
- ☐ Backup toàn bộ dữ liệu
- ☐ Document current configuration
- ☐ Chuẩn bị VPS mới và cài đặt stack
Migration Week:
- ☐ Giảm DNS TTL xuống 300s
- ☐ Transfer files và database
- ☐ Cấu hình website trên VPS
- ☐ Testing kỹ lưỡng
- ☐ Setup SSL certificates
Migration Day:
- ☐ Final backup trên shared hosting
- ☐ Sync latest changes
- ☐ Update DNS records
- ☐ Monitor DNS propagation
- ☐ Test từ multiple locations
Post-Migration (1-2 tuần sau):
- ☐ Monitor uptime và performance
- ☐ Check error logs daily
- ☐ Optimize và fine-tune
- ☐ Setup automated backups
- ☐ Restore DNS TTL về normal
- ☐ Cancel shared hosting (sau 30 ngày)
Kết luận
Migration từ Shared Hosting lên VPS là một bước quan trọng trong hành trình phát triển website. Với checklist chi tiết và quy trình được lập kế hoạch kỹ lưỡng, bạn hoàn toàn có thể thực hiện migration không downtime và đảm bảo an toàn dữ liệu.
Điều quan trọng nhất là không vội vàng - dành thời gian để chuẩn bị kỹ càng, test kỹ lưỡng và có backup plan cho mọi tình huống. Nếu gặp khó khăn, đừng ngại tham khảo ý kiến từ chuyên gia hoặc cộng đồng technical.
Chúc bạn migration thành công và tận hưởng sức mạnh của VPS!
