Mengapa Automated Backup Penting?
Data loss adalah mimpi buruk setiap developer dan system administrator. Kerusakan hardware, kesalahan perintah terminal, atau serangan siber bisa menghilangkan data produksi dalam sekejap. Strategi backup terotomatisasi ke lokasi off-site seperti S3 Storage adalah solusi terbaik untuk disaster recovery.
Prasyarat
Sebelum memulai, pastikan Anda menyiapkan:
- VPS Ubuntu (versi 20.04, 22.04, atau 24.04 LTS)
- Database PostgreSQL aktif
- Akun S3-compatible Storage (AWS S3, Cloudflare R2, atau DigitalOcean Spaces)
- Akses root atau user dengan hak akses sudo
1. Install dan Konfigurasi AWS CLI
AWS CLI digunakan untuk mengirim file backup ke S3 Storage secara terprogram.
Update repository dan install AWS CLI:
sudo apt update sudo apt install -y awscli
Konfigurasikan kredensial S3 Anda:
aws configure
Isi Access Key, Secret Key, Region, dan Output Format sesuai penyedia S3 Storage Anda.
2. Buat Script Backup PostgreSQL
Buat berkas bash script yang akan menjalankan perintah dump, enkripsi berkas, dan unggah ke cloud storage.
Buat berkas script baru:
sudo nano /usr/local/bin/pg_backup.sh
Masukkan konfigurasi script berikut:
#!/bin/bash TIMESTAMP=$(date +"%Y%m%d_%H%M%S") BACKUP_DIR="/tmp/pg_backups" DB_NAME="nama_database_anda" DB_USER="postgres" S3_BUCKET="s3://nama-bucket-anda/backups" PASSPHRASE="KunciEnkripsiRahasia123" mkdir -p $BACKUP_DIR PGPASSWORD="password_db_anda" pg_dump -U $DB_USER -h localhost $DB_NAME | gpg -c --batch --passphrase "$PASSPHRASE" -o $BACKUP_DIR/db_$TIMESTAMP.sql.gpg aws s3 cp $BACKUP_DIR/db_$TIMESTAMP.sql.gpg $S3_BUCKET/db_$TIMESTAMP.sql.gpg rm -rf $BACKUP_DIR
Beri hak akses eksekusi dan batasi akses berkas demi keamanan kredensial:
sudo chmod 700 /usr/local/bin/pg_backup.sh
3. Uji Coba Script Secara Manual
Pastikan script berjalan tanpa error sebelum dimasukkan ke otomatisasi jadwal:
sudo /usr/local/bin/pg_backup.sh
Cek bucket S3 Anda untuk memastikan berkas terenkripsi dengan ekstensi .sql.gpg berhasil diunggah.
4. Otomatisasi dengan Cron Job
Gunakan crontab untuk menjalankan script backup secara berkala, misalnya setiap hari pukul 02.00 malam.
Buka editor crontab:
crontab -e
Tambahkan baris berikut di bagian paling bawah:
0 2 * * * /usr/local/bin/pg_backup.sh > /dev/null 2>&1
Checklist Keamanan & Rangkuman
Peringatan Keamanan: Jangan pernah menyimpan password atau passphrase di repository publik. Amankan izin akses file script dengan chmod 700 agar hanya user root/pemilik yang bisa membaca kredensial.
- AWS CLI terkonfigurasi dengan bucket tujuan
- Script bash berfungsi melakukan pg_dump dan enkripsi GPG
- Izin akses file script telah dibatasi (chmod 700)
- Cron job terpasang dan aktif berjalan otomatis
