I'm in the process of switching my hosting from a dedicated box at cari.net over to Amazon EC2 and S3. Based on my estimates, the costs will be slightly higher per month ($60/mo right now, $75-80/mo post move), but the benefits are significant:
- Using S3 for all my backups and data storage will definitely give me some piece of mind that I've been lacking.
- The virtualized nature of the servers means doing upgrades is totally safe: launch a new copy of the box, do the upgrade, and if everything's golden, switch the IP to the new box. Cost is $0.10/hr which is close enough to zero to not matter.
- I get a processor "upgrade" from my Celeron at Cari to a similarly clocked Xeon equivalent. weight loss The latter is paravirtualized, of course, but it should still help since most of my apps are CPU-bound. I also get some more RAM, but that's less important.
- Last, but not least, Cari has had a lot of network issues in the year I've hosted there while Amazon hasn't.
First task is to move storage over to S3, and update the applications that currently access stuff off the filesystem (like autogeneration of thumbnails).
Was your install at cari already virtualized? Wondering how you're actually doing it.
Sami,
No, my Cari box was a physical box. I'm not going to be moving directly across, since EC2's virtualization provides impetus for a number of different configuration decisions. Basically my plan is to get my current box backing up to S3, configure my EC2 instance the way I want (fully scripted, of course), and then restore a backup to it. That way I can do the same thing for EC2-EC2 upgrades (new kernel, new CF, whatever).
Barney,
Do continue to blog on this. I am very interested how it works out for you and what your experiences are like.
Thanx
G
I'm really interested in this as well, thinking of moving some things over to EC2 and S3
Yes, I'm definitely interested in how easy the switch is. It still looks like things are a bit of pain to configure and get working right now.
So far, it's been really painless. Launching instances is a breeze, once you find the right one. Scripting your additional packages to get installed with yum is a cinch as well. Last night, in the span of a couple hours, I grabbed an image (the free CentOS 5 image from RightScale), instantiate it, scripted some updates, got a simple python web app running, saved my "installer" back to S3 and killed the instance. And that was all using the Java-based command line tools. I've since found some nice Firefox plugins to manage everything, which is going to make things much simpler.
Barney,
If you have not already, check out RightScale's free developer account. It makes it very easy to launch and manage instances it has an interface to S3 as well. Rather handy.
http://www.rightscale.com/m/products.html#developer
I'm really trying to understand what this ec2 thing is???
Is is some kind of virtulisation server?
Do you have to build an image of your server, including OS, to then upload and start up on the Amazon server?
Can you then Remote Desktop (I'm a Windows person), or whatever the Linux equilvent is, onto the instance to then make minor tweaks to the server (delete/move files).
Could you deploy an image that includes an instance of ColdFusion to server several domains?
I realise this is a Linux only service, so how hard would it be for an old Windows head to implement?
Sorry for so many newbie questions but I'm trying to get what this is all about:-)
A simple outline of what ec2 is and isn't would be really helpful.
dick
dickbob,
EC2 is a managed Xen environment. Xen is a kernel-based paravirtualization engine for Linux. To use Xen (and therefore EC2), you create a server image (a filesystem snapshot including kernel, config, etc.) and upload it. Then you use the EC2 tools to start up an instance of the image. Once the instance is running, it's just like a physical box for all intents and purposes. The big benefit is the cost to scale: $0.10/instance/hour. So if you need to go from running 1 box to running 3 boxes for a couple hours (maybe you got Slashdotted), it'll cost you all of $0.20 to do it.
I'm currently working on setting up a fully scripted CF/Magnolia/PHP server based on one of the public images from RightScale. The goal is being able to instantiate their image, run my script, and have a fully functional web/app server within a matter of minutes. That server will host a variety of domains on it, some with CF, some with Magnolia, and some with PHP. As I said above, once the image is instantiated, it's just a Linux server; I've got all this running on a physical Linux server already, just a matter of replicating it.
As for being a Windows guy, I don't think EC2 itself will pose any problems. It's just the Linux piece, irrespective of whether you're using real or virtualized hardware.
Thank for that Barney. That's helped massively to confirm some of the impressions I had built up about the service.
Another question if I may…
I understand that if the instance is shutdown all the data in the instance is lost. So that would be any CF/Apache settings, uploaded files and MySQL data. Therefore to persist anything you'd use the S3 datastore. Does that mean you need to install CF and MySQL into S3 rather than the image you upload into EC2?
dickbob,
You can't install anything on S3, it's just a file storage service. I store all my configuration in Subversion, and then back up Subversion up to S3. So when I deploy a new instance, I'm pulling my Subversion backup to the instance, restoring it, and then checking out all my config files into the appropriate places. I don't store backups in Subversion, they just go to S3 directly, but the same idea applies: on creation of a new instance, pull down a backup and restore.