Dlaczego strategia kopii zapasowych baz danych ma znaczenie
Jedna błędnie skonfigurowana polityka retencji lub nieprzetestowana procedura odtwarzania (restore) może zamienić drobny incydent w katastrofalną utratę danych. Organizacje uruchamiające produkcyjne workloady na AWS lub Azure muszą dokładnie rozumieć, co każda platforma oferuje domyślnie - i gdzie pozostają luki wymagające dodatkowej konfiguracji.
Jeśli Twój zespół planuje migrację do chmury, architektura kopii zapasowych powinna być jedną z pierwszych decyzji. Koszt reimplementacji polityk po migracji jest znacząco wyższy niż zaprojektowanie ich prawidłowo od samego początku.
Architektura kopii zapasowych baz danych na AWS
AWS oferuje wiele warstw ochrony dla zarządzanych baz danych:
- AWS Backup - scentralizowana usługa zarządzająca politykami kopii zapasowych dla RDS, Aurora, DynamoDB, EFS i innych z jednej konsoli
- Automatyczne migawki RDS - codzienne pełne migawki (snapshots) z kopiami logów transakcji co 5 minut, umożliwiające odtwarzanie do punktu w czasie (PITR)
- Kopie zapasowe Aurora - ciągłe kopie zapasowe do Amazon S3 bez wpływu na wydajność, plus obsługa backtrackingu (cofanie klastra bez konieczności odtwarzania)
- Replikacja między regionami - ręczne lub automatyczne kopiowanie migawek do drugiego regionu AWS na potrzeby disaster recovery
Kluczową zaletą AWS Backup jest możliwość centralizacji zarządzania kopiami zapasowymi. Definiujesz plan raz i stosujesz go do zasobów w wielu kontach i regionach dzięki integracji z AWS Organisations.
Architektura kopii zapasowych baz danych na Azure
Azure stosuje bardziej zintegrowane podejście, gdzie kopie zapasowe są ściśle powiązane z samą usługą bazodanową:
- Azure Backup vault - scentralizowana warstwa zarządzania politykami, koncepcyjnie podobna do AWS Backup, ale z głębszą integracją z Azure Policy
- Geo-redundantne kopie Azure SQL - automatyczna geo-replikacja kopii zapasowych do sparowanego regionu, domyślnie włączona na większości warstw cenowych
- Odtwarzanie do punktu w czasie - granularne przywracanie do dowolnego momentu w oknie retencji, typowo z RPO 5-10 minut
- Długoterminowa retencja (LTR) - przechowywanie pełnych kopii zapasowych do 10 lat na potrzeby zgodności regulacyjnej
Wyróżnikiem Azure jest to, że geo-redundancja jest wbudowana w domyślne zachowanie kopii zapasowych. Nie trzeba osobno konfigurować kopiowania między regionami - dzieje się to automatycznie po wybraniu geo-redundantnego magazynu kopii zapasowych (GRS).
Porównanie funkcji: AWS vs Azure
| Funkcja | AWS (RDS / Aurora + AWS Backup) | Azure (SQL Database / Managed Instance) |
|---|---|---|
| Automatyczne kopie zapasowe | Codzienne migawki + logi transakcji co 5 min | Pełna kopia tygodniowo, różnicowa codziennie, logi co 5-10 min |
| Domyślna retencja | 7 dni (konfigurowalna 1-35 dni) | 7 dni (konfigurowalna 1-35 dni, LTR do 10 lat) |
| Odtwarzanie do punktu w czasie | Tak - do dowolnej sekundy w oknie retencji | Tak - do dowolnego momentu w oknie retencji |
| Kopia między regionami | Wymaga ręcznego kopiowania migawki lub reguły AWS Backup | Automatyczna z opcją GRS (geo-redundant storage) |
| Scentralizowane zarządzanie | AWS Backup z obsługą Organisations | Azure Backup vault + Azure Policy |
| Kontrola okna kopii zapasowej | Tak - konfigurowalne preferowane okno | Nie - zarządzane przez system, brak kontroli użytkownika nad harmonogramem |
| Testowanie kopii zapasowych | Wymagane ręczne odtworzenie do nowej instancji | Odtwarzanie do punktu w czasie, zintegrowane ćwiczenia przywracania |
Polityki retencji i zgodność regulacyjna
Obie platformy wspierają krótko- i długoterminową retencję, ale mechanizmy różnią się znacząco.
Model retencji AWS:
- Automatyczne kopie RDS: retencja 1-35 dni
- Blokada magazynu AWS Backup: niezmieniane kopie zapasowe na potrzeby compliance (WORM - Write Once Read Many)
- Ręczne migawki: przechowywane bezterminowo do momentu jawnego usunięcia
- Kopia między kontami: kopiowanie kopii zapasowych do izolowanych kont jako ochrona przed ransomware
Model retencji Azure:
- Krótkoterminowa retencja: 1-35 dni dla PITR
- Długoterminowa retencja (LTR): tygodniowe, miesięczne, roczne kopie przechowywane do 10 lat
- Niezmieniane magazyny: zapobieganie usunięciu danych kopii zapasowych przed upływem okresu retencji
- Soft delete: 14-dniowe okno odzyskiwania przypadkowo usuniętych kopii
Dla organizacji podlegających regulacjom takim jak GDPR, PCI DSS czy SOC 2, wbudowane polityki LTR w Azure są prostsze do skonfigurowania. Na AWS osiągnięcie podobnej długoterminowej retencji wymaga połączenia reguł cyklu życia AWS Backup z przejściami do S3 Glacier.
Porównanie kosztów
| Wymiar kosztowy | AWS | Azure |
|---|---|---|
| Wliczona przestrzeń na kopie | Bezpłatnie do 100% zarezerwowanej przestrzeni DB | Bezpłatnie do 100% zarezerwowanej przestrzeni DB (większość warstw) |
| Dodatkowa przestrzeń na kopie | $0.095/GB-miesiąc (zależy od regionu) | RA-GRS: $0.05/GB-miesiąc, LRS: $0.024/GB-miesiąc |
| Kopia między regionami | Transfer danych + przechowywanie migawki w docelowym regionie | Wliczona w cenę GRS (brak osobnej opłaty za transfer) |
| Koszt odtwarzania | Bez opłat za odtworzenie, płatność za nową instancję | Bez opłat za odtworzenie, płatność za nową instancję |
| Długoterminowa retencja | AWS Backup cold storage: $0.01/GB-miesiąc | LTR: wliczona w cenę przestrzeni na kopie |
Azure oferuje generalnie bardziej opłacalne geo-redundantne kopie zapasowe, ponieważ replikacja GRS jest wliczona w bazową cenę przechowywania. Na AWS replikacja między regionami wiąże się z odrębnymi opłatami za transfer danych, które mogą się kumulować przy dużych bazach. Jeśli oceniasz łączne koszty migracji, nasz przewodnik po kosztach migracji do chmury obejmuje pełny obraz, w tym kwestie licencjonowania.
Szyfrowanie i zgodność regulacyjna
Obie platformy domyślnie szyfrują kopie zapasowe, ale opcje zarządzania kluczami różnią się:
Szyfrowanie na AWS:
- RDS wykorzystuje AWS KMS (Key Management Service)
- Zaszyfrowane instancje automatycznie produkują zaszyfrowane migawki
- Współdzielenie kluczy między kontami przez polityki kluczy KMS
- AWS CloudTrail rejestruje wszystkie operacje tworzenia i odtwarzania kopii zapasowych
Szyfrowanie na Azure:
- Transparent Data Encryption (TDE) z kluczami zarządzanymi przez usługę lub klienta
- Integracja z Azure Key Vault dla scenariuszy BYOK (Bring Your Own Key)
- Azure Monitor i Defender for Cloud zapewniają dashboardy zgodności
- Dane kopii zapasowych domyślnie szyfrowane w spoczynku kluczami zarządzanymi przez platformę
Dla organizacji wymagających kluczy wspieranych przez HSM, AWS oferuje integrację z CloudHSM, natomiast Azure udostępnia Managed HSM w ramach Key Vault. Oba podejścia spełniają wymagania większości standardów zgodności, w tym SOC 2, ISO 27001 i HIPAA.
Przykłady konfiguracji Terraform
AWS Backup - plan z kopią między regionami
resource "aws_backup_vault" "primary" {
name = "production-db-vault"
kms_key_arn = aws_kms_key.backup.arn
tags = {
Environment = "production"
ManagedBy = "terraform"
}
}
resource "aws_backup_vault" "dr_region" {
provider = aws.dr_region
name = "dr-db-vault"
kms_key_arn = aws_kms_key.backup_dr.arn
}
resource "aws_backup_plan" "rds_daily" {
name = "rds-daily-backup-plan"
rule {
rule_name = "daily-backup"
target_vault_name = aws_backup_vault.primary.name
schedule = "cron(0 3 * * ? *)"
lifecycle {
cold_storage_after = 30
delete_after = 365
}
copy_action {
destination_vault_arn = aws_backup_vault.dr_region.arn
lifecycle {
delete_after = 90
}
}
}
}
resource "aws_backup_selection" "rds_instances" {
iam_role_arn = aws_iam_role.backup.arn
name = "rds-production-databases"
plan_id = aws_backup_plan.rds_daily.id
selection_tag {
type = "STRINGEQUALS"
key = "BackupPolicy"
value = "daily"
}
}
Azure Backup dla SQL Database z geo-redundancją
resource "azurerm_recovery_services_vault" "backup" {
name = "production-db-vault"
location = azurerm_resource_group.main.location
resource_group_name = azurerm_resource_group.main.name
sku = "Standard"
soft_delete_enabled = true
tags = {
environment = "production"
managed_by = "terraform"
}
}
resource "azurerm_backup_policy_vm" "daily" {
name = "daily-backup-policy"
resource_group_name = azurerm_resource_group.main.name
recovery_vault_name = azurerm_recovery_services_vault.backup.name
backup {
frequency = "Daily"
time = "03:00"
}
retention_daily {
count = 35
}
retention_weekly {
count = 12
weekdays = ["Sunday"]
}
retention_monthly {
count = 12
weekdays = ["Sunday"]
weeks = ["First"]
}
retention_yearly {
count = 3
weekdays = ["Sunday"]
weeks = ["First"]
months = ["January"]
}
}
resource "azurerm_mssql_database" "production" {
name = "production-db"
server_id = azurerm_mssql_server.main.id
sku_name = "GP_Gen5_4"
geo_backup_enabled = true
short_term_retention_policy {
retention_days = 35
backup_interval_in_hours = 12
}
long_term_retention_policy {
weekly_retention = "P4W"
monthly_retention = "P12M"
yearly_retention = "P3Y"
week_of_year = 1
}
}
Który wybrać - praktyczny framework decyzyjny
Właściwa platforma zależy od specyficznych wymagań Twojej organizacji. Użyj tego frameworka, aby podjąć decyzję:
Wybierz AWS Backup, gdy:
- Już uruchamiasz workloady na wielu kontach AWS i potrzebujesz scentralizowanego zarządzania przez AWS Organisations
- Wymagasz precyzyjnej kontroli nad oknami kopii zapasowych i harmonogramami utrzymania
- Twoja strategia disaster recovery zakłada replikację między regionami z granularnymi politykami cyklu życia
- Musisz obejmować jedną polityką heterogeniczne workloady (RDS, DynamoDB, EFS, EC2)
Wybierz Azure Backup, gdy:
- Potrzebujesz geo-redundantnych kopii zapasowych z minimalną konfiguracją (domyślnie włączone)
- Długoterminowa retencja do 10 lat jest wymogiem regulacyjnym
- Twoja organizacja intensywnie korzysta z Azure Active Directory i czerpie korzyści z natywnej integracji
- Preferujesz prostszy model operacyjny, gdzie kopie zapasowe „po prostu działają” bez dodatkowej konfiguracji serwisów
Rozważ strategię multi-cloud, gdy:
- Twoje workloady są rozdzielone między obu dostawców
- Wymagania regulacyjne nakazują różnorodność geograficzną wykraczającą poza regiony jednego dostawcy
- Potrzebujesz walidacji kopii zapasowych niezależnej od dostawcy na potrzeby audytu
Dla zespołów budujących skalowalną infrastrukturę z Terraform, powyższe przykłady Terraform stanowią punkt wyjścia, który możesz rozbudować. Jeśli potrzebujesz bieżącego zarządzania politykami kopii zapasowych obok monitoringu, aktualizacji i obsługi incydentów, retainer chmurowy zapewnia aktualność Twojej strategii w miarę rozwoju infrastruktury.
Kluczowe wnioski
- AWS zapewnia bardziej granularną kontrolę i scentralizowane zarządzanie między kontami, co czyni go idealnym dla złożonych środowisk multi-account
- Azure oferuje prostszą geo-redundancję od pierwszego dnia i bardziej intuicyjną konfigurację długoterminowej retencji
- Obie platformy domyślnie szyfrują kopie zapasowe i integrują się z odpowiednimi usługami zarządzania kluczami
- Różnice kosztowe są najistotniejsze przy replikacji między regionami - Azure wlicza ją w cenę GRS, podczas gdy AWS nalicza opłaty osobno
- Terraform umożliwia spójną, audytowalną konfigurację kopii zapasowych na obu platformach
Nie wiesz, które podejście pasuje do Twojej organizacji? Nasz zespół konsultingowy może ocenić obecny stan Twoich kopii zapasowych i zaprojektować odporną strategię dopasowaną do wymagań compliance i budżetu.
Najczęściej zadawane pytania
Czy AWS Backup czy Azure Backup jest lepszy do disaster recovery baz danych?
Azure Backup domyślnie zapewnia geo-redundantne przechowywanie, co sprawia, że podstawowe disaster recovery jest prostsze w konfiguracji. AWS Backup oferuje bardziej granularne reguły kopiowania między regionami i polityki cyklu życia, co lepiej odpowiada złożonym środowiskom multi-account ze specyficznymi wymaganiami RPO/RTO.
Jak retencja kopii zapasowych AWS RDS wypada w porównaniu z Azure SQL?
Zarówno AWS RDS, jak i Azure SQL wspierają 1-35 dni krótkoterminowej retencji dla odtwarzania do punktu w czasie. Azure SQL oferuje dodatkowo wbudowaną długoterminową retencję (LTR) do 10 lat. Na AWS równoważna długoterminowa retencja wymaga reguł cyklu życia AWS Backup z przejściami do cold storage.
Co jest tańsze dla kopii zapasowych baz danych między regionami - AWS czy Azure?
Azure jest generalnie bardziej opłacalne dla kopii między regionami, ponieważ geo-redundantne przechowywanie (GRS) wlicza replikację w cenę bazową. AWS nalicza osobne opłaty za transfer danych przy kopiowaniu migawek między regionami, co może być istotne przy dużych bazach danych.
Czy można zarządzać kopiami zapasowymi baz danych na AWS i Azure za pomocą Terraform?
Tak. Zarówno AWS Backup, jak i Azure Recovery Services Vault są w pełni obsługiwane przez odpowiednie providery Terraform. Pozwala to definiować plany kopii zapasowych, polityki retencji, ustawienia szyfrowania i replikację między regionami jako kod, zapewniając spójną i audytowalną konfigurację.
Potrzebujesz pomocy w zaprojektowaniu strategii kopii zapasowych?
Niezależnie od tego, czy działasz na AWS, Azure czy obu platformach jednocześnie - prawidłowe zaprojektowanie architektury kopii zapasowych od pierwszego dnia oszczędza znaczne koszty i redukuje ryzyko. Nasz zespół wdrożył rozwiązania disaster recovery dla organizacji z sektora finansowego, ochrony zdrowia i SaaS.