Which Cloud Provider?
Launching a server at Rackspace

We created this page because we've found ourselves constantly running through the pros and cons of physical versus virtual servers and laboring through the benefits and pitfalls of the plethora of no-name virtual hosting providers out there. We now save ourselves and our clients time by pointing them to this page.

As a result of our trials and tribulations over the years, we've come to rely mainly on the Rackspace Cloud for a variety of reasons that we will outline below. However, we do regularly engage in projects for which other top tier cloud providers are better suited. We hope our thoughts on this topic can help you in your decision.

The three cloud providers we routinely utilize and evaluate for clients are: Rackspace, Linode, and Amazon. This is because we've found these three providers offer a good mix of price, performance, reliability, and features. Although competitive offerings evolve, we've evaluated and passed on other providers for tending to fall short in these areas and generally recommend you pass on lesser names too. How do the top three providers stack up?

Easy of use

Amazon EC2 isn't terribly challenging to get running on for a technically savvy and experienced system administrator. However, it's a big stumbling block for the neophyte with a website many consider cryptic and challenging to navigate and "option overload" including options that are hard to decipher based on their names.

Rackspace Cloud has a very streamlined process for signing up and quickly launching servers. The worst part about Rackspace is a phone verification requirement when initially signing up for a new account. We've ended up playing phone tag with them for a day on occasion. Once you're past that, you click through a few screens with clear and concise options and your new server is up and running. The Rackspace Cloud web console isn't stellar - it's usually slow, it's a bit buggy, and it's lacking some basic features but it is functional and very easy to navigate.

Launching a server at Rackspace Launching a server at Rackspace

Linode falls somewhere between Rackspace and Amazon. It's definitely easier to get started than Amazon, but it has a lot more features and offerings than Rackspace, many of which would be intimidating (and potentially dangerous) to someone who is not a system administrator. One frustration with signing up with Linode is that you must purchase a server for a month before you can create your account. With Rackspace and Amazon you can sign up and browse through their system to get the feel of things before commiting to a purchase.

Adding a server at Linode

Reliability

The Rackspace Cloud has had one well known public outage (which also affected Slicehost). That's fewer than Amazon and certainly fewer than the many fly-by-night VPS providers whose outages would never be known by many. The one Rackspace outage did not affect any of our servers - our oldest server has been running uninterrupted for nearly three years. We have seen an occasional glitch with individual systems, but we've never seen a significant outage that impacted multiple systems.

Uptime Graph

Linode, on the other hand, seems to experience several public outages per year. It appears that they have outages ranging from losing a number of nodes to losing entire data centers for some number of hours. Nothing horrendous, but frequent enough to be something of a concern.

Amazon EC2 appears to have relatively few outages, but when they have one, it's bad. Almost everyone is aware of the April 2012 outage that impacted the entire East region and took out several major social sites for the better part of a day. This seems to be par for the course for EC2 - a major outage every year or so. They have a disadvantage in that, as the largest cloud provider, any outage impacts a larger portion of the Internet and is more widely publicized.

Performance

Rackspace and Linode servers are significantly faster than Amazon's EC2 servers and most of the tier 2 VPS providers we've dealt with. You'll notice it as soon as you login to a smaller virtual server (e.g., 512MB). The key difference between Rackspace and Amazon is that Rackspace CPU cycles are minimum guaranteed and Amazon's are maximum. Rackspace and Linode servers will also burst if CPU is available on the physical box which, in our experience, it normally (but not always) is. Further, Rackspace and Linode virtual servers have substantially more local disk throughput than EC2 instances. Keep in mind that if you're running tasks that require performance, you must take that into account when pricing out cloud solutions. Otherwise, you'll end up needing more or larger instances to run your solution - which could easily change the apparent pricing advantage between providers.

Kernel compilation times Disk performance comparison
Images courtesy of The Bitsource. Please read the entire article here

Although both easily trounce Amazon, there's still a large descrepancy between Linode and Rackspace. Linode readily outperforms Rackspace in most workloads. From what we've seen, Linode physical hosts are generally running faster processors than Rackspace hosts (Nehalems vs. Opterons), and this makes a big difference. Note one possible advantage in Amazon EC2 demonstrated well in the charts below is very predictable performance, which can be a critical feature in some cases.

Unixbench performance Postgresql/Django performance
Images courtesy of Eivind Uggedal. Please read the entire article here

Persistent

Rackspace Cloud and Linode servers (and most other providers) have persistent local disk storage. Amazon EC2 instances traditionally haven't. This meant if your server crashed, or you powered it down, you lost everything on your disk. People came up with sometimes elaborate workarounds by storing, for example, databases on Amazon's Elastic Block Storage (EBS) mounted on an EC2 instance. This is a complexity that can be avoided with Rackspace.

Recently, Amazon added the ability to store your system disk in EBS so that it's persistence. This is a great feature and a big step forward for Amazon, but keep in mind this slightly complicated your deployments and you're paying $0.10 per gigabyte month and $0.10 per million I/O requests for EBS storage. See our paragraph at the bottom on 'When to use Amazon'

Pricing

Cloud pricing almost always beats dedicated server hosting for small projects - frequently by an astonishing amount. We've come to rarely recommend dedicated hosting unless custom, high-performance, or very large RAM or disk capacity hardware is needed. Every time we've run the price comparison between Rackspace and tier 2 cloud providers, we always end up thinking "Who would pay more for a lesser provider?!" After managing large data centers that demand multi-year contracts with complicated pricing schemes for every imagineable item, it's easy to appreciate having no contract and a pricing structure that couldn't be simpler.

We've found Rackspace to be very slightly cheaper for our uses cases than Linode, and both are cheaper than Amazon. Linode gives you a generous amount of free bandwidth, but Rackspace gives you free backups. If you use a lot of bandwidth, Linode might be cheaper. If you don't and you want to make use of the host provider's backups (see below under recommendations), Rackspace may be cheaper. Run the numbers. Both almost always beat Amazon in bang for the buck. Update: Rackspace now offers free inbound bandwidth for all cloud servers.

Rackspace Cloud Pricing

Free Backups

Rackspace cloud servers up to 80GB in size can store 3 full image backups with the server at no cost. These can be manually initiated or scheduled daily or weekly. This is a great feature for small companies that don't need or can't justify the complexity of a a "real" backup solution. You can also use these backup images to create new servers - a handy feature for bringing up extra web servers quickly. If you need to store more than 3 images, you can move images into Rackspace's CloudFiles storage system where you'll pay $0.15 per gigabyte month for storage.

Linode allows four backup slots, but these backups are file system level backups. If you're using anything but ext2 or ext3, they won't work. Encrypted volume? Forget about it. You'll also pay monthly for the privilege of backing up and the cost is based on your system size, starting at $5 per month for a 512MB instance.

With Amazon, you can backup to S3 or EBS. You'll pay $0.14 or $0.10 for each gigabyte stored, respectively. You'll be managing them yourself as they are not automated with a few clicks like Linode or Rackspace. Keep this in mind, as it's a compelling reason for many budding system administrators to procrastinate on backups - a potentially fatal mistake.

Operating System Selection

The only operating system we miss when using Rackspace is OpenSolaris. In addition to the common flavors of Linux, they also offer Windows Server 2003 and 2008 in both 32 and 64 bit. It's not a comprehensive selection, but all the Linux and Windows spins I'd ever recommend are available. They also offer a "pv-grub" solution that you have to ask for, where you can roll and boot your own custom kernel and basically roll your own distribution. It's not for the feint of heart.

Rackspace Cloud Operating Systems

Linode offers a similar selection of Linux distributions to Rackspace, but offers no Windows support and no licensed Red Hat option.

In Amazon's EC2, there are an infinite number of Amazon Machine Images (AMIs) to pick from and you can easily upload your own custom Xen image and get to work. However, this can be an overwhelming number of choices for a novice user, and maintaining your own custom Xen image is something that shouldn't be undertaken without serious thought towards the additional maintainance you will be undertaking.

SLA and Support

The Rackspace Cloud is backed by Rackspace's Fanatical Support™ for 24x7x365 technical support at no extra cost. With Amazon EC2, you're on your own unless you pay the greater of $400 per month or 20% of your EC2 costs. That means as you scale up, you pay more in support costs even if you're not utilizing support more. For an experienced system administrator, this may matter less as you'll be able to solve most of your own problems. However, for some companies, this can be a substantial advantage.

Linode support falls somewhere in the middle. It's not really fanatical, but it's there and they're competent. Support is handled through an internal ticketing system like Rackspace, but unlike Rackspace you aren't encouraged to do a live chat with technical support.

Features

We haven't yet come up with a reason to choose a no-name / fly-by-night / tier 2 cloud provider. However, there are some unique reasons why you might want to consider Amazon EC2 over Rackspace or Linode. The biggest for us has been Amazon's Elastic Block Storage (EBS). With EBS, you can scale your storage infinitely (theoretically) at $0.10 per gigabyte month and $0.10 per 1 million I/O requests. Although Rackspace has CloudFiles, it is not mountable as a disk device so it's far less useful than EBS. With EBS, you could run a 10TB single-instance MySQL database. You can't do that in the Rackspace Cloud. Keep this fact in mind when selecting your virtual server sizes. With Linode, you can add extra space to a system at $2 per gigabyte month, but you're limited to a finite amount of space available on the physical host.

Amazon Services

Other reasons you might consider Amazon mainly revolve around utilizing Amazon's many other services (Auto Scaling, Load Balancing,..), even though many (S3, SQS, ..) can be easily accessed from a cloud server running anywhere. It's worth looking at Amazon's list of services and deciding if hosting with Amazon gives you a strategic advantage you can't duplicate with Rackspace or Linode. Remember that some of these services (such as load balancing) can be duplicated in any cloud, but involve more effort and/or a third party solution.

One negative of Amazon we've stumbled over more than once is the lack of a console. Both Rackspace and Linode provide a javascript console that will enable you to see errors logged only to console and make valiant resuscitation efforts on a dead server. In sharp contrast, Amazon has no such feature. You may occasionally find yourself with an unbootable server that you can't save. As with Linode (but not Rackspace), you do have the option of attempting to mount the disk on another server for debugging purposes, but it's not quite the same.

When deciding between Linode and Rackspace, we find that Linode is more feature rich than Rackspace. Linode has a few extra system sizes that can come in handy when trying to squeeze out the most performance for the dollar - 768MB and 1535MB instances that fit between the ubiquitous 1024MB and 2048MB sizes. The administration system is also much more powerful - you can self provision extra IPs, extra RAM, extra disk space and have it up and running immediately. You can tweak your disk space allocation and customize your own partitioning scheme, which you can't (easily) do on Rackspace. You can access your systems' consoles via ssh without logging in to the web console - very handy when you have a downed system and Rackspace's web console is lagging.

Summary

One falacy we run into frequently with people's perception of operating in the cloud is that "the cloud" is fail-proof. This is far from the truth. In fact, cloud servers can easily be less reliable than physical servers. When you run in the cloud, you should begin with redundancy in mind. Even simple websites should run with two systems either in an active/active or failover configuration. Beyond that, if uptime is critical to you, you need to begin thinking about spreading your systems across multiple facilities ("availability zones", "regions", "data centers"), using multiple cloud providers (for example, one primary and one standby), and making sure your backups are not with the same provider.

For example, one of our recently deployed configurations involved heavy redundancy and two providers. This configuration runs active/active web application servers and primary and hot standby PostgreSQL servers running at Rackspace. The entire infrastructure is backed up to Amazon S3. This way, if there were a complete failure at Rackspace, we can recover quickly from our backups stored at Amazon. Note that Rackspace is unique among the three for not allowing you to pick where your individual nodes are placed, so this is more critical at Rackspace than at Linode or Amazon.

Hopefully you're not experiencing information overload. If you are, we've come up with a simple ranking to assist your selection between one of the three cloud providers we recommend:

Requirement First Second Third
Easy of use Rackspace Linode Amazon
Reliability Rackspace Amazon Linode
Performance Linode Rackspace Amazon
Price Rackspace Linode Amazon
Features Amazon Linode Rackspace
Support Rackspace Linode Amazon

We hope this has been helpful - let us know if you have something to contribute or if we can assist with your cloud deployment.

Cloud Computing & Cloud Hosting by Rackspace