mattgadient.com

SimpleCDN vs Amazon CloudFront

UPDATE 2 (Dec 11 2010): SimpleCDN is currently DOWN!
Posted at
mattgadient.com/2010/12/10/simplecdn-down-for-good?

Update: SimpleCDN has changed somewhat in their offerings (there seems to be a move away from the “small customer” base), and thus, much of the following is outdated.

I recently started up an account at SimpleCDN to help offload a webserver a little bit by putting static images there.  After a couple days, I decided to give Amazon’s CloudFront a try as well.

 

I’ll start off by saying this was originally going to be primarily about the performance differences. However, after a few hours of testing, I found there’s not enough of a difference to be worth mentioning – neither was consistently better than the other. Performance-wise, for the most part it really boiled down to how close each test location was to the nearest respective edge server. This was relatively small-scale testing with a site that pulled about 12 images per page (and thus pulled 12 items from each CDN), but I concluded that neither’s going to make a lick of difference performance-wise… at least, not for the typical individual who’s looking at these two for solutions.

That said, time to take a look at the merits of each at a basic level:

SimpleCDNAmazon CloudFront
Upload BucketsYes (ftp upload)Yes (through Amazon S3)
Mirror BucketsYesNo
CNAME supportYes ($5 per CNAME)Yes (free – up to 10 CNAMES per distribution)
Peering/Edge locations1314
Set Expires HeaderYesDifficult but possible
Set Gzip EncodingYesDifficult but possible
Payment frequencyPay-as-you-go. Start with $15 free. Minimum $50 top-ups.Pay-as-you-go. Billed at end of month.
Minimum monthly fee/costNoneNone
Starting Price per GB of transfer3.9 cents17 cents (more for non-US locations) + transfer cost to/from S3
Storage cost per GB / month75 cents15 cents (Amazon S3)
Starting cost per 10,000 GET requestsfree1 cent

Preface:
SimpleCDN was designed straight-up as a CDN, and meant to be simple (hence the name). CloudFront on the other hand is built upon the structure of the other Amazon services, and can be thought of as more of a “bolt-on”. In fact, CloudFront uses (and requires) the Amazon S3 service for hosting the files – CloudFront then pulls the files to the CDN from S3. These are very different approaches. SimpleCDN is generally simpler to use, and more powerful in the options it offers. That said, anyone already using Amazon S3 extensively will probably feel more at home with CloudFront.

Upload Buckets:
For those unfamiliar with the way these work, you basically upload the files you want on the CDN into what’s called a “bucket”. It’s a pretty simple concept – you basically end up with a new URL where those files are located – no different from linking to files on a separate server/website, except that these are now on a CDN and should be served closer to whichever users are requesting them. Both SimpleCDN and CloudFront can use them. For SimpleCDN you use your favorite FTP client to upload the files. For Amazon CloudFront, you put the files up on Amazon S3, and set it up to pull from there.

Mirror Buckets:
For those unfamiliar with these (also called “origin pull”), these are often easier to implement with dynamic websites – particularly those where static content you may want on the CDN (such as images) are often uploaded/added to the site. Both WordPress and Drupal have plugins for these. All the content you want on the CDN stays on your server/website. Requests for those files are redirected to the CDN which “pulls” the file(s) from the server/website, and begins serving them through the CDN. SimpleCDN has support for this. CloudFront does not.

CNAME Support:
This is often more of a “vanity” feature than anything else. It allows you to use something like cache.mywebsite.com, images.mywebsite.com, static.mywebsite.com, cdn.mywebsite.com ….. you get the idea. You basically use a subdomain or domain that you own, and use a CNAME in your DNS settings to point it to the CDN. That way, viewers see your pretty, professional-looking name as the page loads instead of an ugly long url. To be frank, most viewers won’t see/notice the difference with content that’s loaded within the page (template images, css, etc). In any case, both SimpleCDN and CloudFront offer this. SimpleCDN charges a 1-time fee of $5 for each CNAME you set up, while Amazon includes them for free (but with a max of 10 per distribution). This is one area where Amazon really has the upper hand price-wise, particularly if you’re looking to add a lot of CNAMES.

Peering/Edge Locations:
Both have a comparable number of locations, and for the most part they’re in relatively similar geographical regions. Unless you have a *very* specific geographical target (a specific city for example), neither’s likely to come ahead in this respect (the similarities were reflected in performance testing I did).

Expires Header and gzip Encoding:
SimpleCDN wins in this area hands-down. There are currently 17 combinations, and what they enable (a certain expires length, gzip, or both for example) depends on what URL you use to access the bucket making it easy to mix/match between them. As far as Amazon’s side goes, from what I understand you can set expires headers through S3 which will be pulled to CloudFront, but you need particular software to do it. CloudFront won’t gzip content either. You can technically get around it by pre-gzipping the content and using the PHP on your site to determine whether to grab the gzip or non-gzip version of items depending on the browser’s capabilities, but really… you get the idea. It’s ugly. SimpleCDN is simple, easy, and just plain comes out ahead here.

Payment:
SimpleCDN is completely pay-as-you-go, and they currently start you off with a free $15. At under 4 cents per GB, you’re looking at close to 375GB of transfer before you use it all up (minus any storage). You can also use part of this free $15 for the $5 CNAMES if you’d like. Once you’ve used it up, you’ll have to add more if you want the CDN to remain accessible. The lowest amount you can add at a time is $50. Amazon on the other hand simply bills you each month for your usage. Which is better is a matter of perspective.

Minimum Monthly Fee/Cost:
Neither have monthly fees, minimums, or costs. You pay for what you use – that’s it.

Starting price per GB of transfer:
SimpleCDN charges 3.9 cents per GB, no matter where the traffic is coming from. This gets even cheaper if you hit the 100TB mark in any given month. CloudFront on the other hand is a fair bit more expensive. Amazon charges anywhere from 17-22 cents per GB (depending on the location the content’s pulled from) for the first 10TB, after which the price starts going down. SimpleCDN is clearly ahead here.

Storage cost per GB / month:
SimpleCDN charges 75 cents per GB of storage per month. Since the Amazon content is stored on their S3 service, it’s much cheaper – starting at 15 cents per GB per month. However, with Amazon you’re also hit with all the S3 rules – so you’re charged for both data-transfer (including each time CloudFront pulls the files from S3), as well as GET/PUT/COPY/etc requests. Amazon is still likely to come out ahead here (especially if you store many terrabytes of seldom-accessed content), but it’s worth doing the math to see.

Starting cost per 10,000 GET requests:
SimpleCDN doesn’t charge for these. Amazon does, and Cloudfront will charge a penny for every 10,000 GET requests. Calculate how many static contents are on your website page that you’d be serving from the CDN. Multiply it by the page views in a month and you’ll get a rough idea as to how much this will cost.

A few notes I couldn’t quite squeeze up there:

  • If you use SimpleCDN and decide to use CNAME’s as well, be sure to type it in correctly when creating it! Most of SimpleCDN’s website is very easy/intuitive, but the CNAME part is one area that isn’t as clear until you *read* it.
  • While you can use as many expires/gzip options and combinations as you want, note that each CNAME can only point to ONE of these combinations at a time.
  • There’s a Firefox plugin called S3Fox which is one of the quickest/easiest ways to upload files to Amazon’s S3 (and then push to CloudFront). You do have to read the instructions though – otherwise you’ll be right-clicking for a while to figure things out.
  • Setting expires headers can help to reduce your transfer costs – possibly by a substantial amount.
  • SimpleCDN has changed their policies in the past – they used to charge a flat rate depending on the file-size, and then give unlimited transfer. Hopefully they’re out of the “growing/learning/testing” phase and are well-settled on the current policies and prices but be aware that it wasn’t that long ago that things changed – they could always change again (in other words, don’t go adding enough money to cover you for the next 5 years of traffic – things could change)

So which CDN comes out ahead? Definitely SimpleCDN. It’s easier to use, it’s more flexible/powerful, it’s less than 1/4 of the cost of CloudFront, you won’t go mad with a calculator trying to predict your costs, and the “Simple” part of the name is well-earned.

That said, Amazon CloudFront is still a viable option in certain cases. If you’re already familiar with (and like) the S3 service, adding CloudFront to your mix may be a no-brainer. It’s also likely to be a less-risky bet since SimpleCDN has already scrapped/revamped their entire pricing structure once (much to the dismay of many), whereas Amazon’s been a relatively stable company for years. Amazon also has many strengths as a storage option. Finally, if you’re looking for a lot of CNAME’s and aren’t as concerned about expires headers and gzip (or are willing to go to the lengths to manually work them out), Amazon does give them out for free.

  • Just wanted to say I really enjoyed this article. Thank you! I’m considering using simpleCDN for some of the images on our site.

  • Thanks for the objective review Matt. I’ve been evaluating the budget CDN’s (these plus Rackspace Cloud Files), and found SimpleCDN to have a very significant advantage over both — they support HTTPS content delivery. Amazon has HTTPS support only with S3, and Cloud Files has no support at all. This might be good information to add to your review, as I have had trouble finding it on google.

  • Gonzague

    ahhh thanks so much i was looking for a comparison between the two… 🙂

  • Drag

    I would like to clear some doubts,Can we Mirror a Online streaming music website?My coming website is hosted in a high performance dedicated server.Now i want to improve the performance,Can i do it,?Also after pulling the content from my server to the cdn server,that file will be stored in the CDN server for ever or for just some time?

    • Drag:

      I haven’t used SimpleCDN in that capacity (for streaming), so I can’t say for sure.

      However, think of a mirror bucket as a “dumb file server”. It won’t do any processing tasks. All it does is serve up files. So if your streaming site is simply pointing the client’s flash/whatever viewer to an mp3 file (so that the client is actually downloading an mp3 file and it’s simply being played by the flash/whatever viewer), it should be workable. If you’re actively streaming the file on the other hand, it won’t, because a mirror bucket’s just a “dumb file server” and won’t run any scripts. It can serve files – that’s all it’ll do.

      Now SimpleCDN does have streaming buckets (“Live!” buckets), but those look to be meant for video, and I doubt the price is really suitable for less-bandwidth-intensive audio streaming.

      In terms of performance, when using mirror buckets, the file’s often only stored on the CDN for a period of time. So every so often, it has to re-pull the content from your site which actually takes *longer* than serving it yourself (after which it should be shorter until it has to re-pull again but that really depends on the CDN’s performance compared to your own).

      Really, mirror buckets aren’t designed for large files. They’re better suited to multiple small static files which benefit from being distributed around the world and served locally to reduce the latency in pulling each one of them (like for a webpage with 20 jpg/gif/css files where overhead due to latency is larger than the actual time to transfer the files).

      Keep in mind that if you’re looking to optimize the performance of your server, it also depends on what you mean here. If your server load is high, it’s generally due to scripts – actual file transfers take very little cpu power, and a CDN would do zilch for you here. If on the other hand the main issue is that you’re choking your bandwidth, have heavy i/o, or have an insane number of connections causing problems, looking to serve the files from elsewhere isn’t a bad solution to look into, and a CDN could be suited to the task, although there aren’t any guarantees that it’ll perform better – remember that the goal is to have gains by serving the files from an local edge cache, and when you’re talking about a large single file, there isn’t usually a lot in the way of gains to be had here.

  • Ted

    I’ve been a customer of SimpleCDN for about 1 year now. I do have to say that without a doubt, they are the easies to use (when using Mirror Buckets) and the least expensive BUT, I frequently find their service to have major latency.

    Nearly every other day, I find my javascript files are not downloading from SimpleCDN which blocks rendering of my web app. Often times, the latency in downloads can be 5-7 seconds!

    If they simply fixed these non-stop latency issues I’ve noticed for the past 6 months, I wouldn’t leave. But unfortunately, I’m having an extremely difficult time finding another CDN that offers Origin Pull services that isn’t insanely expensive.

  • Julius

    I went to sign up at SimpleCDN because of this post. What I found was that I had to have $1,000 in my account to create a new bucket… so it’s not “pay as you go” anymore. And even then I found out “Currently Upload and Mirror buckets are SOLD OUT.” It seems like a mickey mouse operation compared to Amazon, so I’ll stick with Cloud Front until they get all this sorted out.

  • Matt

    SimpleCDN does not nor have they ever had 13 edge locations. They currently have one PoP in Chicago, and nowhere else. They used to have one pop somewhere in europe, bringing their max total to 2. They also now have a $1000 minimum deposit. Amazon now has 16 PoPs.

    If you use too much traffic on SimpleCDN (3tb+), even if you have enough balance for it, they will kill your account, purge your files, and keep the money, which was less of a problem when there was no minimum deposit. They also have a habit of reneging on price offers, such as when they offered a pay-once store-forever deal.

  • Gavin Erickson

    SimpleCDN are a strange bunch. I’ve used their upload buckets with good success. But once the funds run out, account locked, not ever had an email back from their customer support.. (4 hrs response 24/7 my ass!). Paid some funds in. Account still locked. I let my account ride for a while when they were asking for 1,000 bucks! but once its come down to what is expected its still locked. On this experience I wonder if they are still in business? Just sending money into outer space… Probably one to avoid, and certainly don’t put any scheduled payments on! (unless you have money to burn)

  • Julie Alexander

    The article mentions a storage cost but Amazon’s site (http://aws.amazon.com/cloudfront/pricing/) only mentions cost for transfer (as well as invalidation cost). Did this change since the article was written or am I reading this wrong?

  • Julie:

    Unless something’s changed recently, Cloudfront won’t work without S3. That said, the pricing has changed considerably since this was written.
    http://aws.amazon.com/s3/#pricing

    SimpleCDN’s also… well… gone now. As I indicated in the original update at the top, the comparison and pricing are outdated.