AWS Auto-scaling configuration and Linux Mono .NET Setup

AWS Auto-scaling configuration and Linux Mono .NET Setup


Job Description

This job is a one-time task for helping me with Amazon Web Services and Windows configuration. We have one console application that runs on windows currently. The application takes messages from Amazon SQS and processes them. It is configured as a .NET 4.5 application, but I don't think it would have a problem targeting .NET 4.0 if that makes it easier with mono. I would like someone to

1) Build a Linux AMI with this application successfully running on mono. The server should somehow (I am not sure how) auto-start as many instances of the application as the server resources can handle. If we start the AMI as a Large instance, for example, the server should start more instances of the app than if we run a micro instance. I think monit may be able to do this, but I am looking for guidance. The permissions will need to be set-up to allow the new instance to access the database instance (which is another linux machine on amazon). I can help with this.

2) Set-up AWS cloud-watch to watch the Amazon SQS queue. When more than 15 messages are in queue for more than 30 seconds, a new instance of the Linux AMI (Large) should be started. At that point there should be a waiting period to allow the new instance to come online and start working (5 minutes, maybe?) then the watch process should start again. After the queue goes below 5 for more than 50 minutes in a row, an EC2 instance can be killed... I would like at that point to kill another instance if we're still under 5 7 minutes later, then another one in another 10 minutes, etc. I'm not sure if Amazon fully supports my wishes... but I know it at least comes close. So we can change these requirements if they are not possible.

Other open jobs by this client