Database Backups
Learn more about Aptible’s database backup solution with automatic backups, default encryption, with flexible customization
Overview
Database Backups are essential because they provide a way to recover important data in case of disasters or data loss. They also provide a historical record of changes to data, which can be required for auditing and compliance purposes.
Aptible provides Automatic Backups of your Databases every 24 hours, along with a range of other backup options. All Backups are compressed and encrypted for maximum security and efficiency. Additionally, all Backups are automatically stored across multiple Availability Zones for high-availability.
Automatic Backups
By default, Aptible provides automatic backups of all Databases. The retention period for Automated Backups is determined by the Backup Retention Policy for the Environment in which the Database resides. The configuration options are as follows:
-
DAILY BACKUPS RETAINED
- Number of daily backups retained -
MONTHLY BACKUPS RETAINED
- Number of monthly backups retained (the last backup of each month) -
YEARLY BACKUPS RETAINED
- Number of yearly backups retained (the last backup of each year) -
COPY BACKUPS TO ANOTHER REGION: TRUE/FALSE
- When enabled, Aptible will copy all the backups within that Environment to another region. See: Cross-region Copy Backups -
KEEP FINAL BACKUP: TRUE/FALSE
- When enabled, Aptible will retain the last backup of a Database after your deprovision it. See: Final Backups
Recommended Backup Retention Policies
Production environments: Daily: 14-30, Monthly: 12, Yearly: 5, Copy backups to another region: TRUE (depending on DR needs), Keep final backups: TRUE
Non-production environments: Daily: 1-14, Monthly: 0, Yearly: 0, Copy backups to another region: FALSE, Keep final backups: FALSE
Manual Backups
Manual Backups can be created anytime and are retained indefinitely (even after the Database is deprovisioned).
Cross-region Copy Backups
When COPY BACKUPS TO ANOTHER REGION
is enabled on an Environment, Aptible will copy all the backups within that Environment to another region. For example, if your Stack is in the US East Coast, then Backups will be copied to the US West Coast.
The exact mapping of Cross-region Copy Backups is as follows:
Originating region | Destination region(s) |
---|---|
us-east-1 | us-west-1, us-west-2 |
us-east-2 | us-west-1, us-west-2 |
us-west-1 | us-east-1 |
us-west-2 | us-east-1 |
sa-east-1 | us-east-2 |
ca-central-1 | us-east-2 |
eu-west-1 | eu-central-1 |
eu-west-2 | eu-central-1 |
eu-west-3 | eu-central-1 |
eu-central-1 | eu-west-1 |
ap-northeast-1 | ap-northeast-2 |
ap-northeast-2 | ap-northeast-1 |
ap-southeast-1 | ap-northeast-2, ap-southeast-2 |
ap-southeast-2 | ap-southeast-1 |
ap-south-1 | ap-southeast-2 |
Final Backups
When KEEP FINAL BACKUP
is enabled on an Environment, Aptible will retain the last backup of a Database after your deprovision it. Final Backups are kept indefinitely as long as the Environment has this setting enabled.
Managing Backup Retention Policy
The retention period for Automated Backups is determined by the Backup Retention Policy for the Environment in which the Database resides.
The default Backup Retention Policy for an Environment is 30 Automatic Daily Backups, 12 Monthly Backups, 6 Yearly Backups, Keep Final Backup: Enabled, Cross-region Copy Backup: Disabled.
Backup Retention Policies can be modified using one of these methods:
-
Within the Aptible Dashboard:
-
Select the desired Environment
-
Select the Backups tab
-
-
Using the Aptible Terraform Provider
Excluding a Database from new Automatic Backups
A Database can be excluded from the backup retention policy preventing new Automatic Backups from being taken. This can be done within the Aptible Dashboard from the Database Settings, or via the Terraform Provider.
Once this is selected, there will be no new automatic backups taken of this database, including preventing a final backup of the database during deprovision, even if the environment’s policy specifies it. Please note: making this change on an existing database does not automatically delete previously taken backups. Purging the previously taken backups can be achieved in the following ways:
-
Using the
aptible backup:list DB_HANDLE
to provide input into theaptible backup:purge BACKUP_ID
command -
Setting the output format to JSON, like so:
Purging Backups
Automatic Backups are automatically and permanently deleted when the associated database is deprovisioned. Final Backups and Cross-region Copy Backups that do not match the Backup Retention Policy are also automatically and permanently deleted. This purging process can take up to 1 hour.
All Backups can be manually and individually deleted.
Restoring from a Backup
Restoring a Backup creates a new Database from the backed-up data. It does not replace or modify the Database the Backup was initially created from. By default, all newly restored Databases are created as a 1GB General Purpose Container Profile, however you can specify both container size and profile using the backup:restore
command.
Encryption
Aptible provides built-in, automatic Database Encryption. The encryption key and algorithm used for Database Encryption are automatically applied to all Backups of a given Database.
FAQ
How do I modify an Environments Backup Retention Policy?
How do I modify an Environments Backup Retention Policy?
Backup Retention Policies can be modified using one of these methods:
-
Within the Aptible Dashboard:
-
Select the desired Environment
-
Select the Backups tab
-
-
Using the Aptible Terraform Provider
How do I view/manage Automatic Backups?
How do I view/manage Automatic Backups?
Automatic Backups can be viewed in two ways:
-
Using the
aptible backup:list
command -
Within the Aptible Dashboard, by navigating to the Database > Backup tab
How do I view/manage Final Backups?
How do I view/manage Final Backups?
Final Backups can be viewed in two ways:
-
Using the
aptible backup:orphaned
command -
Within the Aptible Dashboard by navigating to the respective Environment > “Backup Management” tab > “Retained Backups of Deleted Databases”
How do I create Manual Backups?
How do I create Manual Backups?
Users can create Manual Backups in two ways:
-
Using the
aptible db:backup
) command -
Within the Aptible Dashboard by navigating to the Database > “Backup Management” tab > “Create Backup”
How do I delete a Backup?
How do I delete a Backup?
All Backups can be manually and individually deleted in the following ways:
-
Using the
aptible backup:purge
command -
For Active Databases - Within the Aptible Dashboard by:
-
Navigating to the respective Environment in which your Database lives in
-
Selecting the respective Database
-
Selecting the Backups tab
-
Selecting Permanently remove this backup for the respective Backup
-
-
For deprovisioned Databases - Within the Aptible Dashboard by:
-
Navigating to the respective Environment in which your Database Backup lives in
-
Selecting the Backup Management tab
-
Selecting Delete for the respective Backup
-
How can I exclude a Database from Automatic Backups?
How can I exclude a Database from Automatic Backups?
-
Navigating to the respective Database
-
Selecting the Settings tab
-
Select Disabled: No new backups allowed within Database Backups
How should I set my Backup Retention Policy for Production Environments?
How should I set my Backup Retention Policy for Production Environments?
For critical production data, maintaining a substantial backup repository is crucial. While compliance frameworks like HIPAA don’t mandate a specific duration for data retention, our practice has been to keep backups for up to six years. The introduction of Yearly backups now makes this practice more cost-effective. Aptible provides a robust default backup retention policy, but in most cases, a custom retention policy is best for tailoring to specific needs. Aptible backup retention policies are customizable at the Environment level, which applies to all databases within that environment.
A well-balanced backup retention policy for production environments might look something like this:
- Yearly Backups Retained: 0-6
- Monthly Backups Retained: 3-12
- Daily Backups Retained: 15-60
How should I set my Backup Retention Policy for Non-production Environments?
How should I set my Backup Retention Policy for Non-production Environments?
When it comes to non-production environments, the backup requirements tend to be less stringent compared to production environments. In these cases, Aptible recommends the establishment of custom retention policies tailored to the specific needs and cost considerations of non-production environments. An effective backup retention policy for a non-production environment might include a more conservative approach:
- Yearly Backups Retained: 0
- Monthly Backups Retained: 0-1
- Daily Backups Retained: 1-7
To optimize costs, it’s best to disable Cross-region Copy Backups and Keep Final Backups in non-production environments — as these settings are designed for critical production resources.
How do I restore a Backup?
How do I restore a Backup?
You can restore from a Backup in the following ways:
-
Using the
aptible backup:restore
command -
For Active Databases - Within the Aptible Dashboard by:
-
Navigating to the respective Environment in which your Database lives in
-
Selecting the respective Database
-
Selecting the Backups tab
-
Selecting Restore to a New Database from the respective Backup
-
-
For deprovisioned Databases - Within the Aptible Dashboard by:
-
Navigating to the respective Environment in which your Database Backup lives in
-
Selecting the Backup Management tab
-
Selecting Restore to a New Database for the respective Backup
-