Why database backup strategy matters
A single misconfigured retention policy or an untested restore procedure can turn a minor incident into a catastrophic data loss event. Organisations running production workloads on either AWS or Azure need to understand exactly what each platform provides out of the box - and where gaps remain that require additional configuration.
If your team is planning a cloud migration, backup architecture should be one of the first decisions you make. The cost of retrofitting backup policies after migration is significantly higher than designing them correctly from the start.
AWS database backup architecture
AWS offers multiple layers of backup protection for managed databases:
- AWS Backup - a centralised service that manages backup policies across RDS, Aurora, DynamoDB, EFS, and more from a single console
- RDS automated snapshots - daily full snapshots with transaction log backups every 5 minutes, enabling point-in-time recovery (PITR)
- Aurora backups - continuous backups to Amazon S3 with no performance impact, plus support for backtracking (rewinding the cluster without restoring)
- Cross-region replication - manual or automated copy of snapshots to a secondary AWS region for disaster recovery
The key advantage of AWS Backup is its ability to centralise backup governance. You define a backup plan once and apply it to resources across multiple accounts and regions using AWS Organisations integration.
Azure database backup architecture
Azure takes a more integrated approach where backup is tightly coupled with the database service itself:
- Azure Backup vault - a centralised management layer for backup policies, similar in concept to AWS Backup but with tighter integration into Azure Policy
- Azure SQL geo-redundant backup - automatic geo-replication of backups to a paired region, enabled by default on most tiers
- Point-in-time restore - granular recovery to any point within the retention window, typically with 5-10 minute RPO
- Long-term retention (LTR) - store full backups for up to 10 years for compliance requirements
Azure’s differentiator is that geo-redundancy is built into the default backup behaviour. You do not need to configure cross-region copy separately - it happens automatically when you select geo-redundant backup storage (GRS).
Feature comparison: AWS vs Azure backup
| Feature | AWS (RDS / Aurora + AWS Backup) | Azure (SQL Database / Managed Instance) |
|---|---|---|
| Automated backup | Daily snapshots + transaction logs every 5 min | Full weekly, differential daily, log every 5-10 min |
| Default retention | 7 days (configurable 1-35 days) | 7 days (configurable 1-35 days, LTR up to 10 years) |
| Point-in-time restore | Yes - to any second within retention window | Yes - to any point within retention window |
| Cross-region backup | Manual snapshot copy or AWS Backup rule required | Automatic with GRS (geo-redundant storage) option |
| Centralised management | AWS Backup with Organisations support | Azure Backup vault + Azure Policy |
| Backup window control | Yes - configurable preferred backup window | No - system-managed, no user control over timing |
| Backup testing | Manual restore to new instance required | Point-in-time restore to validate, integrated restore drill |
Retention policies and compliance
Both platforms support short-term and long-term retention, but the mechanisms differ significantly.
AWS retention model:
- RDS automated backups: 1-35 days retention
- AWS Backup vault lock: immutable backups for compliance (WORM - Write Once Read Many)
- Manual snapshots: retained indefinitely until explicitly deleted
- Cross-account backup: copy backups to isolated accounts for ransomware protection
Azure retention model:
- Short-term retention: 1-35 days for PITR
- Long-term retention (LTR): weekly, monthly, yearly backups stored up to 10 years
- Immutable vaults: prevent deletion of backup data before retention expiry
- Soft delete: 14-day recovery window for accidentally deleted backups
For organisations subject to regulations like GDPR, PCI DSS, or SOC 2, Azure’s built-in LTR policies are simpler to configure. On AWS, achieving similar long-term retention requires combining AWS Backup lifecycle rules with S3 Glacier transitions.
Cost comparison
| Cost dimension | AWS | Azure |
|---|---|---|
| Included backup storage | Free up to 100% of provisioned DB storage | Free up to 100% of provisioned DB size (most tiers) |
| Additional backup storage | $0.095/GB-month (varies by region) | RA-GRS: $0.05/GB-month, LRS: $0.024/GB-month |
| Cross-region copy | Data transfer + snapshot storage in target region | Included in GRS pricing (no separate transfer fee) |
| Restore cost | No charge for restore, pay for new instance runtime | No charge for restore, pay for new instance runtime |
| Long-term retention | AWS Backup cold storage: $0.01/GB-month | LTR: included in backup storage pricing |
Azure generally offers more cost-effective geo-redundant backup because GRS replication is included in the base backup storage price. On AWS, cross-region replication incurs separate data transfer charges that can add up for large databases. If you are evaluating total migration costs, our guide on cloud migration costs covers the full picture including licensing considerations.
Encryption and compliance
Both platforms encrypt backups by default, but the key management options differ:
AWS encryption:
- RDS encryption uses AWS KMS (Key Management Service)
- Encrypted instances produce encrypted snapshots automatically
- Cross-account key sharing via KMS key policies
- AWS CloudTrail logs all backup and restore operations
Azure encryption:
- Transparent Data Encryption (TDE) with service-managed or customer-managed keys
- Azure Key Vault integration for BYOK (Bring Your Own Key) scenarios
- Azure Monitor and Defender for Cloud provide compliance dashboards
- Backup data encrypted at rest using platform-managed keys by default
For organisations requiring HSM-backed keys, AWS offers CloudHSM integration while Azure provides Managed HSM within Key Vault. Both approaches satisfy most compliance frameworks including SOC 2, ISO 27001, and HIPAA.
Terraform configuration examples
AWS Backup plan with cross-region copy
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 for SQL Database with geo-redundancy
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
}
}
Which to choose: a practical decision framework
The right platform depends on your organisation’s specific requirements. Use this framework to guide your decision:
Choose AWS Backup when:
- You are already running workloads across multiple AWS accounts and need centralised governance via AWS Organisations
- You require fine-grained control over backup windows and maintenance schedules
- Your disaster recovery strategy involves cross-region replication with granular lifecycle policies
- You need to back up heterogeneous workloads (RDS, DynamoDB, EFS, EC2) under a single policy
Choose Azure Backup when:
- You need geo-redundant backup with minimal configuration (enabled by default)
- Long-term retention up to 10 years is a regulatory requirement
- Your organisation uses Azure Active Directory extensively and benefits from native integration
- You prefer a simpler operational model where backup “just works” without additional service configuration
Consider a multi-cloud backup strategy when:
- You have workloads split across both providers
- Regulatory requirements mandate geographic diversity beyond a single provider’s regions
- You need vendor-independent backup validation for audit purposes
For teams building scalable infrastructure with Terraform, the Terraform examples above provide a starting point you can extend. If you need ongoing management of backup policies alongside monitoring, patching, and incident response, a cloud retainer engagement ensures your backup strategy stays current as your infrastructure evolves.
Key takeaways
- AWS provides more granular control and centralised governance across accounts, making it ideal for complex multi-account environments
- Azure offers simpler geo-redundancy out of the box and more straightforward long-term retention configuration
- Both platforms encrypt backups by default and integrate with their respective key management services
- Cost differences are most significant for cross-region replication - Azure includes it in GRS pricing while AWS charges separately
- Terraform enables consistent, auditable backup configuration on either platform
Not sure which approach fits your organisation? Our consulting team can assess your current backup posture and design a resilient strategy tailored to your compliance requirements and budget.
Frequently asked questions
Is AWS Backup or Azure Backup better for database disaster recovery?
Azure Backup provides geo-redundant storage by default, making basic disaster recovery simpler to configure. AWS Backup offers more granular cross-region copy rules and lifecycle policies, which is better suited for complex multi-account environments with specific RPO/RTO requirements.
How does AWS RDS backup retention compare to Azure SQL backup retention?
Both AWS RDS and Azure SQL support 1-35 days of short-term retention for point-in-time restore. Azure SQL additionally offers built-in long-term retention (LTR) up to 10 years. On AWS, equivalent long-term retention requires AWS Backup lifecycle rules with cold storage transitions.
Which is cheaper for cross-region database backup - AWS or Azure?
Azure is generally more cost-effective for cross-region backup because geo-redundant storage (GRS) includes replication in the base price. AWS charges separate data transfer fees for cross-region snapshot copies, which can be significant for large databases.
Can I manage AWS and Azure database backups with Terraform?
Yes. Both AWS Backup and Azure Recovery Services Vault are fully supported by their respective Terraform providers. This allows you to define backup plans, retention policies, encryption settings, and cross-region replication as code, ensuring consistent and auditable backup configuration.
What are the main feature differences between AWS Backup and Azure Backup?
AWS Backup offers centralised multi-account governance via AWS Organisations, configurable backup windows, and fine-grained lifecycle policies with cold storage transitions. Azure Backup provides geo-redundancy by default (GRS), built-in long-term retention up to 10 years, soft delete protection, and simpler out-of-the-box configuration. The choice depends on whether you need granular control (AWS) or simpler operational defaults (Azure).
Need help designing your backup strategy?
Whether you are running on AWS, Azure, or both - getting backup architecture right from day one saves significant cost and risk down the line. Our team has implemented backup and disaster recovery solutions for organisations across finance, healthcare, and SaaS.