0

I have about 30 AWS instances, each running SQL Server. I want to back them up onto an AWS EBS Volume or S3 bucket - using a free solution.

I was thinking of creating a large volume and mapping each of the instances to it, to backup directly onto it, or to create local backups, which I can then copy onto the central volume. Would this be a good solution?

Another solution would be to set up local backups, then create scripts to FTP the backups to a central server (or copy to S3 https://aws.amazon.com/getting-started/tutorials/backup-to-s3-cli/).

Techboy
  • 1,550
  • 7
  • 31
  • 49

1 Answers1

1

You're best off archiving to S3 IA class, as it's cheaper storage but reliable.

An EBS snapshot already stores backups to S3, and can be scheduled. However, the disk images may not be perfect if a write is in progress when the snapshot is taken. They're probably good enough though, but it depends on how critical your data is.

If you move your SQL Server databases into RDS it manages backups for you. That's definitely something to consider. I suspect you get a bit less control than running on EC2 instances.

I'd do this, in a loop for each instance

  • Dump the database to a flat file using command line tools, probably to a temp directory
  • Optionally compress the file
  • Use the "aws s3" commands to upload the file to s3
  • Delete the original file on your file system - just to save disk space

Alternately you could use s3fs to map a folder to s3, then simply copy the file to that location in your file system.

Tim
  • 31,888
  • 7
  • 52
  • 78