Saturday, November 12, 2011

Actual costs: rackspace cloud

A few months back I decided to put a 24/7 script on a Rackspace Cloud instance, instead of the more obvious Amazon EC2 choice. The reason at the time was my needs were low CPU but relatively high bandwidth and diskspace usage and it worked out cheaper.

Now I've had a few invoices in I am relieved to say there was no catch. My past three invoices have been $11.99, $11.99 and $12.20 (USD). This is for a minimal CPU spec (256MB, 1.6% of a quad core CPU, 10GB disk), 1.1 to 1.3 GB/month of outgoing bandwidth each month (there is no charge for incoming bandwidth), and cloud storage rising from 4 to 8GB. 90% of the monthly cost is for the machine, and the cloud storage has risen from $0.63 to $1.15. The bandwidth is not costing much at all.

In contrast on Amazon EC2, the micro instance would cost $15.65 (including $1 for 10GB of EBS storage), while a small instance would cost $62.25/month, of which $0.03 is the bandwidth usage. (The first year of that micro instance would be free if you are a new customer, but I am not.)

So, at the CPU bottom-end, Rackspace is winning on cost. The other feature of Rackspace Cloud that I love is there is an automatic daily backup of the full disk image, and that backup is stored in the cloud storage. (Storing that backup is basically all my $1/month cloud storage costs.)

What do I not like? I keep using up my 10GB disk space. But there seems no way to move to 20GB without doubling the CPU spec and doubling the monthly cost; with Amazon micro I'd just increase the EBS storage space. With an Amazon small instance I'd get 160GB and would not care.

What do I not like about Rackspace and Amazon? It is that you just get a basic linux distro. You have to spend time installing, configuring and maintaining. And the configuration is not trivial; I've kept a log of all I've had to do, and it includes things like moving ssh off of port 22, setting up an iptables firewall, installing a mail server (not a POP server, just enough so I can *send* email alerts), and writing my own low-diskspace email alert script. The latter was done just the other day after my application broke, yet again, because the machine had run out of disk space.

P.S. As I want 24/7, and have not mentioned the need to scale, what about cheaper shared hosting? Well, I couldn't find a VPS, that gives me root access and no restrictions, for under $10/month. It seems Rackspace is winning that fight too?

(2012-08-15 UPDATE: Rackspace are stopping their minimal server config: no more 256MB option in their "nextgen" V2 API. Also scheduled images are not available in the V2 API (yet). In other words the two things I pointed out that were good, in the above article, are going! I guess the Rackspace marketing department will have to work out a positive spin on "cutting out our competitive advantage so we look just like the competition now" ;-)


Andre said...

for rackspace cloud you can create a template server that has all your basic setups and then save its Image to Rackspace Cloud Files and then whenever you want to spin up a new server with your config, just create a new server based on that Image.

Also same, if you want to shut down your server but not forever, just store its image in rackspace cloud files and then get charged very low storage costs and then spin it up again when you need it.

Unknown said...

Thanks for the comment Andre. I do use server images (in fact that is what the automatic backup is, which I think is a good feature of Rackspace).

The downside I was pointing out (with both Rackspace Cloud and Amazon EC2) was that every single user need to do all the security tightening, instead of one security expert at Rackspace doing it for us and offering a "hardened ubuntu 11.04" (with additional docs explaining what has been changed from the base distro, of course).

Unknown said...

Minor update: Rackspace cloud file costs have been reduced from 15c to 10c per GB per month.

Also they now have static web site hosting in cloud files (Amazon EC2 has had this for a while).

Finally, I noticed they have MySQL hosting, again just like Amazon RDS.

Unknown said...

Amazon's not that expensive if you get reserve instances. $100 up front gets you $3.66/mth pricing for 3 years on a micro instance with 613 MB of RAM, or $300 + $9/mth for the 1.7GB small.

My understanding with both having researched it further is that bandwidth tends to be expensive in these situations, as the fixed cost of hardware doesn't increase as dramatically or fluctuate month to month.

EC2 elastic disk space can also add up, it's $0.10/GB if I recall correctly, making the built-in (albeit not recommended) 160GB in your small instance look even more appealing. That said, it's cheaper if you can get by with less. (And you pay only file storage + bandwidth if you can statically host your site on S3, no OS overhead needed)

Unknown said...

Thanks for the comments Louis. $300 to be tied in for three years, just to get down to $9/month; feels to me like a bit of a gamble. (I.e. you need to accurately guess your own computing needs, and how pricing will change over those 3 years.)
If you have lots of CPU needs, long-term, I'm sure it is worth doing that for some instances, to average down the cost.

Stephen said...

Thanks for posting your experience Darren.

I am very new to cloud computing right now and I am very confused about the bandwidth and most of the metrics mentioned in the amazon pricing calculator.

I am doing an NLP based research project and I request you help me.

A simple question if you dont mind.

How much would it cost to run a web crawler which crawls around
1) 20 websites / month,
2) 350 GB Data scraped / month
3) 12 hour crawling per day.

I am very confused right now.

Even an approximate answer related to the price would help.

Thank you.

Unknown said...

Stephen, The nice thing about cloud instances for web crawling is that there are no charges for outgoing bandwidth.

350GB disk/month will be your main charge (unless you are processing then deleting it). Rackspace recently started an external disk service, so you can have the minimum CPU model with a very large disk attached. Amazon have always had something like this.
I.e. $15/month/100GB. After 2 months your 700GB will cost $105/month to store.

By 12hrs/day do you mean you'll put the instance to sleep the other 12 hours of the day? That will need a bit of scripting on your part, but is possible. (Allow a little either side for start-up/shutdown, so you'd get maybe 11.75hrs work from 12hrs billing.)
12hrs * $0.022 = $0.264/day, so $7.92 per 30-day month.