Content Delivery Networks
Introduction
Every day millions of YouTube videos are watched, popular sites such as Facebook are getting billions of hits per day, and new patches and downloadable content are released for your favorite video games. Because of the massive amounts of bandwidth that are required to deliver this content, most companies turn to content delivery networks to help relieve some of the stress on their network. Because of the high demand for CDN’s, more and more companies are beginning to offer the service. They range everywhere from pennies per GB of data transfered to, well, an undisclosed amount reserved for the big boys (such as Akamai and Limelight). Here we will go over various pay-as-you-go CDN services, testing their response time, speed, prices, and features.
Response Time
[Pingdom Graphs Will Go Here]
Download Speed
It doesn’t matter if you’re using a CDN to deliver images, stylesheets, and javascript for a web page or if you’re using it to deliver applications 100MB and above. No matter what the use is, you probably want it to be fast. Lets take a look at various CDN download speeds. I didn’t have access to the Akamai account, so I was unable to do more than one cache miss test. As for Rackspace Cloud Files, I didn’t have the time to re-upload 100MB files for every test I wanted to do. Below are graphs representing various CDN’s and their download speeds. Each graph represents download speed tested from one location, as visible in the chart title. Blue graphs represent cache hits, and red represent cache misses. Keep in mind that these speed tests can be inaccurate due to network congestion on the VPS used to run the speed test. These tests were ran around 7PM EST (-5 GMT)

Most all CDN’s performed well when tested from the east coast. It looks like SimpleCDN came out on top, which was the last CDN I expected to come in first place. GoGrid and Amazon Cloud Front seemed to have very low cache miss speeds (A cache miss is when the requested object isn’t on an enpoint node and has to be fetched from the storage system in use by that CDN). However, cache misses are very rare, as the cache will be refreshed after just one miss (or should be, at least). The MaxCDN Cache Misses had to fetch the object off my shared hosting server which resulted in lower than possible speeds. All in all SimpleCDN and GoGrid CDN came out ahead in the speed test for Northern California, but speed isn’t everything.

This test really surprised me, mostly because I expected more from Akamai. Amazon Cloud Front actually had much higher speeds when the object wasn’t cached in an end point than when it was. This was most likely due to the Amazon S3 servers being in extremely close proximity to their EC2 servers (and quite possibly the same network). I expected much higher cache hit speeds from Amazon though, seeing as how I was testing it from their own network. Once again, network congestion plays a strong part in these tests. As far as SimpleCDN’s cache hits/misses, I’m not quite sure about. Every CDN I tested specifies in some way in the HTTP response headers if the object is cached or not. SimpleCDN, however, does not. I’m not quite sure how their network works, but I counted cache misses as the first request to an object, and cache hits for subsequent requests. The requests very well may have been coming from the same server every time though. MaxCDN really blew away everyone else in this tests, reaching speeds upwards of 60MB/s and was closely followed by GoGrid CDN. GoGrid still had a low cache miss speed, but as mentioned before, cache misses are rare and were forced in this example. MaxCDN never had a cache miss speed higher of 10MB/s due to my server upload speed being capped at 10MB/s.

When testing from Ireland, Akamai came back up to speed. I’m kind of disappointed in Rackspace Cloud Files, which uses Limelight Networks to deliver content. Amazon Cloud Front is the clear winner, however, I’m testing it from their network, which may or may not play a small part in their high speed. GoGrid, however, has remained fast from every location so far. SimpleCDN, however, didn’t do so hot this time. SimpleCDN recently stated that their free accounts will not be able to use their entire CDN network, so this probably plays a huge part in their slower speed from outside the United States.

Once again I’m fairly certain there’s no difference between cache misses and hits for SimpleCDN. Akamai really came through there and looks as though it was limited by the VPS connection I was on. GoGrid is still going strong, although its ~300KB/s download speed on cache misses is really annoying. Other than that, their speeds are still quite good. MaxCDN is right up there with GoGrid CDN as well, passing SimpleCDN, Amazon Cloud Front, and Rackspace Cloud Files in download speeds. I expected Rackspace Cloud Files to win this test, considering I was doing the speed tests on their network. Although they do use Limelight Networks, so I was unsure as to where the file was actually coming from.

This test was much like the Amazon EC2 test from California as far as every CDN is around the same speed. And GoGrid is still going strong (if you don’t count its cache miss speeds)

And so there we have it. Above is the average download speeds over the above graphs. I was very surprised GoGrid and MaxCDN were able to beat Akamai in the speed test. So it was GoGrid in first place, followed by MaxCDN which was closely followed by Akamai and Cloud Front, then SimpleCDN and finally, Rackspace Cloud Files in last place. These are the average download speeds when tested from California, Texas, Virginia, and Ireland.
Pings
The following charts depict response times over 100 pings to the CDN from each testing location.

| Other Stats | ||
|---|---|---|
| CDN | Hops To CDN | Packet Loss |
| Amazon Cloud Front | 4 | 0% |
| GoGrid CDN | 9 | 0% |
| MAXCDN | 10 | 0% |
| Rackspace Cloud Files | 12 | 0% |
| Akamai | 7 | 0% |
| SimpleCDN | 15 | 0% |
GoGrid, Rackspace Cloud, and Akamai all overlap each other and all had an average response time of 13ms. SimpleCDN did terrible, with an average response time of over 100ms. Amazon performed the best, due to the close proximity of the CDN network. I’m pretty sure the CDN and EC2 instance were on the same local network with a mere 4 hops between the EC2 instance and the CDN network. SimpleCDN decided to take my request all the way to the United States from Europe which greatly increased the response time of the ping. For the most part, all CDN’s were below 20ms with only a few spikes here and there which could have been caused by either the CDN itself, traffic in the tubes, or EC2 network hiccups.

| Other Stats | ||
|---|---|---|
| CDN | Hops To CDN | Packet Loss |
| Amazon Cloud Front | 7 | 0% |
| GoGrid CDN | 10 | 0% |
| MAXCDN | 11 | 0% |
| Rackspace Cloud Files | 12 | 68% |
| Akamai | 9 | 0% |
| SimpleCDN | 13 | 0% |
Once again SimpleCDN really throws off the graph here with an average response time of 25ms. However, there’s something else to note here. Rackspace Cloud Files had a packet loss rate of 68%! I have no idea what caused this extremely high packet loss rate. I did the test multiple times over the course of about an hour and not one test had a packet loss percentage of under 25% which is extremely unacceptable for a CDN. I’m pretty sure dialup had a higher reliability than that. Anyways, I graphed what data I had of the Rackspace Cloud Files pings but as you can see, about 40% of the way into the graph it cuts off due to not having data for the other 60% of the packets. This was very disappointing.
Pricing
| Amazon | Rackspace | GoGrid CDN | Simple CDN | Max CDN | |
|---|---|---|---|---|---|
| Storage | $0.15/GB† | $0.15/GB | $0.60/GB* | $0.75/GB* | $1.00/GB* |
| Transfer In | Free†‡ | $0.08/GB | Free | Free | $0.099/GB† |
| Transfer Out | $0.17/GB† | $0.22/GB | $0.25/GB | $0.039/GB† | $0.099/GB† |
| GET Requests | $0.01/10,000 | Free | Free | Free | Free |
| PUT/COPY/POST/LIST Requests | $0.01/1,000 | $0.01/500 | Free | Free | Free |
| †Variable Pricing. Price listed is the starting price. Price will decrease with high usage. ‡Free until June, 30th, 2010. After June 30th, prices will return to $0.10/GB. *Storage not necessary for Origin/Mirror/Pull setup. You may use your own storage. |
|||||
Features
| Amazon | Rackspace | GoGrid CDN | Simple CDN | Max CDN | |
|---|---|---|---|---|---|
| Maximum File Size | 5GB | 5GB | ??? | ??? | ??? |
| File Storage Required | Yes | Yes | No | No | No |
| FTP Access | No | No | Yes | Yes | Yes |
| Manually Purge Cache | No | No | Yes | Yes | Yes |
| HTTP Compression | No | No | Yes | Yes | Yes |
| Free Endpoint Transfer | No | Yes | ??? | ??? | Yes |
| HTTPS | No | No | Yes* | Yes | Yes* |
| Raw Logs | Yes | Yes | Yes | No | No |
| Realtime Logs | No | No | Yes* | No | Near Real Time |
| CNAMEs | Yes | No | Yes | Yes* | Yes |
| Custom Response Headers | Yes | No | No | No | No |
| Flash Streaming (RTMP) | Yes | No | Yes | Yes | Yes |
| Windows Media (MMS) | No | No | Yes | Yes | Yes |
| *Additional Charges Apply | |||||
Customer Service
The following is the time taken to respond to a support ticket to each CDN company.
-
Stef
-
http://www.ryankearney.com/ Ryan Kearney
-
http://scaleengine.com Stef