If you pay more than 20% of the advertised rates of AWS bandwidth, you're being robbed. 10% or less is doable.
If you need durability guarantees, consider if the cost problem is storage or bandwidth. If the problem is bandwidth costs (in other words: your data set is small and accessed often), store at S3 or Backblazer or similar, and place a server or two at a cheap bandwidth host with Nginx and aggressive caching policies.
I've done this for a couple of customers who did not trust other data storage options with their data, and you can rent a server + multiple TB of transfer for a fraction of a the cost of 1TB transfer from S3....
Look into IPFS, interplanetary file system. You still need machines to serve files. However, the system has some definite advantages:
1. A file/directory is referred to its immutable hash.
2. A request for a specific hash is made to the network, not a single machine.
3. All machines that have that hash can swarm-download, like bittorrent
4. All communication is point-to-point encrypted
5. For backend, you can mount IPFS directly to the file system, via /ipfs and /ipns
The gist behind this is allows you to create a backend CDN of whoever is cheapest right now, and then load the images on your webpages (as gateways). It's still alpha, but so far my stability (and others running it) have shown that this system can easily handle large archives (800GB and up).I really wish more people knew about them. They are great.