Własna prywatna chmura mCloud: Bezpieczne przechowywanie danych i backupy 3-2-1
· 5 min czytania
W erze powszechnej cyfryzacji bezpieczne zarządzanie danymi stało się priorytetem każdego programisty i twórcy. Komercyjne usługi chmurowe często wiążą się z rosnącymi kosztami abonamentów, niepewnością co do prywatności plików oraz ograniczeniami transferu. Rozwiązaniem tego problemu jest wdrożenie prywatnej, niezależnej chmury hostingowej.
1. Zasada tworzenia kopii zapasowych 3-2-1
Bezpieczeństwo danych w architekturze mCloud opiera się na żelaznym standardzie inżynierii danych:
- 3 kopie danych: Główny magazyn roboczy oraz dwie niezależne kopie archiwalne.
- 2 różne nośniki fizyczne: Niezależne dyski NVMe oraz odrębna macierz dyskowa HDD/cold storage.
- 1 kopia poza lokalizacją: Zdalny backup off-site w innej serwerowni w celu zabezpieczenia przed awariami infrastruktury fizycznej.
2. Szyfrowanie end-to-end i niezależność
Wszystkie dane przesyłane do magazynu są szyfrowane przy użyciu nowoczesnych protokołów kryptograficznych TLS 1.3 z wymuszeniem Forward Secrecy. Dostęp do zasobów realizowany jest przez bezpieczne protokoły SFTP oraz interfejsy REST API z kluczami o wysokiej entropii.
3. Skrypt automatycznego backupu z kompresją Zstandard
Poniższy skrypt Bash wykonuje spójną migawkę bazy danych MySQL oraz plików aplikacji, pakuje je z wykorzystaniem wielowątkowej kompresji zstd i wysyła na zdalny serwer backupowy:
#!/usr/bin/env bash
set -euo pipefail
BACKUP_DIR="/var/backups/mcloud"
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
ARCHIVE_NAME="mcloud_backup_${TIMESTAMP}.tar.zst"
REMOTE_HOST="backup-node.mermiko.com"
REMOTE_DIR="/mnt/storage/vault"
mkdir -p "$BACKUP_DIR"
echo "[$(date)] Rozpoczynanie tworzenia kopii zapasowej..."
tar -cf - /var/www/mcloud | zstd -T0 -3 -o "${BACKUP_DIR}/${ARCHIVE_NAME}"
echo "[$(date)] Przesyłanie do bezpiecznego węzła off-site..."
rsync -avz -e "ssh -i /root/.ssh/backup_key" "${BACKUP_DIR}/${ARCHIVE_NAME}" "backupuser@${REMOTE_HOST}:${REMOTE_DIR}/"
# Retencja: zachowaj tylko kopie z ostatnich 14 dni
find "$BACKUP_DIR" -type f -name "*.tar.zst" -mtime +14 -delete
echo "[$(date)] Kopia zapasowa zakończona pomyślnie."
4. Monitoring integralności i testy odzyskiwania (Disaster Recovery)
Samo tworzenie kopii zapasowych nie gwarantuje bezpieczeństwa, jeśli nie testujesz ich integralności. Architektura mCloud raz w miesiącu uruchamia izolowany kontener testowy, pobiera najnowszy backup i przeprowadza automatyczną weryfikację sum kontrolnych SHA-256 oraz poprawności schematu bazy danych.