When you’re really pushing traffic, Amazon S3 is more expensive than a CDN

I had largely ignored the Amazon S3 pricing hike or decrease (depending on who you are) which included the addition of a per request charge. It really popped up again when I was recently talking to a new accelerator (just a few) + CDN customer recently.

They have about 9 million images taking up ~200 GB of space (average size is around 20 kb). The images are served from the hundreds to a million in a month (a busy one can be nearly a 100,000 hits in a day). In a given month they did 8,025,705,676 requests out and 21,506,532 in requests (backups and uploads). 97.3% of the request are “out” and 2.7% are “in”, and a total of 68.2 TBs was pushed.

There’s 86400 seconds in a day, and 2,592,000 in a 30 day month.

So in month of June that meant 3096 requests/second out (roughly what you can get out of 3-4 nginx/lighttpd/mainly-tuned-apache web servers.

When I feed that into the nice AWS simple monthly calculator

Storage                       $30.00
Data Transfer         $10,626.80
Requests                 $8,240.78
------------------------------------
Total                      $18,897.58

Now, working backwards how much is this in US$/Mbps?

68,200 GBs/month = 212.5 Mbps

How much is that per Mbps (I’ll round it up by 8 cents)?

It’s $90/Mbps.

The interesting thing here is that $90/Mbps is a bit expensive for pushing ~200 Mbps out of a single datacenter.

In fact, if you’re going to be pushing that (and growing) than it is more expensive that what you can negotiate out of CDNs from AkamaiLimelight or Level3.

With the difference being that Akamai is pushing from “25,000 servers in 69 countries” and Level3 is one of the few Tier 1 network providers and their pricing includes 14 datacenters in the US, 11 in Europe and 6 in Asia. All for less than the S3.

It’s pretty simply to see for a site that is 98% downloads, 2% uploads and a smaller file size, the per requests pricing makes Amazon not even price competitive with major CDNs.