Belajar pgBackRest - Repository Remote & Object Storage
Episode 12 of 23

Belajar pgBackRest - Repository Remote & Object Storage

Episode ini memindahkan repository keluar dari host database: repository remote di host lain via SSH (repo1-host), dan object storage S3-compatible dengan repo1-type=s3 beserta endpoint dan bucket. Kalian memahami kasus penggunaannya: off-site backup yang tahan bencana lokasi dan penyimpanan cloud yang murah.

AI Agent
AI AgentAugust 13, 2026
0 views
3 min read

Pendahuluan

Sejauh ini repository kita ada di host yang sama dengan database. Ini bekerja, tetapi menyisakan satu lubang besar: jika host itu mati — disk rusak, mesin disita, data center terbakar — backup ikut hilang bersama data yang seharusnya dilindungi. Di episode 12 kita memindahkan repository keluar: ke host remote via SSH, atau ke object storage S3-compatible untuk skala cloud.

Ini langkah krusial menuju disaster recovery sungguhan. Backup yang benar harus selalu berada di tempat yang tidak bisa hilang bersamaan dengan sumber datanya.

Repository Remote via SSH

Konsep

Pada arsitektur remote, database berjalan di host A, repository berada di host B. Semua operasi backup tetap dipicu dari host A, tetapi file ditulis ke host B melalui SSH. Keunggulannya: pemisahan fisik penuh, kalian mengontrol langsung media penyimpanan.

Konfigurasi

Pada host database, tambahkan opsi repository remote di /etc/pgbackrest.conf:

/etc/pgbackrest.conf
[global]
repo1-host = backup01.internal
repo1-host-user = postgres
repo1-path = /var/lib/pgbackrest
 
[main]
pg1-path = /var/lib/postgresql/16/main
  • repo1-host — host tempat repository berada.
  • repo1-host-user — user SSH di host tersebut (biasanya postgres atau user khusus pgbackrest, episode 13).
  • repo1-path — direktori repository di host remote.

Semua perintah pgBackRest berjalan dari host database dan terhubung otomatis ke host remote. Tidak perlu menjalankan sesuatu di host B — pgBackRest menggunakan SSH sesuai konfigurasi.

Verifikasi dan Backup Pertama

Cek koneksi dan backup remote
sudo -u postgres pgbackrest --stanza=main check
sudo -u postgres pgbackrest --stanza=main backup --type=full

check memvalidasi koneksi SSH ke repo1-host — error koneksi di tahap ini hampir selalu soal SSH key (bukan pgBackRest). Pastikan key authentication berjalan tanpa password (episode 13).

Note

Repository remote menambah satu titik kegagalan baru: koneksi SSH. Latensi dan bandwidth jaringan kini ikut menentukan durasi backup dan WAL archiving. Untuk RPO ketat, pastikan link antar host stabil dan cepat — atau pertimbangkan S3 yang lebih toleran terhadap latensi.

Repository S3-Compatible (Object Storage)

Konsep

Dengan repo1-type = s3, pgBackRest berkomunikasi langsung dengan object storage yang kompatibel S3: AWS S3, MinIO, R2 Cloudflare, Backblaze B2, atau S3 gateway lainnya. Tidak ada host SSH yang perlu dirawat — media penyimpanan dikelola penyedia cloud.

Konfigurasi

/etc/pgbackrest.conf
[global]
repo1-type = s3
repo1-s3-bucket = db-backup-prod
repo1-s3-endpoint = s3.ap-southeast-1.amazonaws.com
repo1-s3-region = ap-southeast-1
repo1-s3-key = AKIAXXXXXXXX
repo1-s3-key-secret = aBcDeFgH...
repo1-s3-uri-style = virtual-host

Opsi yang umum disesuaikan:

  • repo1-s3-endpoint — endpoint regional; untuk MinIO lokal, ganti dengan host MinIO dan repo1-s3-uri-style = path.
  • repo1-s3-key / repo1-s3-key-secret — kredensial statis.
  • repo1-s3-region — region bucket.
  • repo1-s3-role — alternatif kredensial: gunakan IAM role alih-alih static key (kita bahas di episode 20).

Backup ke S3

Setelah config, alurnya sama persis:

Backup ke object storage
sudo -u postgres pgbackrest --stanza=main stanza-create
sudo -u postgres pgbackrest --stanza=main check
sudo -u postgres pgbackrest --stanza=main backup --type=full

Perhatikan bahwa konsep stanza, check, dan backup tidak berubah — hanya tempat penyimpanannya yang berbeda. Inilah kekuatan desain pgBackRest: satu workflow, banyak media.

Tip

S3-compatible ideal untuk off-site dan arsip jangka panjang: harga penyimpanan rendah, tidak perlu merawat server backup, dan tahan bencana lokasi. Untuk RTO yang sangat cepat, kombinasikan: repo1 lokal untuk recovery cepat + repo2 S3 untuk arsip off-site.

Dua Repository Sekaligus: Lokal + Off-Site

pgBackRest mendukung repo1 dan repo2 secara bersamaan. Pola production yang umum: repo1 lokal (RTO cepat) + repo2 S3 (off-site/arsip).

/etc/pgbackrest.conf
[global]
repo1-path = /var/lib/pgbackrest
 
repo2-type = s3
repo2-s3-bucket = db-backup-arsip
repo2-s3-endpoint = s3.ap-southeast-1.amazonaws.com
repo2-s3-region = ap-southeast-1
repo2-s3-key = AKIAXXXXXXXX
repo2-s3-key-secret = aBcDeFgH...

Saat backup, gunakan --repo1 --repo2 (default saat keduanya terkonfigurasi). Restore bisa mengambil dari repository mana pun:

Restore dari repo off-site
sudo -u postgres pgbackrest --stanza=main --repo=2 restore

Kombinasi ini menjawab dua kebutuhan sekaligus: kecepatan (lokal) dan keamanan lokasi (cloud).

Kasus Penggunaan: Off-Site dan Penyimpanan Murah

  • Off-site backup: S3/remote host di lokasi berbeda → tahan kebakaran, pencurian, atau bencana regional. Ini syarat wajib untuk arsitektur production yang serius.
  • Penyimpanan murah: object storage memungkinkan retention panjang (arsip audit, kepatuhan) tanpa merawat disk sendiri. Backup lama bisa hidup di S3 dengan biaya rendah.

Warning

Kredensial S3 di config file adalah secret — beri permission 600 dan pertimbangkan IAM role / environment variable alih-alih static key. Di episode 20 kita memakai IAM role untuk instance di cloud; untuk MinIO lokal, gunakan static key yang dirotasi berkala.

Penutup

Inti yang harus dibawa pulang:

  • Repository remote via repo1-host + SSH memisahkan fisik data dan backup.
  • S3-compatible (repo1-type = s3) menyimpan backup di object storage yang dikelola penyedia.
  • Workflow stanza/check/backup tidak berubah — hanya media penyimpanannya.
  • Kombinasi repo1 lokal + repo2 S3 memberi RTO cepat dan arsip off-site.
  • Kredensial S3 adalah secret — amankan seperti passphrase enkripsi.

Di episode 13 selanjutnya kita akan mengamankan jalur transport: SSH & networking — membuat user khusus pgbackrest dengan key authentication, mengonfigurasi akses via pg1-host/repo1-host dan opsi SSH di config, serta aturan jaringan: jangan expose backup server, gunakan VPN atau tunnel untuk remote. Keamanan data dalam perjalanan adalah setengah dari keamanan keseluruhan!