Migrasi VPS Lokal ke Internasional: Checklist & Tools 2024

by Andi Saputra
Migrasi VPS Lokal ke Internasional: Checklist & Tools 2024

Banyak admin Indonesia yang sudah puas dengan VPS lokal tiba-tiba butuh migrasi ke server internasional—entah karena performa, harga, atau ekspansi bisnis. Tapi migrasi VPS bukan cuma copy-paste file. Satu kesalahan kecil bisa berarti downtime berjam-jam, data hilang, atau DNS tidak tersinkronisasi. Artikel ini memandu Anda melalui setiap tahap migrasi, dari persiapan hingga verifikasi, dengan tools dan timeline yang realistis.

Mengapa Migrasi VPS Lokal ke Internasional?

Sebelum mulai, pahami alasan Anda:

  • Performa global: VPS lokal bagus untuk traffic Indonesia, tapi jika pelanggan Anda tersebar di Asia Tenggara atau dunia, latency ke server lokal menjadi bottleneck.
  • Harga skala besar: Provider internasional (DigitalOcean, Linode, Vultr) sering lebih murah untuk spec sama di tier menengah ke atas.
  • Uptime track record: Beberapa provider internasional memiliki SLA 99.99% dengan redundansi yang lebih solid.
  • Skalabilitas: Infrastruktur internasional biasanya lebih fleksibel untuk auto-scaling dan multi-region setup.

Namun ada trade-off: dukungan bahasa Indonesia, latensi ke database lokal, dan regulasi data yang lebih ketat.

Fase 1: Audit & Persiapan (1–2 minggu sebelum migrasi)

1. Dokumentasi VPS Lama

Jangan andalkan memori. Buat checklist:

  • Sistem operasi & versi: uname -a, lsb_release -a
  • Software terinstall: dpkg -l (Debian/Ubuntu) atau rpm -qa (CentOS)
  • Konfigurasi web server: copy /etc/nginx atau /etc/apache2
  • Database: mysqldump, pg_dump, atau mongodump dengan flag --all-databases
  • Cron jobs: crontab -l, /etc/cron.d/, /etc/cron.daily/
  • User & permission: cat /etc/passwd, cat /etc/sudoers
  • Firewall rules: iptables -L -n atau ufw status
  • SSL certificate: lokasi di /etc/ssl/, /etc/letsencrypt/, atau /root/.ssh/
  • Disk usage: du -sh /* untuk tahu berapa besar data yang harus dipindah

Tool gratis: Ansible atau Puppet bisa auto-generate dokumentasi, tapi untuk migrasi satu kali, script bash sederhana sudah cukup.

2. Pilih VPS Internasional Target

Bandingkan minimal 3 provider:

Provider Harga (1 vCPU, 2GB RAM/bulan) Region Asia Uptime SLA Support
DigitalOcean ~$12 Singapura 99.99% Chat (berbayar)
Linode ~$12 Singapura 99.9% Ticket 24/7
Vultr ~$6 Singapura, Tokyo 99.99% Ticket
AWS Lightsail ~$5 Singapura, Tokyo 99.99% Community + Premium
Contabo ~€4 Tidak ada Asia 99.9% Email/Chat

Pilih yang punya region terdekat dengan target audience Anda. Untuk Indonesia, Singapura atau Tokyo adalah optimal.

3. Backup Penuh VPS Lama

# Backup filesystem
tar --exclude=/proc --exclude=/sys --exclude=/dev -czf backup-full.tar.gz /

# Atau lebih selektif (lebih cepat)
tar -czf backup-app.tar.gz /home /var/www /var/lib/mysql /etc

# Backup database terpisah (lebih aman)
mysqldump -u root -p --all-databases > databases.sql

Upload ke object storage (AWS S3, Google Cloud Storage, atau Backblaze B2). Jangan simpan di VPS lama—risikonya terlalu tinggi.

Fase 2: Setup VPS Baru (3–5 hari sebelum cutover)

1. Provision & Konfigurasi Dasar

  • Pilih OS yang sama dengan VPS lama (atau kompatibel, misal Ubuntu 20.04 → 22.04).
  • Jalankan update: apt update && apt upgrade -y
  • Install SSH key dari VPS lama: cat ~/.ssh/authorized_keys
  • Disable root login dan setup firewall:
ufw enable
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp

2. Install Software Stack

Gunakan script provisioning (Bash, Ansible, atau Docker) agar konsisten. Contoh sederhana:

#!/bin/bash
apt install -y nginx mysql-server php-fpm php-mysql certbot python3-certbot-nginx
systemctl enable nginx mysql-server php-fpm

3. Restore Database & File

# Download dari backup storage
aws s3 cp s3://bucket/databases.sql . --region us-east-1

# Restore MySQL
mysql -u root -p < databases.sql

# Download & extract aplikasi
tar -xzf backup-app.tar.gz -C /

# Fix permission
chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html

4. Test di Private Network (Jika Ada)

Provider seperti DigitalOcean dan AWS punya private network. Gunakan untuk test koneksi database, API, dll sebelum public. Jika stack Anda menggunakan WordPress, pastikan juga konfigurasi WordPress object cache sudah disesuaikan di VPS baru agar performa tidak turun setelah migrasi.

Fase 3: Validasi Pre-Cutover (1 hari sebelum)

Testing Checklist

  • Web server: akses via IP publik VPS baru, pastikan halaman muncul
  • Database connectivity: dari aplikasi ke database
  • File permissions: aplikasi bisa baca/tulis file yang diperlukan
  • Cron jobs: jalankan manual, lihat output di log
  • SSL certificate: jika pakai Let's Encrypt, renew di VPS baru
  • Email: jika ada mail server, test SMTP/POP3
  • External API: jika aplikasi panggil API pihak ketiga, test koneksi

Tool: Uptime Robot atau Pingdom bisa monitor VPS baru selama 24 jam pre-cutover.

Fase 4: Cutover (Hari Migrasi)

Timeline Realistis

Untuk aplikasi kecil (< 5GB):

  • Jam 00:00–02:00: Lock aplikasi, backup final, test VPS baru
  • Jam 02:00–02:30: Update DNS (TTL sudah diturunkan sebelumnya ke 300 detik)
  • Jam 02:30–04:00: Propagasi DNS, monitor error log
  • Jam 04:00: Unlock aplikasi, full test
  • Downtime: ~2–3 jam

Untuk aplikasi besar (> 20GB):

  • Pertimbangkan rsync incremental atau live migration tools seperti Migrate for Compute Engine (Google) atau AWS DMS.
  • Downtime bisa dikurangi jadi 15–30 menit.

Langkah-Langkah Cutover

  1. Turunkan TTL DNS 24 jam sebelumnya (dari 3600 ke 300 detik)
  2. Maintenance mode: set aplikasi ke read-only atau tampilkan "maintenance" page
  3. Sync final: rsync -avz --delete user@old-vps:/var/www/ /var/www/
  4. Database sync: backup & restore final di VPS baru
  5. Update DNS A record ke IP VPS baru
  6. Monitor propagasi: gunakan nslookup atau dig untuk verifikasi
  7. Test dari berbagai lokasi: gunakan online tools seperti whatsmydns.net
  8. Unlock aplikasi dan monitor error log selama 2 jam pertama

Fase 5: Post-Cutover & Rollback Plan

Monitoring Intensif (Jam Pertama)

  • Uptime monitoring: aktifkan alert untuk downtime
  • Error logs: tail -f /var/log/nginx/error.log, tail -f /var/log/mysql/error.log
  • Resource usage: top, htop, atau dashboard provider
  • User feedback: siapkan channel support untuk report masalah

Rollback Plan (Jika Terjadi Masalah)

Jangan panik. Jika ada issue besar dalam 1 jam pertama:

  1. Revert DNS ke IP VPS lama (instant)
  2. Debug di VPS baru sambil aplikasi tetap jalan di VPS lama
  3. Cutover ulang setelah issue fixed (biasanya 2–4 jam kemudian)

Oleh karena itu, jangan hapus VPS lama selama 48 jam pertama. Biaya 48 jam hosting lama jauh lebih murah daripada downtime produksi.

Tools & Resource Gratis

  • Backup & Restore: tar, mysqldump, rsync
  • Monitoring: Uptime Robot (free tier), Grafana + Prometheus
  • DNS Propagation: whatsmydns.net, dnschecker.org
  • Performance Test: ab (Apache Bench), wrk, atau k6
  • Dokumentasi: Ansible playbooks atau simple bash scripts

Pitfall Sering Terjadi

  1. Lupa update DNS TTL sebelumnya: DNS baru baru tersebar setelah berjam-jam, bukan menit. Jika Anda ingin memahami lebih dalam bagaimana crawler dan DNS propagation memengaruhi visibilitas situs, panduan crawl budget dari seokita.id bisa jadi referensi berguna.
  2. Tidak backup database terpisah: file backup besar jadi corrupt atau tidak lengkap.
  3. Lupa update firewall rules: aplikasi mati karena port 3306 atau 6379 tidak terbuka.
  4. Cron jobs tidak jalan: schedule tidak tersinkronisasi, data tidak update.
  5. File permission salah: aplikasi tidak bisa tulis ke direktori upload atau cache.

Vonis

Migrasi VPS lokal ke internasional bukan sekadar upload file. Butuh dokumentasi mendetail, testing menyeluruh, dan monitoring intensif. Jika aplikasi Anda kritis, alokasikan 2–3 minggu untuk persiapan, testing, dan rollback plan. VPS internasional seperti DigitalOcean atau Linode cocok untuk ini karena dokumentasi lengkap dan support responsif.

Untuk yang pertama kali migrasi dan tidak yakin, pertimbangkan minta bantuan managed migration service (biasanya Rp 1–5 juta tergantung kompleksitas). Investasi kecil itu bisa menghemat puluhan juta rupiah dari downtime yang tidak perlu.

Runner-up: Jika aplikasi Anda masih kecil dan traffic lokal, tetap di VPS lokal dulu. Upgrade ke internasional hanya setelah traffic atau ekspansi global benar-benar terbukti perlu.