Steve Spigarelli sent me a link to this description of how to control EC2 from rake, the Ruby build manager. The implementation uses Capistrano, a Ruby utility for executing multiple commands on remote server in parallel.
This is very timely since I just posted the Technometria podcast with Doug Kaye and Jeff Barr on using Amazon's Web services (AWS) for large, sophisticated applications. This has been on my mind of late and its nice to see some specifics about doing it. The Niblets post gives some great detail on how to manage the instances.
I just relistened to the conversation with Jeff and Doug again yesterday afternoon and was struck by some of the details about building applications on AWS.
- You'll probably need an external controller that runs the database and manages instances. You can't put the whole application on AWS.
- Applications that have a component of batch processing work well.
- Management by SLA is a key topic that hasn't been discussed enough. Automatically firing up new instances to meet SLA guidelines is a natural thing to do in this platform.
- Building user interfaces to asynchronous applications is difficult and not well understood.
- Queues provide a universal message buss for connecting and controlling instances.
I'm sure there's more in there, but that's what I impressed me at the moment.