Is there any possibility to use Amazon S3 for Mac OS X time machine backups?
Or in other words: Use S3 rather an external hard disk for time machine backups?
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.Sign up to join this community
I've used arq for years and love it. It is not timemachine (bummer) but does do automatic backups to either Amazon's S3 or Glacier.
As of 5/4/2015, Arq supports incremental backups the following services:
Using AWS S3 as the storage of Mac Time Machine definitely works now.
Time Machine can backup the data to external device, so the key is mounting S3 bucket as a POSIX FS in Mac.
Once you mount the S3 bucket as local device whatever above tools you prefer, you can follow this guide to create a sparse image in S3 mount point(actually it's created in S3 bucket) as the destination of time machine backup.
Also you are recommended to enable S3 IA or intelligent tier for saving cost. You can also use KMS to encrypt the backup data stored in S3.
Edit: I tried this and it didn't work. (Time Machine cannot see the mounted volume/bucket.)
You may be able to use Panic's Transmit app to [mount an S3 bucket as a local Volume] and then point Time Machine to that mounted volume as the destination.
I haven't tried this yet, but I plan to.
Short answer: No.
Although Time Machine cannot use Amazon S3 as a backup medium, you could set a cron job to rsync your files and folders that you wish to backup OR you could use a GUI program that manages the backups for you, such as Jungle Disk (which is cross platform).
For an even better (and slightly more complicated), you could combine the two and use rsync and Jungle Disk together to backup your data to S3. Check out this gudie for instructions.
Here is a list of backup programs that take advantage of Amazon S3
Haven't tried it myself, but Dolly Drive is designed to create a Time Machine volume that exists "in the cloud"
There are some great tools already in existence that can do most of the heavy lifting for you. The primary tool for doing remote directory syncs is called s3sync which is a script written in Ruby. Lucky for us OS X comes with Ruby pre-installed so there isn’t much work to get it working.
Here is my step-by-step guide to getting your machine setup to do automatic daily backups to Amazon. I developed these steps on my MacBook Air running Leopard however they should work for previous versions of OS X as well.
* I cannot confirm the success of this method
Also remember even though it's backed by S3, S3 isn't a file system. You cant read or append to an existing object, it needs to be completely rewritten (Put) every time it changes. I'm not sure what this will translate to in terms of costs with the Macs Sparse Bundling format used by Apples Time Machine where the volume is divided into 8MB chunks.
I believe there is an issue in that TimeMachine backups use file links, so that it doesn't need to duplicate the files for each backup version. S3 doesn't understand file links, so either copies the file, taking huge space and bandwidth, or doesn't, meaning downloading a complete version is very fiddly, depending on the
--[no-]follow-symlinks parameter, default is to follow them. (I presume the backup services get round this.)
I just needed a backup of individual files, rather than a fully bootable, versioned dump, so I set up a bucket in S3, then used the following bash script:
until AWS_SHARED_CREDENTIALS_FILE="/path/to/credentials/in/mounted/encrypted/file" \ AWS_MAX_ATTEMPTS=99999 \ aws s3 sync /path/to/backup/ s3://mybucket/path/ \ --storage-class DEEP_ARCHIVE \ --region my-region-1 \ --output json \ --sse-c AES256 \ --sse-c-key "fileb:///path/to/encryption/key/in/mounted/encrypted/file" \ --no-follow-symlinks \ --exclude "*.ssh/*" \ --exclude "*.aws/*" do echo "Retrying whole backup unless you ctrl+C within 2 secs" sleep 2 done
The encrypted file can be binary, although I kept it unicode so I can store a copy. I put both my AWS credentials and the encryption key in encrypted drives that I can mount while I back up.
I chose deep archive - request to download can take 24 hours, but it is 0.01 cent per gigabyte month.
I timed transfer rates to each AWS location then chose the quickest, cheapest one (prices vary slightly).
This script then loops until sync returns 0 (I've a very unreliable connection).
Cost me $24 to upload the files (400,000 PutObject requests), then $6 a year to store 450GBs.
Files will not be consistent, so this isn't any good for eg, backing up application state at a point in time. But it is a good last resort back up of files, should all my offline backups fail (this was inspired by a home robbery in which laptop and disks were stolen - fortunately they missed a hidden hard disk).