Aug
01

Battle of the Clouds – Rackspace Cloud vs. Amazon EC2

by Rob Pickering on 2010 August 1

: Review

You can’t pick up a technical magazine, hang out on Twitter, or read an article on a technology blog without hearing the phrase:  Cloud Computing.  What is cloud computing?  Wikipedia defines it as “Internet-based computing, whereby shared resources, software, and information are provided to computers and other devices on demand“.  That definition is pretty good, but what does it actually mean?

Cloud Computing provides businesses and consumers the ability to create on-demand resources and pay only for what you’re using.  You won’t be downloading an application like Cheeky Bingo to your computer and using it, everything is stored on the network. In the case of Amazon’s Elastic Compute Cloud (EC2) and Rackspace Cloud servers (or Instances as they call them) you can very quickly provision yourself a server, meeting your personal requirements, use it for a period of time you determine, and then remove it, drastically cutting down on the costs and complexities of building your own server or purchasing dedicated server resources.

So, let’s take a look at the various areas that you as a consumer should care about, starting with one of the more important areas:  Pricing.

Pricing

Pricing is important.  You’re talking about pay-on-demand server resources, so you want them to be economical.  You also want the long-term pricing model to be competitive to dedicated servers, so you don’t have to spread things between providers.  All prices are for basic Linux (Ubuntu 10.04), both services also offer Windows servers (at a higher price) and other Database options.

Amazon EC2

Amazon provides multiple Instance options, depending on what you need:

  • Small Instance (the default):  1.7GB of RAM, 1 CPU Core, 160GB of Storage, 32-bit platforms only
  • Large Instance:  7.5GB of RAM, 2 virtual cores, 850GB of Storage, 64-bit platforms (and 32-bit if you wish)
  • Extra Large Instance:  15GB of RAM, 4 virtual cores, 1.7TB of Storage, 64-bit platforms (and 32-bit if you wish)

Note:  Amazon EC2 also can provide High-Memory, High-CPU, and Cluster capable Instances (not covered here).

These various options come in 3 different Pricing Options:

  • On Demand – Pay by the hour that the Instance is running ($0.085/hour for Small, $0.34/hour for Large, $0.68/hour for Extra Large)
  • Reserved – Pay by the year ($227.50/year for Small, $910/year for Large, $1820/year for Extra Large), additional discounts for additional years
  • Spot – These are different, you specify a maximum you’re willing to pay/hour and as long as the price is below that, you get it.  If the price increases (because demand for these types of Instances is growing) above your maximum, the Instance is terminated.  Since the prices fluctuate, all I can give you are the current prices:  $0.031/hour for Small, $0.14/hour for Large, $0.233/hour for Extra Large (about 1/3 of an On Demand at the moment)

All of Amazon EC2 sizing and pricing are available here:  http://aws.amazon.com/ec2/#pricing

RackspaceCloud

RackspaceCloud doesn’t have nearly the complexity in picking an Instance, but they do give you more granularity in the configuration (and price):

  • 256MB RAM, 10 GB Disk:  $0.015/hour
  • 512MB RAM, 20 GB Disk:  $0.03/hour
  • 1024MB RAM, 40GB Disk:  $0.06/hour
  • 2048MB RAM, 80GB Disk:  $0.12/hour
  • 4096MB RAM, 160GB Disk:  $0.24/hour
  • 8192MB RAM, 320GB Disk:  $0.48/hour
  • 15872MB RAM, 620GB Disk:  $0.96/hour

Pricing Winner

Amazon EC2 – Oddly, this is where I expected the newcomer, RackspaceCloud, to shine.  Amazon’s smallest Instance, Small, is 1.7GB of RAM and 160GB of Disk, while the equivalent RackspaceCloud Instance is 2GB of RAM and 80GB of disk, but the RackspaceCloud Instance is around $26.00 more per month, for 80GB less storage.  That pricing discrepancy is also just for the on-demand Instance.  If you’re willing to commit to a reserved Instance at Amazon EC2, then the Amazon EC2 Instance ends up being about the same price as the low-end RackspaceCloud Instance.  However, if you can get away with less RAM and Storage then RackspaceCloud does offer a 256MB Instance that’s cheaper than anything Amazon EC2 provides.

Signup

Amazon EC2

The Amazon.com EC2 signup is almost non-existant, provided you’ve already purchased something from Amazon.com previously.  If so, you already have your EC2 account credentials.  Just head over to http://aws.amazon.com/ and click Sign Up Now.  As long as your credit card information is on file, and correct, you’re done.  Amazon will just drop you at your AWS Management Console.

RackspaceCloud

The RackspaceCloud signup is also a reasonably straight forward 4-step process:

  1. Choose one of the three product offerings
  2. Provide a username and password (password must meet strength requirements (which is better than Amazon’s requirements)
  3. Input your billing information (while they annoy you with an animated advertisement that drops from the top of the page offering financing options, Amazon didn’t have ads  Edit:  As pointed out in the comments, Rackspace doesn’t have ads.  They do have a drop-down box if you pause too long on a page offering support options.  That’s nice, but I would prefer something a little less obtrusive.).  Note:  For reasons beyond me, you also are required to enter an Organization/Company (um, it’s just me…), I put RobPickering.com
  4. Input your Credit Card information (I used Promotion Code REF-YY, I think it worked, there’s no feedback to tell me)

Now sit back and wait for your Welcome email from Rackspace.  Oops!  Wait a second, there IS NO WELCOME EMAIL, at least not yet.

Rackspace requires that someone actually call you, at the number you provided, in order to confirm your billing address and the last four digits of your credit card.  They claimed that you’d hear back in 15 minutes, it took them about 25 to contact me.  No idea why this step is required, it seems completely arbitrary, but make sure you provide a good phone number, that you can immediately answer, or you will have to call them at the number provided.  Once you’ve talked to them and confirmed your information, the elusive Welcome email is forthcoming.  Of course, I had to wait another 25 minutes for mine to arrive.

Signup Winner

Amazon EC2 - You’ve probably already got an Amazon.com account, so there really isn’t any sign-up.  Regardless, tossing me an advertisement while I’m trying to sign-up for your service is just amateur, especially one that drops in the middle of the screen blocking the fields you’re asking me to fill out, then add the fact that I’m required to actually talk to someone, FAIL.

Launching an Instance

Amazon EC2

Launching an Instance on Amazon EC2 happens by first accessing your AWS Management Console.  Once there, click the large “Launch Instance” button:


This will take you to a list of AMI (Amazon Machine Images) that you can use as the basis for your new server:

Amazon supports Fedora, Windows, and CentOS.  That’s not a huge selection (no Ubuntu), but never fear.  The power of the AMIs on EC2 is that you aren’t restricted to what Amazon supports as their Quick Start images.

There are also Community AMIs…over 5000 of them!  So, you shouldn’t have a problem finding a server that meets your needs.

Once you’ve selected your AMI, you’re taken to another screen to select your Instance size (see above) and your Availability Zone.  The Availability Zones are the different EC2 installations around the world where your server can run.  You may not want all of your servers to be in the same data center.  It’s up to you.  However, keep in mind that servers in the same Availability Zone can pass data back and forth free of charge, and can share storage.

There are now two more tasks you have to perform to get your Instance launched:

  • Select (or create) a Key Pair for access (see Security)
  • Configure your EC2 Security Zone/Firewall (see Security)

At this point, your Instance will be provisioned and then booted for the first time.  The entire process takes about 5 minutes and then you’ll be able to access your fresh, new server.

Rackspace Cloud

Launching an Instance for the first time under Rackspace Cloud is similar to the process outlined above for Amazon EC2.  First access your Rackspace Cloud Management Interface.

Once you’ve logged into your Rackspace Cloud account, select the Hosting button from the left-hand navigation, then select Cloud Servers.

The screen now displayed will be where all of your provisioned Instances can be found.  To launch a new one, click the Add Server button.

You will now be presented with a list of the available Operating Systems from which you can provision your Instance.  Unfortunately, there are limited choices:  ArchLinux, CentOS, Debian, Fedora, GenToo, Oracle Enterprise Linux, RedHat, Ubuntu, Windows 2003, and Windows 2008.  There are no Community Images supported by RackSpace, so you won’t find specialized images to use, only base Operating System loads.

I selected Ubuntu 10.04 (Lucid Lynx).  You’ll now be presented with a screen to select the hostname (this is a really nice feature that Amazon EC2 doesn’t provide, though you can manually alter it) and a Server Size (RAM), which will also determine your pricing.

Once you’ve clicked the Create Server button, the instance is provisioned, assigned an IP address, and you are presented with a screen outlining your root account password.

You’ve now got a running Instance under Rackspace Cloud.

Launching an Instance Winner

A Draw - Both providers do a great job of getting an Instance up and running quickly.  I almost gave this one to Amazon EC2, due to the enormous number of options you have for building an Instance using AMIs, however; Rackspace Cloud has a nicer user interface and gives you some smaller options for servers, as well as the nice ability to set your hostname at boot.

Security

I had planned for the next section to be a discussion of the various ways you access your Instance.  However, after my experiences with Rackspace Cloud, I felt it to be critically important to discuss the security of the two offerings before showing you how to access your servers.

I’m very passionate about security.  Once you have suffered a breach, virus, trojan, worm, or any other security issue, you cannot get back your sense of security.  In most cases, your best option is to scrap the entire system and start over.  This is why I was shocked at the extremely low amount of security that Rackspace Cloud enforces.  Before I get to that, I’d like to discuss the security controls that are in place at Amazon EC2.

Amazon EC2

Amazon EC2, when creating your Instance, will have you configure two items as outlined above:  A Key Pair and a Security Zone.  Let’s take a look at each of these security measures and how to use them.

Key Pair:  The key pair is a requirement for building an Amazon EC2 Instance.  When you’re creating your first Instance, Amazon will force you to create a Key Pair, giving it a name and then automatically downloading the Private Key to your computer.  SAVE THIS IN A SECURE PLACE.  This private key is downloaded to you, and IS NOT retrievable again.  You will require this Private Key in order to access your Instance for the first time.

Security Zone:  The Security Zone is a firewall that rests ON TOP OF your Amazon EC2 Instance.  It will override any and all firewall rules you later place on your Instance.  I love this about Amazon’s EC2 service, because it allows me to create granular security controls on my Instances BEFORE they are exposed to the public Internet.  Additionally, I can use the same Security Zone for each of my Instances, performing updates to all of them without having to revisit each one individually.  When you’re creating your first Instance, Amazon will force you to create a new Security Zone, giving it a name, a description, and setting up any port controls you want beyond the defaults.  The default behaviors of the Security Zone you create may depend on the type of Instance you chose to create, for this article I selected the Fedora Core 8 LAMP Web Starter Instance, which gave me a Security Zone that allowed open access via SSH, HTTP, and MySQL.  However, if you wanted to tighten down any of these, you can remove them from the default provided, then re-add the protocol with more specific IP sources, all before the Instance is created.

The only way you are going to be able to access your Instance, by default, is going to be by using the Private Key of the Key Pair you created.  I’ll talk more about using these keys, and getting rid of these keys, below under Accessing your Instance.

Rackspace Cloud

Rackspace Cloud doesn’t have any security.  Update:  Rackspace DOES have Security, but with regards to Securing your initial Instances, they don’t. In fact, they make it worse than I could have imagined.  When you first create your Instance, they will provide you the root account password on your screen.  That’s not too bad, they have to provide the password to you some how, at least the session is TLS encrypted, so you should be the only person that now has this.  However, then they do something completely bone-headed.  THEY EMAIL IT TO YOU!  I was shocked, visibly shaken, when my email client dinged and there was my Instance name, IP address, and root account password.  They had just sent it, in clear text, over the public Internet, to some random mail server that may or may not be in my control.  Yay!  Furthermore, by default, you can SSH into the root account, and there are no blocks on where you can source SSH connections to the Instance, nor can you set these up before the Instance is created.  So, from the time the Instance is created, to the time you log into the Instance and secure it (see below), anyone who can intercept your email has complete and full access to the root account of your Instance.  You may not care, but I certainly do.  Here’s the email I got:

So, they’ve provided a would-be attacker my IP address, my Hostname (it’s part of the password, which is even worse), and the password to the root account.  Everything needed to take over my Instance remotely.  I can of course destroy the Instance when I find out someone has accessed it, but then I have to rebuild it myself.  So, at a minimum, please immediately change your root account password the moment you log into your server, and double-check your log files to ensure no one accessed the server before you did.  Better yet, secure your Instance the way Amazon EC2 is secured by default, and completely ignore the use of passwords.  (Yes, I’ve destroyed the above instance, so please don’t hassle poor IP 184.106.228.18, as it’s no longer mine and you’ll get in trouble).  I also cannot understand why Rackspace includes the hostname as part of the “random” password.  Once you’ve included non-random components in the password, you lower the overall strength of the password, it appears pointless.

Overall Security Winner

Amazon EC2:  No contest.  I think the above speaks for itself.

Accessing your Instance

The most important aspect of having a server in the Cloud is accessing it.  I’m going to show you how to gain access to your newly created Instance as well as some immediate security steps you should take once you’ve gained that access.

Amazon EC2

You’ve launched your EC2 Instance, now log into it.  When you created your Instance, Amazon downloaded the Private Key of your Key Pair to your computer.  To use this Private Key (in my case I called it MyAmazonKeyPair.pem) under a Unix-based operating system (like a Macintosh running OSX), perform the following steps:

  1. Save your Private Key file to your Desktop (or anywhere else, these examples assume on your Desktop)
  2. Open Terminal (it is found under Applications -> Utilities)
  3. Change directory to your Desktop:
    cd Desktop
  4. Change the permissions on your Private Key, or you’ll get an error:
    chmod 600 MyAmazonKeyPair.pem
  5. Run ssh:
    ssh -i MyAmazonKeyPair.pem root@ec2-<Your-IP-Address>.compute-1.amazonaws.com

You should now be logged into your Instance as root.  Quick note, some of the Ubuntu AMIs on Amazon.com have the root account disabled for ssh by default (which is one of the best things about them, see below for doing this yourself), so in that case you’ll have to ssh in as ubuntu.  Just replace root with ubuntu in the above ssh command.

Rackspace Cloud

Accessing your Rackspace Cloud Instance comes in two flavors, one of which is something Amazon EC2 doesn’t provide:  Console.  The first method to access your server is straight SSH, this is a simple affair since they’ve so thoughtfully provided your root password:

  1. Open Terminal (it is found under Applications -> Utilities)
  2. Run ssh:
    ssh root@<Your-IP-Address>

You should now be logged into your Rackspace Cloud Instance as root.

The second method to access your server is via Console.  To perform this type of access:

  1. Log into your Rackspace Cloud Management Interface
  2. Select Cloud Servers under the Hosting tab
  3. Click the name of the server you wish to access
  4. Click the Console button.  Use the same root account and password to access the server

Initially Securing your Instance

In both cases both Amazon EC2 and Rackspace Cloud allow root access to the Instance over ssh.  This is a Bad Idea™.  So, to properly secure your Instance and give you a more secure method to access it:

  1. Log into your Instance
  2. Add yourself a local account, make sure to add this account to the wheel group:
    # useradd -G wheel account
  3. Set the password for the new account:
    # passwd account
  4. Edit the /etc/sudoers file to allow your new account to perform commands:
    # visudo
  5. Remove the comment from the following line in sudoers, I do the second line so I don’t have to use a password every time:
    ## Allows people in group wheel to run all commands
    # %wheel        ALL=(ALL)       ALL
    ## Same thing without a password
    %wheel  ALL=(ALL)       NOPASSWD: ALL

At this point, you have a local account on your Instance, which you can access over ssh, once logged into your Instance, you can issue any command as root by preceeding it with the command sudo.  To learn more about using sudo see this article at Wikipedia.  If you’re using Amazon EC2 you have a couple of additional steps you need to take, because EC2 instances require the use of your Private Key.  After you’ve edited the /etc/sudoers file, perform these steps on your Amazon EC2 Instance:

  1. Change to your new account’s home directory:
    cd /home/account
  2. Create a .ssh directory:
    mkdir .ssh
  3. Copy the authorized_keys file from root to your new account:
    cp /root/.ssh/authorized_keys .ssh
  4. Set the proper permissions on the .ssh directory and its contents:
    chown -R account:account .ssh

You can now access your Amazon EC2 account using your Private Key.

Accessing your Instance Winner

A Draw:  Both environments give you relatively easy access to the server Instance.  Rackspace Cloud is super easy, just ssh there as root using the password they emailed you and you’re in.  However, that ease of use comes at a very high price to the security of your installation, so buyer beware.  I’m not going to ding Rackspace Cloud twice on security, even though I should.  On the other hand, Amazon EC2 doesn’t provide Console access to your Instance, which can provide you emergency access if something goes wrong or you lock yourself out through a bad firewall command.

Overall Winner

Amazon EC2:  With three outright wins and two draws, Amazon’s Elastic Compute Cloud server Instances come out on top in my review.  They provide better overall pricing, easier account signup, better Instance creation options, MUCH better security, and similar access options.  Rackspace Cloud is the new kid on the block for Cloud Computing and on-demand Instances, but they need to make some major changes to their overall service if they are going to give Amazon EC2 serious competition going forward.

Further Discussion

If you liked this article, and you enjoyed reading it, please take a few moments and Digg, Tweet, Buzz, or Stumble it above to let others know about it.  Additionally, if you have comments about it, just click the Comments link.  I thoroughly enjoy differing opinions and discussions.

  • http://www.chadkeck.com Chad Keck

    While you make a lot of fair points in your review I think there are a few areas that could use some additional clarification, especially in regards to the price options.

    You assume that the EC2 Small instance is comparable to the 2GB Rackspace Cloud Server which isn’t exactly the case. This is where it gets really tricky because for those who need a lot of local (non-persistent) storage that may be the case, but in terms of CPU and memory performance the Small EC2 instance is more comparable to a 1GB Cloud Server (which will provide much better CPU performance) and it turns out being significantly cheaper. If you did need more RAM and local storage you can then move to a 2GB Cloud Server which will cost a bit more as you highlighted but the performance of this instance is magnitudes higher, so you are getting a lot more for that $26. It really boils down to what you need to accomplish. You might also want to highlight the fact that Cloud Server instances provide local RAID10 storage which is higher performance and persistent instead of ephemeral storage like EC2 instances. To achieve this someone would need to use Amazon EBS which is a good alternative but it does introduce another product and cost to the scenario.

    In regards to security I am a bit confused. I certainly understand what you are trying to convey, but the thought is that once you create a new server you are going to begin configuring the instance, changing the root password, hardening the OS, configuring the firewall, etc. Putting the fact that I work for Rackspace aside, I do think this is an easier way to get started but this is simply my opinion.

    I’m also confused by what you experienced signing up for your Rackspace Cloud account. When you visit the site depending on how long you have been on the page you might have received a pop-up to chat with someone if you had any questions, etc, but we certainly don’t offer financing options for anything (??). Let me know any other specifics you had so I can look into that — but certainly no ads, just our nature to provide a real person at all times in case you need to talk to someone.

    In regards to the verification call to fully activate your account, this is in place to prevent fraudulent accounts which is the root cause of the email problems everyone on EC2 experiences (entire Amazon IP ranges being blacklisted for mail). So while it is a small up front inconvenience it serves a purpose to ensure we can control abusive behavior on the platform.

    That leads me into my last point – what about support? This is arguably one of the most important aspects of a comparison between AWS and Rackspace Cloud. You may want to add in something around this as Fanatical Support is what really separates Rackspace from the rest of the crowd.

    Looking forward to your thoughts and great work on the write-up as a whole – it is very detailed!

    -Chad

    • http://robpickering.com Rob Pickering

      Chad, all excellent points!

      Yes, the two Instance types are hard to compare directly, due to the differences in EC2 “compute units” and the lack of information at Rackspace Cloud regarding the actual CPU core/units being allocated at each of the tiers. To make the comparisons I ignored CPU capabilities, as I believe most users will be bound by RAM and/or Disk Usage.

      As for security, there’s really no excuse to send the IP and password in an email to the end user. It was provided on the screen, in a secure manner. Email is NOT secure, unless you are taking steps to secure it, so providing users their credentials this way isn’t acceptable. Best case, at least limit the information being provided so everything necessary to access the Instance isn’t found in the same email as the password. You could also require that first time access be done through the Console, and provide instructions to enable remote root logins via SSH. That’s the issue I have, remote root access enabled by default, IP, and Password provided in the same email.

      As for the verification call being required. The call verified no information other than my billing address and the last four digits of the card. Provided the card wasn’t stolen, this has done nothing to prevent me using the Instance in a nefarious way. The main reason EC2 is plagued with spammers and other illicit uses is the availability of Instances, not because of verification calls. There are well-known mechanisms to get around the problems at EC2 (an Elastic IP which you then “clean”). Rackspace Cloud, I believe, will end up having the same issues as EC2 long-term, regardless of the verification calls.

      I completely agree with your last point. Rackspace is well known for their support, I’ve experienced it first hand being a former Rackspace Dedicated Server customer. They are indeed “Fanatical about Support” and you should be proud of that offering. However, in an on-demand world, individual customers need to decide if they require that level of support. If they do, Rackspace is a great option.

      • http://twitter.com/GetYerPhil Phil Stevens

        Rob,
        I have a few questions.We are a small business that’s wants to host the infrastructure for a SaaS app. Internet based portal w/ a max of 50 users at a time at it highest user peak. Honestly we need very little data space. It’s a small app written in Java, on Unix and calls a MySQL database using Pentaho BI. Could Amazon work for us? the small package? And do they do the server maintenance, system back-ups, data recovery and some stupid user support? 

  • http://CloudStacking.com Jonathan Desrocher

    Hi Rob,

    I would like to suggest broadening the discussion to better compare these two fine offerings.

    Cloud Computing, in all of it’s glory is about building elastic services that provision resources for themselves – and this means API Access – which is such a vast issue that it makes the management console and user experience in launching machines just the tip of the iceberg.

    Amazon’s API is widely supported by every programming language you will likely use, integrate with every IDE and has a blooming ecosphere of 3rd parties that want a piece of the action – all while Rackspace is currently at 1.0 (Beta).
    Additionally, EC2 is just one service of the Amazon Web Services (plural) – Amazon throws into the mix Load Balancing, Auto Scaling and Message Queuing – all of which to designed to help you leverage EC2 even more in your applications.

    Really, when you look at the bigger picture – AWS wins by a landslide.

    But Rackspace do have some things going for them too!
    Rackspace has an Application Fabric offering (Cloud Sites) which is a far simpler (read:better) way of hosting a simple web application than EC2 and their offering is more flexible and easy to use for those that don’t really require hard-core Cloud Computing but rather a more traditional hosting with an API access – these qualities still have a valid place in the world!

    If I ever needed to host a simple website or even a web-service that didn’t require programmic heavy lifting – I’d easily choose Rackspace over the mammoth AWS.

    I hope I managed to convey the up-sides of both offerings, please drop me a line with your thoughts
    Regards, Jonathan Desrocher.

    • http://robpickering.com Rob Pickering

      Johnathan,

      Thank you for the comments. The purpose of the article when I began writing it was not to do an exhaustive review, nor to expand to services such as clustering, storage, or APIs. I agree with you that Amazon has all of those services in spades, and that Rackspace Cloud is beginning to provide those as well. I wanted to give someone a starting place if they were interested in bringing up a server Instance for the first time and just wanted some initial facts about the overall environment. I like the idea that a more exhaustive review into all of the different service offerings each provider has may be in order. I’m not sure I’m the right person to do that at this time, because I wanted to mostly convey my impressions as I begin moving personal services into the Cloud.

      I’m not sure I agree that I’d “easily choose Rackspace” if all I wanted was a simple website. In fact, that’s exactly what started me down the path of writing this article. Just because a service offering is large and complex, doesn’t mean they aren’t also capable of delivering a high-quality “lower end” service. That was my experience with Amazon EC2. I don’t have a huge cluster. I have one Small Instance on EC2. I then built one small Instance on Rackspace Cloud, and I’m going to stick with Amazon for the time being, for the reasons I outlined in my article.

      Thanks for reading!

  • http://twitter.com/GetYerPhil Phil Stevens

    Rob,
    I have a few questions.We are a small business that’s wants to host the infrastructure for a SaaS app. Internet based portal w/ a max of 50 users at a time at it highest user peak. Honestly we need very little data space. It’s a small app written in Java, on Unix and calls a MySQL database using Pentaho BI. Could Amazon work for us? the small package? And do they do the server maintenance, system back-ups, data recovery and some stupid user support?

    • http://robpickering.com Rob Pickering

      Phil, all good questions.

      Yes, Amazon would seem to be a perfect fit for you and would give you the ability to grow going forward.  The “Small” server should suit your needs.  Amazon provides infrastructure not service, so all maintenance, backups, and data recovery are up to you.  This is true for just about any Infrastructure as a Service (IAAS) provider.

      However, based on your needs, Amazon may be a bit complex for your requirements.  While this review isn’t very friendly towards Rackspace Cloud, I do use them and I have servers there.  They provide a “Snapshot” service that would allow “one click backups” for your server.  You should investigate them as well.

  • AB

    great article. helps to check out the two interfaces and options. more informative than reams of official docs. didnt know about the wide number of ami images.
    a few updates at this point. aws has a ‘micro’ option that is as low as 60ish/yr. and amazon community machine images (ami) offer a security hole, according to following: 
    http://dvlabs.tippingpoint.com/blog/2011/04/11/cloud-security-amazons-ec2-serves-up-certified-pre-owned-server-images
    rackspace has no machine images. of course, dont use one.

    • http://robpickering.com Rob Pickering

      Thanks for the comment @357a20e8c56e69d6f9734d23ef9517e8:disqus.  The micro images are okay (if you’re a new AWS customer, you can run one for free for a year).  However, they are WAY underpowered to do most things.  If you just want to play around and learn how to use AWS they’re perfect.

      The security issue is real.  As with all things on the Internet you need to know where you’re getting your information, code, and executables.  AWS is no different.  If you’re using a community image, you need to know where you’re getting it from and trust that source.  Otherwise, you are accepting all of the mistakes, shortcomings, and potential security risks that the author may have made or included.

  • http://twitter.com/jamesrsullivan jamesrsullivan

    With rackspace, the emailed password is certainly strange, but I usually setup a template image and use a script to ssh into the box and do the setup that I need so that ssh doesn’t allow password (key only).

  • Gbrandon

    Amazon requires a phone number.  I assume it wasn’t like that when you wrote this…

    • http://robpickering.com Rob Pickering

      They require contact information, of which phone number is a part.  Not sure what point you’re making.

  • http://pulse.yahoo.com/_WE3JWKWUY2R62UY5JMETECQBHE Dimitri Sokolov

    Rackspace can only support 620gb of disk space on their instances which means it isn’t anywhere near enterprise ready. Hell, I have 5tb sitting on my desktop at home in my Drobo. This is supposed to be the cloud? I don’t know who’s managing their cloud, but they need a how-to lesson.

  • nolife

    Good review but what I miss mostly is that Amazon AWS is still very expensive compared with traditional server rental.
    It’s an amazing service if you only need instances for a short time each month but for anything that’s running permanently it can become very expensive and limited.

    The biggest technical limitation is that you can only use one IP address per server, that’s insane for anything else than simple websites or background servers.
    One can forgive that and accept the limitation but the pricing is a rip off.

    You pay 10 US cent per gigabyte transfer data, no matter what instance you have.
    Traditional hosting the traffic is free for the first 2-5 terrabytes, and many hosters offer completely free traffic (flatrates). 5TB/month already cost 500 USD, that’s enough money for multiple powerful rented servers.

    You pay 10 cent per 1M IO operations, that’s completely free for all rented servers.
    Mainly larger sites can easily have billions of operations, you can pay a lot of money on that.

    You pay for every gigabyte of storage space, you receive more than 1 TB of “instance storage” for free when you pay for a larger instance but that storage is unreliable (all data should be considered as volatile).
    If you want reliable storage that is available every day you need “EBS” which is expensive.

    If you only need computing power for a few hours a day you’ll find AWS to be an affordable and fair priced offer.
    If you need to run a server reliable 24/h a day you’ll find AWS may cost up to 10 times compared to rented servers.
    Depending on what you do it can even be a lot more expensive than that. (Mainly when large amounts of traffic are sent)

Previous post:

Next post: