Bencana bukan "jika" tapi "kapan": region mati, data terhapus, atau kesalahan konfigurasi bisa melumpuhkan bisnis. Kalian mempelajari RPO/RTO sebagai bahasa kesepakatan, cross-region replication, backup berlapis, dan DR strategies, lalu melakukan simulasi DR untuk membuktikan infrastruktur kalian benar-benar bisa bangkit kembali.

Di episode 17 kita memigrasi aplikasi ke cloud, dan di episode 19 mengamankan aksesnya. Tapi ada satu pertanyaan yang belum terjawab: apa yang terjadi jika region cloud kalian mati? Ini bukan teori — outage region pernah terjadi di semua provider besar, dan perusahaan yang tidak siap kehilangan data serta reputasi dalam hitungan jam.
Episode 20 membahas backup & disaster recovery (DR): dua konsep yang sering dicampur tapi beda. Backup melindungi dari kesalahan manusia dan korupsi data. DR melindungi dari kegagalan infrastruktur skala besar. Kalian akan belajar RPO/RTO, cross-region replication, pola DR yang berbeda, lalu melakukan simulasi DR — latihan membuktikan bahwa infrastruktur bisa bangkit kembali.
Keduanya punya tujuan berbeda, dan mencampurnya adalah kesalahan umum:
| Backup | Disaster Recovery | |
|---|---|---|
| Melindungi dari | Kesalahan manusia, data korup, malware | Kegagalan skala besar (region, datacenter) |
| Skala | Sebagian kecil sistem | Seluruh environment |
| Sasaran | Memulihkan data | Memulihkan sistem berjalan |
| Pertanyaan | "Bisa kembalikan datanya?" | "Bisa hidup lagi kapan?" |
Backup tanpa DR = data aman, tapi aplikasi tidak kembali. DR tanpa backup = sistem kembali, tapi datanya sudah lama. Keduanya wajib.
Dua angka inilah bahasa yang dipakai seluruh industri untuk menyepakati target:
Aturan praktis: semakin kecil RPO/RTO, semakin mahal. RPO 0 (nol detik kehilangan data) butuh sinkronous replication — mahal dan latensinya berpengaruh. RPO 1 hari (backup harian) murah. Cloud engineer tidak menuntut "nol semua", melainkan memilih angka yang sepadan dengan nilai bisnis.
Langkah pertama DR: data tidak boleh tinggal di satu lokasi fisik. Cross-region replication menyalin data ke region kedua secara otomatis:
| Provider | Object storage | Database |
|---|---|---|
| AWS | S3 cross-region replication | RDS cross-region read replica |
| GCP | Cloud Storage regional → dual-region/multi-region | Cloud SQL replica lintas region |
| Azure | Blob GRS (geo-redundant) | SQL Database geo-replication |
aws s3api put-bucket-replication \
--bucket lab-static-assets \
--replication-configuration file://replication.jsonreplication.json berisi bucket target di region kedua dan role IAM yang boleh menyalin. Setelah aktif, setiap objek baru otomatis disalin — kalian tidak perlu ingat melakukannya manual (episode 8: automasi adalah kebiasaan).
Untuk database, read replica lintas region tidak hanya untuk DR — ia juga melayani trafik baca region lain. Upgrade ke full DR membutuhkan promote replica menjadi primary saat bencana (proses yang harus didokumentasikan dan dilatih).
Ada beberapa pola DR dengan biaya dan kecepatan berbeda:
| Pola | RTO | Cara | Biaya |
|---|---|---|---|
| Backup & Restore | Jam–hari | Backup ke region lain, restore saat bencana | Terendah |
| Pilot Light | Menit–jam | Komponen inti selalu hidup di region kedua, lainnya nyala saat DR | Rendah–sedang |
| Warm Standby | Menit | Environment region kedua selalu hidup dengan kapasitas minimal | Sedang |
| Multi-Site Active-Active | Detik | Kedua region melayani trafik nyata | Tertinggi |
Tidak ada pola terbaik — hanya pola yang sesuai RPO/RTO dan budget. Aplikasi lab kalian mungkin cukup backup & restore; aplikasi bank butuh multi-site.
Note
Perhatikan benang merah dengan episode 7 dan 14: DR yang baik adalah DR yang bisa diotomasi. Infrastruktur-as-code memungkinkan membangun kembali environment di region kedua dalam hitungan menit (terraform apply), dan pipeline memastikan aplikasi ter-deploy konsisten. Tanpa IaC, DR selalu bergantung pada manusia yang hafal cara membuat semuanya dari nol — berisiko tinggi saat panik.
Backup yang baik memakai prinsip 3-2-1: tiga salinan data, di dua media berbeda, satu di lokasi off-site. Di cloud, pola ini berarti:
# Snapshot EBS harian, simpan 7 hari, replikasi ke region kedua
# diotomasi lewat lifecycle policy (AWS DLM / GCP snapshots / Azure)
aws dlm create-lifecycle-policy --policy-details file://dlm.jsonRetensi juga butuh keputusan: berapa lama backup disimpan? Aturan umum — jangka pendek (hari) murah dan sering; jangka panjang (bulan/tahun) mahal. Backup bulanan yang disimpan 1 tahun cukup untuk audit; backup per-15-menit tidak perlu disimpan setahun.
DR yang tidak pernah diuji adalah DR yang tidak ada. Simulasi DR (DR drill) untuk aplikasi lab-ecommerce:
dr-runbook:
target: rpo 1 jam / rto 4 jam
langkah:
- promote read replica jadi primary # RTO: +10 menit
- terraform apply environment-cadangan # RTO: +40 menit
- deploy aplikasi lewat pipeline # RTO: +15 menit
- switch DNS ke region kedua # RTO: +5 menit
- verifikasi healthcheck & data # RTO: +15 menit
catatan:
- semua perintah dijalankan pipeline, bukan manual
- rollback = kembalikan DNS ke region utamaAturan emas: DR drill harus sering (minimal kuartalan), dan setiap drill menghasilkan perbaikan runbook. Kalian akan menyadari bahwa kegagalan DR hampir selalu karena hal sepele yang tidak pernah diuji: DNS cache, permission IAM di region kedua, atau endpoint yang hardcode region.
Inti yang harus dibawa pulang:
Di episode 21 selanjutnya kita akan membuat infrastruktur yang tidak cuma selamat dari bencana, tapi juga menyesuaikan diri: auto-scaling & reliability — auto-scaling groups, target tracking, dan arsitektur multi-AZ high availability, lalu menerapkan auto-scaling untuk produksi. Sampai jumpa di episode 21!