Cara Setup Automated Backup Database PostgreSQL ke S3 Storage di VPS Ubuntu

Cara Setup Automated Backup Database PostgreSQL ke S3 Storage di VPS Ubuntu

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

Related Posts

Comments (0)

Please login to post a comment

No comments yet. Be the first to share your thoughts!

Ilham Shofa

creativity is just connecting things. - Steve Jobs

ilhameid.© 2026