Dlaczego S3 pasuje do backupów

Backup trzymany obok danych produkcyjnych bywa złudnym zabezpieczeniem. Awaria serwera, pełny dysk lub błąd człowieka potrafią skasować wszystko naraz. S3 rozdziela role: dane kopii są poza serwerem, proces jest łatwy do automatyzacji, a dostęp można ograniczyć do minimum.

3-2-1 bez przesady

Trzy kopie, dwa nośniki, jedna kopia poza główną lokalizacją. Dla większości stron wystarczy: krótka retencja lokalna (1–3 dni) i dłuższa retencja w S3 (np. 7 dziennych + 4 tygodniowe + 6 miesięcznych). Najważniejsze jest to, żebyś potrafił odtworzyć dane szybko i według jasnego scenariusza.

Potrzebujesz VPS/VDS?
Uruchom serwer w kilka minut i
zyskaj wsparcie 24/7
Zamów VPS

Backup strony do S3: WordPress, Laravel, statyczne strony

Prawie zawsze masz dwa elementy: pliki + baza.

WordPress:

 
mysqldump --single-transaction -uDBUSER -p'DBPASS' DBNAME | gzip > /backup/wp-db-$(date +%F).sql.gz tar -czf /backup/wp-content-$(date +%F).tar.gz /var/www/site/wp-content rclone copy /backup remote-s3:backups/site/wp/

Laravel:

 
tar -czf /backup/laravel-files-$(date +%F).tar.gz \ /var/www/app/storage/app \ /var/www/app/public/uploads pg_dump -Fc -U DBUSER DBNAME > /backup/laravel-db-$(date +%F).dump rclone copy /backup remote-s3:backups/site/laravel/

Statyczne strony: archiwum katalogu + wysyłka do S3. Jeśli źródło żyje w Git, często backupujesz tylko wynik builda i konfiguracje.

Backup bazy: MySQL/PostgreSQL + szyfrowanie + retencja

MySQL/MariaDB:

 
mysqldump --single-transaction --quick -uDBUSER -p'DBPASS' DBNAME | gzip > /backup/db-$(date +%F).sql.gz

PostgreSQL:

 
pg_dump -Fc -U DBUSER DBNAME > /backup/db-$(date +%F).dump

Szyfrowanie (GPG):

 
gpg --batch --yes --symmetric --cipher-algo AES256 \ --passphrase "$BACKUP_PASSPHRASE" \ /backup/db-$(date +%F).dump

Retencję ustawiasz lokalnie krótko, a w S3 dłużej przez reguły lifecycle.

rclone + S3: “jak dysk” i synchronizacja

Do historii backupów zwykle bezpieczniej jest copy niż sync, bo sync usuwa pliki w miejscu docelowym.

 
rclone copy /backup remote-s3:backups/site/

Montowanie jak dysk:

 
rclone mount remote-s3:backups /mnt/s3 --vfs-cache-mode full

Borg/Restic + S3: deduplikacja i szybkie inkrementy

Zamiast codziennie wysyłać pełne archiwa, Borg/Restic utrzymują repozytorium z deduplikacją — wysyłasz tylko różnice. To tańsze i szybsze, a odtwarzanie bywa bardziej przewidywalne.

Restic (logika):

 
export RESTIC_REPOSITORY="s3:s3.example.com/backups/site" export RESTIC_PASSWORD="$RESTIC_PASS" restic backup /var/www/site restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune

Wersjonowanie S3 bez “śmieci”

Wersjonowanie bywa zdradliwe: każdy overwrite tworzy kolejną wersję, a stare zostają. Żeby nie przepłacać, ustaw lifecycle dla nieaktualnych wersji (np. 14–30 dni), czyść niedokończone multipart uploady i oddziel dane w prefixach/bucketach.

Potrzebujesz serwera dedykowanego?
Mocne konfiguracje i
szybkie wdrożenie
Wybierz serwer