Using Amazon S3 for photo backup
Intro
I recently became a happy user of Amazon S3, using it for photos backup at a price which should never exceed the common commercial options like Google Drive and Dropbox.
Before you raise a finger, yes, S3 is not a direct analogue of Dropbox, but I will make the argument that for most photographers, constantly syncing, feature-rich cloud document storage solutions like Dropbox and Google Drive are an overkill anyway.
I currently pay roughly $1.20 for a library of 200 GB, and at this rate it will take me roughly 50 years of shooting pictures to get to a place where I’d be paying the price of Dropbox. Needless to say, this makes me happy.
Background
Many years ago, in a weird hardware glitch, I lost, in one instant, the internal hard drive of my laptop, and the ‘backup’ drive connected by USB. My photos, my documents — all gone beyond restoring. I am an IT professional, and to this day the unlikelihood of this makes me uneasy.
Since then, I made 2 adjustments to my backup strategy:
- All photos and important files are backed up to some or other cloud,
- The USB drive used for a local photos backup is only taken out to copy a new batch and otherwise stored in safety and serenity.
The latter went through a few transitions. I quickly outgrew my free Dropbox storage, and for reasons explained in an earlier post, I opted for Google Drive as my backup. I started with 100 GB, and then added another 100 GB through some promotion.
As my photos library reached 200 GB this year, I went looking for better solutions, still determined against paying for more storage than I need.
The argument for “cooled” storage
Photo negatives (RAWs, DNGs, etc.) do not generally need to be constantly accessible — once JPGs are burned and published to your cloud album of preference (Google Photos in my case), the originals, along with a copy of the edit settings, can be safely stored away indefinitely.
Having realized this, I turned to Amazon S3 and Google Cloud Storage. Both companies offer price models which get more affordable the “colder” the storage class you choose. Here’s Amazon’s price list as of writing, for example:
- Standard Storage $0.039 per GB,
- Infrequent Access $0.020 per GB — twice cheaper,
- Glacier Storage $0.006 per GB — a further 2/3 cheaper.
Dropbox’ and Google Drive’s price of $0.01 per GB for 1.000 GB is equivalent to:
- 256 GB of Standard Storage,
- 512 GB in IA,
- roughly 1.666 GB in Glacier.
Obviously, the colder and cheaper the storage class, the less the storage provider wants you to touch this data. They impose two barriers:
- Time to access: Files may not be accessible on demand, but may instead require some time to become available following the request.
- Cost of access: ‘Thawing’ files back into Standard Storage costs a fee, and downloading them costs another.
There is an admittedly long price list of operations which can generate costs, which is worth examining in detail, but it comes down to this:
- Transitioning data between classes,
- Transferring data out (downloading),
Ultimately, I would recommend trying out a small subset of your data (say 50 GB), to see how things work without risking spending too much.
Lifecycles
If you’re like me, you want to keep your latest albums more accessible for a while prior to transitioning them to colder storage, in case you’ll want to re-process them. S3's Lifecycle policies allow you to manage this automatically by scheduling the automatic transition between storage classes.
My configuration is:
- 30 days from uploading, transition to IA
- 60 days from uploading, transition to Glacier.
Note that you cannot (should not) transition from IA sooner than 30 days, because that too is penalised. Likewise, deleting files from Glacier sooner than 60 days from adding is associated with a penalty.
Workflow
When I’m done editing an album, I have an album folder with:
- a folder of RAFs (I shoot with Fuji),
- a folder of DNGs (converted with Iridient Developer and sorted),
- a subfolder of burnt JPGs,
JPGs go into Google Photos, and the whole thing goes into S3, uploaded with the free version of CloudBerry Backup. Done. It’s dead simple.
Costs
There is a cost of entry in my experience. Uploading is free, don’t get me wrong. It’s just that the pricing model is unusual for regular consumers, and you are bound to do something ‘wrong’ before you settle in, and develop the intuition of how the service works. Luckily, the cost of this is usually pretty negligible if your collection isn’t in the terabytes.
Here’s my first month for example. It took me a week or so of playing around (obviously not full time) to get the hang of things and gradually upload my entire collection to S3.

In fact, since I misunderstood the concept of Buckets, I’ve uploaded my stuff several times and moved it around a lot before I realized that all you need is 1 bucket with whatever folder structure you want inside. I overthought it at first.
As of week 2, I settled into my now-stable 5 cents / day cost of usage. As for transitions, I’ve manually transitioned all prior years’ albums to Glacier on import, left the current year in IA, and the current month in Standard.

It’s curious to visualize the relationship between data volume and cost per class, because it illustrates the importance of choosing your classes wisely. Note how the small portion of the volume in Standard accounts for a large portion of the cost, and how this is reversed for Glacier.

When the costs are broken down by type, it becomes clear why the first month cost more than just what the storage would have. Here you see the cost of goofing around with files en masse.

In Month 2, however, the situation became stable.

Despite the relatively stable evolution of total cost, a few things happened.

Closer to the end of the month, OCD drove me to rename an album in Glacier. I suspected this is not a good idea, but the folder was small (2 GB or so), so I went ahead and did it.
Turns out, S3 can’t do anything about files unless they are in Standard, so it had to transition the folder out before renaming it, hence a small transition cost, and the increase in volume in Standard. In the previous chart with the total running cost, you see that this cost me 2 cents.
Here is an overview of my second month, which I consider semi-normal use:

It’s worth highlighting that all storage costs are billed for GB-month-hours. In the example where you would have 1 GB of Standard storage for 6 hours, which you then transition or delete, you’ll be billed $0.000325:
$0.039 * 6/24 h / 30 days
As of writing, in July, my running cost continues to be 5 cents per day with a volume of roughly 200 GB:
- 1/3 of what I would have been paying for conventional storage,
- With a higher SLA,
- With acceptable limitations,
- And with options to save yet more.
The obvious omission from the above is the recovery. By my calculation, a full recovery of my current library from Glacier onto my hard drive should cost me less than $6, which means that I can recover my files every day and still run a saving compared to having been using Dropbox.
Summary
I am extremely happy with S3. All told, even if I trust Dropbox enough to have it store all of my documents, I feel like S3 is even safer, because it’s an industrial solution, and interactions with it are limited by necessity which reduces risk.
Today, my recovery options are as follows:
- The last year of photos remains on my laptop,
- The entire library exists in S3, on an external hard drive on a pillow, and soon — on a NAS which I am in the process of assembling.
Between these three (soon four), there is plenty of flexibility and redundancy. If worse comes to worst, I also have a copy of the burnt JPGs in Google Photos — a lossy copy, granted, but better than nothing if Europe with my hardware and Amazon’s Irish servers is nuked, but Google’s US servers remain intact.
Then again, let’s face it, in that case it would be some time before I could worry about my photos.
Footnotes
- The chart visuals are screenshots of a Power BI dashboard I wipped up to track costs throughout this experiment.
- I have another 4–5 months of ‘free’ 100 GB with Google Drive. Currently that syncs with the current year of photos on my laptop, but I will not be renewing this storage.
- I have switched Google Photos to ‘High quality’, which is their free-unlimited tier. I did not notice a quality downgrade in regular use, which is to look at photos on a small screen.
- I am a Lightroom user. Luckily, Lightroom copes well with folders missing. When I remove a year from my laptop’s hard drive, it does not mind, and I can continue to use the same catalogue (which I back up every time I back up the photos).
- Google Cloud offers storage similar to Amazon S3, at a similar price. My take is that their price model is slightly simpler, but slightly more expensive. I also preferred Amazon for their interface, speed, and availability of documentation. I am extremely happy with all three.
- Amazon S3 initially confused me with Buckets and Objects, which, it seems, have changed meaning in the past. Best I can summarize, an Object is a file, and a Bucket is like a share, or a drive — a level on which you’d want to manage permissions. Understanding Objects was important, since all actions are done on object level.
