SQL Server – Define Log Shipping File Locations on AWS

awslog-shippingsql serversql server 2014

We are in the process of using an instance within AWS to act as our secondary server. This instance will act as the secondary server in our log shipping process.

How would the "drop" (written by primary) and "pickup" (read by secondary) locations be defined if they are within one of the AWS S3 buckets? Or is there some other place to put them instead of the buckets?

Best Answer

My preferred solution here is to write the backups to a file share managed by a separate Windows file server (likely an EC2 VM). This way, if your SQL Server goes down, the backups are instantly already accessible on that EC2 VM (as opposed to doing backups locally on the SQL Server, which are inaccessible when the SQL Server goes down.)

Then, on that EC2 VM file server, use an S3 folder sync tool that automatically uploads your local backup folder up to an S3 folder.

On the subscriber side (which can be in a different AZ or region), use another EC2 VM file server with the same cloud file sync tool, which then makes the files accessible via UNC path for your subscribing SQL Servers.

Use the native log shipping jobs, but don't use the file-copy job (since that's handled by the two EC2 VMs syncing to S3.) The two log shipping jobs will have different targets, and that's fine.