Halo, Rekan ArtonLabs. Sebelum membaca lebih jauh, satu pertanyaan kecil: kapan terakhir kali backup Anda benar-benar dicoba dipulihkan?
Hampir semua orang punya backup. Yang lebih jarang adalah backup yang berjalan sendiri, disimpan di tempat lain, dan sudah pernah dicoba dipulihkan. Tiga hal itu yang kami cari, dan VinzaPanel menyediakannya tanpa perlu banyak diutak-atik. Tulisan ini membahas fiturnya, lalu cara menyusun kebijakan backup yang masuk akal untuk situs berukuran kecil sampai menengah.
Berjalan sendiri
Backup bisa dijadwalkan per website maupun per database, dijalankan oleh worker latar panel, dengan riwayat yang bisa ditinjau: kapan berjalan, berapa ukurannya, dan apakah berhasil. Anda juga bisa memicunya kapan saja. Kami membiasakan diri menekan tombol backup sebelum pembaruan besar, dan kebiasaan kecil itu sudah beberapa kali menyelamatkan akhir pekan.
Yang sering terlupa adalah retensi. Backup harian yang disimpan selamanya akan memenuhi penyimpanan dalam beberapa bulan. Tentukan berapa salinan yang disimpan, misalnya tujuh harian dan empat mingguan, dan biarkan yang lebih lama dihapus.
Ke penyimpanan yang Anda pilih
Plugin S3 Backup bekerja dengan penyimpanan apa pun yang kompatibel S3: AWS S3, Cloudflare R2, MinIO, Wasabi, Backblaze B2, dan sebagainya. Anda yang memegang kendali lokasi dan biayanya. Untuk situs kecil, biayanya sering kali hanya beberapa ribu rupiah per bulan; R2 dan B2 bahkan tidak menagih biaya keluar data, yang penting saat Anda benar-benar perlu memulihkan. Pemulihan dari bucket dilakukan dari panel, bukan lewat deretan perintah di terminal.
Untuk tim kecil atau pengguna perorangan, plugin Google Drive Backup menghubungkan Google Drive milik masing-masing pengguna lewat OAuth. Backup masuk ke Drive orang itu sendiri, bukan ke akun bersama, dan pemulihannya dari tempat yang sama. Ini cocok untuk klien yang ingin memegang salinan datanya sendiri tanpa harus belajar apa itu bucket.
Database
MySQL dan MariaDB ditangani dari inti panel. PostgreSQL dan MongoDB lewat plugin masing-masing. Untuk MongoDB, panel memakai mongodump standar, jadi arsipnya bisa dipulihkan dengan perkakas resmi di mana pun, tidak terkunci pada panel. Pengelolaan tabel, koleksi, pengguna, dan indeks juga ada di UI.
Satu catatan dari pengalaman memindahkan situs antar server: dump SQL biasa kadang tidak cukup untuk aplikasi yang memakai tipe data khusus, misalnya UUID pada versi MariaDB yang berbeda. Untuk aplikasi Django, kami lebih percaya pada ekspor di tingkat aplikasi ditambah dump database, bukan salah satunya saja. Backup berkas dan backup database sebaiknya dibuat berpasangan pada waktu yang berdekatan, supaya keduanya menggambarkan keadaan yang sama.
Kebijakan 3-2-1 yang realistis
Aturan lama 3-2-1 masih bagus: tiga salinan, dua jenis media, satu di luar lokasi. Dengan VinzaPanel, itu diterjemahkan menjadi: data asli di server, backup lokal terjadwal di server yang sama untuk pemulihan cepat, dan backup offsite ke S3 atau Google Drive untuk bencana yang lebih besar. Jadwalkan yang lokal lebih sering, misalnya harian, dan yang offsite sedikit lebih jarang kalau biaya menjadi pertimbangan.
Contoh kebijakan yang kami anggap cukup untuk toko online kecil: backup berkas dan database setiap malam ke server yang sama, disimpan tujuh hari; salinan offsite ke R2 atau B2 setiap malam juga, disimpan tiga puluh hari; dan satu backup manual sebelum setiap pembaruan besar, yang disimpan sampai Anda yakin pembaruannya aman. Biaya penyimpanannya untuk situs berukuran beberapa gigabyte jarang melewati harga secangkir kopi per bulan.
Dan ini yang paling sering dilewati: coba pulihkan. Sekali sebulan, ambil satu backup dan pulihkan ke situs uji atau ke alamat pratinjau. Kalau prosesnya tidak pernah dicoba, Anda tidak punya backup; Anda punya harapan.
Tahu lebih dulu daripada pengunjung
Backup adalah jaring pengaman; pemantauan adalah alarm. Plugin Uptime & SSL Monitor memeriksa ketersediaan dan waktu respons website, dan memberi peringatan sebelum sertifikat kedaluwarsa. Plugin Monitor menampilkan CPU, RAM, disk, dan jaringan secara langsung. Dengan keduanya, masalah biasanya kami ketahui sebelum ada yang mengeluh. Disk yang hampir penuh, misalnya, adalah penyebab backup gagal yang paling membosankan sekaligus paling sering. Atur peringatan pada 80 persen, bukan 95, supaya masih ada waktu untuk membersihkan arsip lama sebelum backup berikutnya berjalan.
Yang sering ditanyakan
Apakah backup memperlambat situs? Backup berjalan di latar sebagai proses terpisah. Untuk situs besar, jadwalkan di jam sepi; untuk situs kecil, Anda tidak akan menyadarinya.
Apakah backup terenkripsi? Sambungan ke S3 dan Google Drive memakai HTTPS. Untuk enkripsi saat tersimpan, pakai fitur enkripsi sisi server yang disediakan penyimpanan Anda; hampir semua layanan S3 menyediakannya.
Bisakah backup dipulihkan ke server lain? Bisa. Itulah gunanya offsite: server lama boleh hilang sama sekali, dan situs dipulihkan ke server baru dengan VinzaPanel yang baru dipasang.
Apa saja yang perlu dibackup
Berkas website, jelas. Database, jelas. Yang sering terlewat: berkas .env atau konfigurasi aplikasi yang berisi kunci dan sandi, karena ia biasanya tidak masuk Git. Zona DNS, yang bisa diekspor dalam format BIND dari halaman domain. Akun email dan kotak suratnya, kalau Anda menjalankan mail server sendiri. Dan daftar plugin serta pengaturannya, supaya server pengganti bisa disusun ulang dengan cepat. Kami menyimpan daftar ini sebagai catatan sederhana di tempat yang tidak berada di server itu sendiri.
Memulihkan satu berkas, bukan seluruh situs
Kebanyakan pemulihan di dunia nyata bukan karena server hilang, melainkan karena satu berkas tertimpa atau satu tabel terhapus. Karena backup berkas dan database di VinzaPanel disimpan terpisah, Anda bisa memulihkan database saja tanpa menyentuh berkas, atau mengambil satu folder dari arsip tanpa mengembalikan seluruh situs ke keadaan kemarin. Untuk MongoDB dan PostgreSQL, arsipnya memakai format perkakas resmi, jadi pemulihan sebagian bisa dilakukan dengan perintah standar kalau UI-nya belum mencakup kasus Anda.
Backup terjadwal tersedia mulai paket Starter, dan backup offsite ke Google Drive atau S3 ada di paket Profesional. Perbandingan paketnya bisa dilihat di halaman harga VinzaPanel. Kalau Anda belum punya backup offsite sama sekali, menurut kami ini alasan yang cukup untuk mulai hari ini.
Semoga setelah ini tidur Anda lebih nyenyak, Rekan ArtonLabs. Kalau butuh bantuan menyusun kebijakan backup, kami siap lewat halaman kontak.