Geleneksel sağlayıcı blok snapshot faturaları yerine Restic FastCDC veya BorgBackup içerik tanımlı tekilleştirme (deduplication) kullanarak S3, Cloudflare R2 veya Hetzner Storage Box üzerinde depolama hacmini ve TCO maliyetini hesaplayın.
Toplam Ham Veri: 150 GB
Günlük Değişen: 4.5 GB/gün
Sıfır veri çıkış (egress) ücreti, küresel dağıtık erişim, API ücreti yok.
| Yedekleme Metodu | Depolama Tüketimi | Tekilleştirme | Aylık Maliyet | Yıllık TCO | Kurtarma Esnekliği |
|---|---|---|---|---|---|
| Sağlayıcı Blok Snapshot (Hetzner / AWS) | 265 GB (Ham Delta) | Yok (Blok bazlı) | ₺643 | ₺7.712 | Yalnızca aynı sağlayıcıya geri döner |
| Restic + Cloudflare R2 (S3 Uyumlu) | 103 GB (%61.1 tasarruf) | FastCDC + AES-256 | ₺75 | ₺899 | Herhangi bir sunucuya anında mount/restore |
| BorgBackup (SSH / Hetzner Storage Box) | 96 GB | Chunking + Zstd | ₺70 | ₺838 | FUSE mount ile dosya bazında kurtarma |
#!/usr/bin/env bash set -euo pipefail # Restic + Cloudflare R2 / AWS S3 Otomatik Yedekleme ve Budama Betigi export RESTIC_REPOSITORY="s3:https://<account-id>.r2.cloudflarestorage.com/vds-backups" export AWS_ACCESS_KEY_ID="<R2_OR_S3_ACCESS_KEY>" export AWS_SECRET_ACCESS_KEY="<R2_OR_S3_SECRET_KEY>" export RESTIC_PASSWORD="<GIZLI_GUCLU_AES256_PAROLA>" echo "[$(date)] Restic yedekleme baslatiliyor..." # 1. PostgreSQL / MySQL Dump Al (Eger kuruluysa) if command -v pg_dumpall >/dev/null 2>&1; then sudo -u postgres pg_dumpall | gzip -3 | restic backup --stdin --stdin-filename postgres-cluster.sql.gz --tag db fi # 2. Kritik Dizinleri Tekilleştirerek S3/R2'ye Yedekle restic backup /etc /var/www /home /opt \ --exclude="/var/www/*/node_modules" \ --exclude="/var/www/*/cache" \ --tag files \ --compression max # 3. Saklama Politikasina Gore Eski Snapshot'lari Otomatik Temizle (Prune) restic forget \ --keep-daily 7 \ --keep-weekly 4 \ --keep-monthly 6 \ --prune echo "[$(date)] Yedekleme ve budama basariyla tamamlandi."
#!/usr/bin/env bash set -euo pipefail # BorgBackup + Hetzner Storage Box / SSH Sunucu Yedekleme Betigi export BORG_REPO="ssh://[email protected]:23/./vds-borg-repo" export BORG_PASSPHRASE="<GIZLI_BORG_PASSPHRASE>" echo "[$(date)] Borg yedekleme baslatiliyor..." borg create --stats --progress \ --compression zstd,3 \ --exclude '/var/cache' \ --exclude '*/node_modules' \ ::"vds-{now:%Y-%m-%d-%H%M%S}" \ /etc /var/www /home /opt # Otomatik Prune (Eski Snapshot'lari Sil) borg prune -v --list \ --keep-daily=7 \ --keep-weekly=4 \ --keep-monthly=6 echo "[$(date)] Borg islemi tamamlandi."
# /etc/systemd/system/vds-backup.service [Unit] Description=Restic Guvenli VDS Yedekleme Servisi After=network-online.target Wants=network-online.target [Service] Type=oneshot ExecStart=/usr/local/bin/vds-restic-backup.sh Nice=19 IOSchedulingClass=idle # /etc/systemd/system/vds-backup.timer [Unit] Description=Gunluk Gece 03:00 Yedekleme Zamanlayicisi [Timer] OnCalendar=*-*-* 03:00:00 RandomizedDelaySec=1800 Persistent=true [Install] WantedBy=timers.target
Hetzner, AWS (EBS Snapshot), Linode ve DigitalOcean gibi bulut sağlayıcılarının sunduğu standart snapshot hizmetleri blok düzeyinde çalışır. Bu sistemler dosya sisteminin içeriğini bilmediğinden, bir veritabanı veya log dosyası 1 MB değişse dahi yüzlerce megabaytlık disk blokları delta olarak kopyalanır. Ayrıca her snapshot için GB başına ortalama $0.05/ay gibi yüksek birim ücretler talep edilir ve tekilleştirme (deduplication) yapılmaz.
Restic ve BorgBackup, dosyaları sabit bloklar yerine kayan pencere algoritmalarıyla değişken boyutlu parçalara (chunk) böler. Bir dosyanın başına yeni bir satır eklendiğinde geleneksel yedekleyiciler tüm blok indekslerini bozup dosyanın tamamını tekrar yüklerken, FastCDC yalnızca değişen birkaç kilobaytlık parçayı yükler. Bu sayede 10 adet günlük snapshot alsanız dahi disk tüketimi %70-%85 daha az olur.
Restic, doğrudan Cloudflare R2 veya Backblaze B2 gibi modern nesne depolama servislerine yerel S3 API üzerinden şifrelenmiş (AES-256) olarak yazar. Cloudflare R2'nin $0 egress (veri çıkış) ücretisayesinde, acil bir felaket kurtarma (disaster recovery) anında terabaytlarca yedeği yeni bir sunucuya indirirken AWS S3'te karşılaşılan devasa çıkış faturaları tamamen engellenmiş olur.