How to backup and recover Cado in AWS
Cado backs up any imports to S3 which can then be re-imported later to a fresh instance. This is the simplest method for backups. You will need to restore the data volume if you want to recover user settings such as user logins, and processed data.
Backup and Recovery for default non-HA deployments
This section explains how to recover or migrate the Cado platform to a new instance.
If a Cado instance fails, you will need to recover and attach the data volume to a new instance. The data volume contains previously imported data as well as user settings.
You can also use this approach to migrate Cado to a new availability zone or region.
Scheduling Automated Backups of the Data Volume
Amazon EBS Snapshots are stored by AWS in Amazon S3, where it is stored redundantly in multiple Availability Zones.
You can create an EventBridge rule that regularly (e.g. daily) backs up the CadoResponse EC2 instance:
For more, see this tutorial from AWS.
Restoring the Data Volume
To perform a migration or restoration to a new instance, deploy a Cado installation and Stop the Cado EC2 Installation.
The operating system volume will be smaller (typically 10 GB). Detach the larger Data Volume (/dev/sdh
seen below):
Next, restore the Snapshot backup of your old Cado installation to a Volume in the same availability zone as your new Cado EC2 Instance.
Then, simply attach the restored Data Volume to your new Cado EC2 Instance and start it.
Backups with High Availability
If you have opted for the High Availability deployment in AWS, back-ups need to be enabled for the native AWS services used in the deployment:
- https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-snapshots.html
- https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html
- https://docs.aws.amazon.com/efs/latest/ug/awsbackup.html
- https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups.html
You can also enable automated back-ups in the CloudFormation or Terraform deployment template, for example with:
- ElastiCache:
SnapshotRetentionLimit: 7
SnapshotWindow: "03:00-04:00"
- RDS:
BackupRetentionPeriod: 7
PreferredBackupWindow: "03:00-04:00"
- OpenSearch:
SnapshotOptions:
AutomatedSnapshotStartHour: 3
Snapshots are not enabled by default for cost reasons.