Also Glacier export would be nice for long term cold storage of database backups.
But a restore capability is essential.
Also Glacier export would be nice for long term cold storage of database backups.
But a restore capability is essential.
I think this is a replacement for rolling your own database exports for analytics applications with Sqoop or Spark.
AWS DMS also supports incrementals (using the change-data-capture features in the DB).
Was there no option to add a transformation to your DMS routine to handle that?
backup storage on postgresql is billed at $ $0.095 per GiB-month same on Aurora is billed at $0.023 per GB-month
If you include Glacier, then it is 100x. I truly believe that AWS charges these costs because they make a crazy amount of premium with that. And that is why these exports are architected to be non-restorable.
We use snapshots for regular backups, and have implemented a solutions to share and copy snapshots to a different aws account.
But given that our production database is absolutely vital to the existence of the company I’d like to have an easy way to create a secure ‘not affliated with Amazon’ copy regularly in case of the nightmare scenario where an account is compromised/terminated
rsync.net has 'rclone' built into the environment[1] so it is trivially easy to call rclone, over SSH:
ssh user@rsync.net rclone s3:/some/bucket /rsync/account
... and perform arbitrary data movements into, out of, and between S3/glacier/nearline/gdrive resources. Your "out-of-aws solution" contains ZFS snapshots, on any schedule you like, so you can just do a "dumb" sync to rsync.net and handle the retention with the snapshot schedule.Also, the snapshots are immutable (read-only) so your data gains some protection against ransomware and other threats like accidental deletion.
You should trust us with your backups because we've been doing this since 2001.
The challenge with RDS in the past has always been getting the data easily and scriptable into an S3/etc bucket to start with. This might be a good enough solution.
Restore would be a pain, but at the point its needed the pain would be acceptable.
I can't speak specifically to this, but I will point out that you can just as easily run those 'rclone' commands in reverse, to move data from an rsync.net snapshot out to (insert cloud):
ssh user@rsync.net rclone .zfs/snapshot/1dayago/bucket s3:/some/bucketThe ssh access is not to Amazon, or S3 or RDS, etc. - you run the rclone command at rsync.net, over ssh:
ssh user@rsync.net rclone s3:/some/bucket local/rsync.net/dirHow do you do this if the db is encrypted? Or rather, how do you restore from the encrypted backup in the second account if the master key in the original account is somehow deleted without anyone noticing and intervening before the deletion becomes finalized?
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_...
One day in S3 = 10 days in Glacier and since Glacier is presumably for years, the cost difference is trivial.