Lately we have been using Rackspace CDN and Amazon CloudFront to speed up our blogs and forums, in an attempt to ensure that our visitors from India, Asia and Europe are able to access our websites faster and with reduced latency, since our servers are located in Chicago, USA, at Wiredtree and even though their network is phenomenal, it is still quite a few hops away for non-American visitors.
Single server vs. CDN
Initially I went with Rackspace CDN, since it essentially resells Akamai’s much revered CDN network and is backed by Rackspace Customer Support, which even for a non-managed and small client like me, acted in a swift and courteous manner, beating all customer response times I have seen at other managed hosts!
While RackCDN works quite well and is quite economical as well, there are a few shortcomings:
1. No origin pull facility, meaning you have to host the files you intend to use for CDN, on Rackspace’s Cloud files. This means in order to effectively use Rackspace CDN for WordPress Blogs, you not only need a caching plugin like WP Super Cache, but also a plugin like CDN Enabler – WordPress CDN Plugin.
2. Cannot use custom CNames i.e. you have to go with long subdomains like 6fd2d1718a860035571c-4f237d50524d76e04172113faa429629.r1.cf2.rackcdn.com for your CDN files.
3. DNS Resolution is on slower side, not sure what the reason for this is, but I often found the DNS Resolution time of Rackspace to be on the slower side, when compared to DNSMadeEasy and even Cloudfront.
4. Does not use Akamai’s India Edge Location! One of the biggest reasons I wanted to go with Rackspace CDN was due to the fact that Akamai has edge locations in India, where majority of our visitors are located. However, after extensive testing, it turns out Rackspace does not uses Akamai’s India Edge Location (most likely due to higher costs) and instead serves Indian visitors through Hong Kong and Singapore, like Cloudfront.
5. No option to invalidate existing files or flush the CDN files from edge i.e. if you update static files, visitors will continue to be served older files. A possible workaround to this issue is to use new cloud file bucket for the updated files, however in such a scenario, all the cached and unchanged files in visitor’s system would be invalidated. Rackspace does support Edge Purge through their API, thanks to Scott for bringing this to my notice.
Due to this, while I chose to use Rackspace CDN for my forum, I decided to use Amazon Cloudfront for my blogs. Since I could use its origin pull facility to not only serve CSS, JS and logos, but also all the blog post images and utilize CNames to make it look prettier and professional.
Having said that, Amazon Cloudfront too has a few limitations:
1. Harder to set up initially for a newbie, however once you know what to do, it is a pretty straightforward affair. So make sure to go through their manual first, before trying to set it all up.
2. Hard to understand current usage report, which makes it tougher to guess what the eventual bill would be. Understanding usage report in case of Rackspace is pretty easy, since they provide usage report in GBs and there is no request numbers to factor in. So unfortunately, you have to wait for the month to end and the final bill to be generated to know how much you have to pay. Not a big thing, but still, it would be good if Amazon could give usage report in a much more easy to understand format for non-technical users.
3. Pricing varies depending on the edge locations being used. While one can choose to use only the economical locations, it essentially defeats the very purpose of having a CDN. So depending on where majority of your traffic is coming from, Cloudfront can prove to be more expensive than Rackspace CDN. Add to that, one also has to pay for the requests, which in case of small files can add up to be quite a bit.
4. Invalidation process isn’t user-friendly (especially in case of non-technical user) and if you do more than 1000 invalidation requests in a month, you have to pay US$ 0.005 per file beyond the limit.
5. No edge location in India and neither is it being planned in the near term. CloudFront now has an edge location in India and it works pretty well and is priced less than many other regions.
Overall while I found Rackspace Customer Support to be quite good and would have loved to continue using them for our forum and even extend the usage to our blogs; Amazon Cloudfront made a much more compelling case for our usage. And even though we will end up paying more to serve static files for our forum through CloudFront, we decided to move our forum to Cloudfront as well.
Having said that, if Rackspace rolls out origin pull and reduces DNS resolution time, and maybe even starts offering Akamai’s India Edge Location for a premium, we would be quite compelled to try them out once again.