Last Updated: February 2013
Over the past year I’ve managed a site that has gone from consuming 500 GB of data per month to 100 TB of data per month. Here is the progression of CDNs that I went through and my thoughts on each. This is by no means a comprehensive guide to every CDN network out there, but I learned a lot with my time at each.
Let me just begin this by saying, I would not under any circumstances use Cloudfront as my CDN unless you want to flush money down the toilet.
This is where we started out, it’s Amazon Web Services, I was already intimately familiar with their services. We needed 500 GB per month, so nothing too crazy. At this point, we had just started implementing a CDN to serve our large image files that were already uploaded to S3. 12 cents per GB didn’t seem that expensive back then, but, there was also an additional charge per 10,000 requests. Again, the amount of requests was negligible back then, so I believe our total cost was under $100/month, which was completely fine.
We started running into other items that made using Cloudfront frustrating. There’s no way to invalidate items through the online AWS interface. You have to use their command line tools or write a script to clear a specific file from the cache. Not that big of a deal, but its nice to be able to login directly to your provider to do so. I had to write a script to clear a few files in a cronjob anyway, so easy enough to rig up a little interface to clear user specified items as well. The reporting is not good either, that’s just not what they focused on.
MaxCDN / NetDNA
Let me say first off, that I loved MaxCDN. Their backend interface is a joy to use. They’ve got nice good looking graphs on just about every metric that you could want. Invalidating an item in the cache is easy as pie. Shortly after we started the relationship, we got moved to NetDNA, which is I believe the umbrella where they put their bigger customers and try to get you locked into a long term contract. Anyway, it’s the exact same websites as far I can tell. I believe our final negotiated rate came out to around 5-6 cents per GB, although don’t hold me to that exactly.
This brings me to the most important item about CDN pricing, you should negotiate. Apparently the CDN world is very cutthroat, and they are very easy to play back and forth off each other. It actually reminded me of the last time I got a mortgage quote, having account reps ask to see the other’s contract and such. When I first was getting price quotes from MaxCDN/NetDNA, I was able to negotiate a price without the benefit of another competitor bidding against. I just got a better quote because I try to never pay full price if possible. MaxCDN runs excellent promotional deals all the time anyway for both new and existing customers.
In the end, there turned out to be some limitations around caching actual content that was causing a certain section of our application to fail, which was a dealbreaker for us. I won’t get into specifics, but they get a thumbs up from me on both service, UI, and price. It would’ve worked for 99% of my use cases, just not for this one specific instance.
Edgecast is a very large company, has a very good network, and very competitive pricing. Their system was able to handle the problem we were running into with NetDNA, so we negotiated a deal and signed it. Their pricing wasn’t as good as NetDNA, but their backend allows for a lot flexibility. It is a backend that was definitely built by developers for developers. The UI leaves a whoooooooole lot to be desired, but you can do anything you could imagine from a caching standpoint. With NetDNA I would feel comfortable having a non-technical person login to clear the cache on a file, with Edgecast I would not feel so safe having that done.
They do try to nickel and dime just a little bit with some addon features as opposed to having everything built into the price. I can’t remember what all exactly, but for example Real Time reporting. Again, this is who we’re currently using, and they’ve got excellent pricing and excellent flexibility from a development perspective. If you could create my perfect CDN, it would be the price and UI of NetDNA with the flexibility of the Edgecast administration
I’m not going to get into speed comparisons. I did a little speed testing and the speed in every instance came out to an almost negligible difference. All 3 were very fast and by all accounts seemed to have very robust networks.
There are 2 things you should have gotten out of this:
- Don’t use Cloudfront
- Negotiate price
- I prefer MaxCDN/NetDNA but it really comes down to what your needs are
And yes, of course, there are many other CDN networks, but this isn’t about them.