So I’ve been toying around with Amazon’s web services lately. Amazon offers a lot of incredibly beneficial services that you can purchase on a pay-as-you-go basis. Specifically, I’ve been using EC2 and S3 which sort of go hand-in-hand if you built your own Amazon Machine Images (AMIs). Over at the Venom Game Labs website, I made a post about how we started using Amazon EC2 to host Angel. I’m really impressed at the performance of these virtual machines–which are Xen-based on (I beleive) a Red Hat Linux distribution. I built a few Fedora 8 machines and a Windows 2003 R2 Datacenter machine as well. All of which performed nicely.
If you’re looking for a test server for your application and don’t have any hardware laying around your house, I highly recommend Amazon EC2. It takes a bit to get used to at first, but once you get the hang of it, it’s easy going.
A tip for newbies: If you ever hit the “Terminate” button on one of your instances, you lose all your stuff. Don’t hit that button unless you have built your own custom AMI or have your data backed up somewhere else. For the purposes of Angel, I started with two base Fedora 8 machines and built one as an Apache HTTP server and the other as a MySQL 5.1 server. Then I built a Windows 2003 R2 Datacenter machine to run the web-services portion of Angel (since its written in C#). Once I had them the way I wanted, I bundled them up into AMI’s and then terminated my instances so I’m not paying for resources I’m not actively using. When I need them again, I can just deploy from the AMI, change a few settings–mainly with IP addresses and database connection addresses–and I’m up and running again in a matter of minutes without needing to re-install my software and restore my data.
Some useful articles (from Amazon’s documentation):