I'm developing an image processing application running on Windows on Amazon EC2. The application is currently a console app I'm starting manually on a few machines. I'm refactoring it into a Windows service and am trying to understand the best way to deploy and manage Windows services on a large scale clustered computer environment.

I realize that I can update a central machine, make a new AMI, and then start creating new instances with that new AMI, but feel like there has to be a better way to deploy, update and control (Start/Stop/Restart) Windows services on a large scale.

Are there any best practices for how to do this?

Thank you- Hg


I have not done this myself yet, but in the documentation there are ways to manage ec2 instances over the command line. I've read about people using the amazon monitoring service to program when servers are started/stopped.

Here's the link to the ec2 api: http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/

Good luck!


For "workhorse" types of applications, the pattern of launching new instances from a template and terminating old instances is arguably the simplest (if not that, then definitely in the top recommended patterns).

In these scenarios, the local hard drive is considered scratch space, and work is obtained from some off-server source (like a database, S3, or SQS, etc.) and results are stored back to something similar.

Also, this way, if one of your servers fails, you can just launch more from your AMI template to compensate.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.