Question

I'd like to run a single Azure instance on a predetermined schedule (e.g. 9-5 PM EST, Mon-Fri) to reduce billing and am wondering what the best way to go about it is.

Two parts to the question:

  • Can the Service Management API [1] be used to set the InstanceCount to 0 on a predetermined schedule?
  • If so, are you still billed for this service, as is the case with suspended deployments?

[1] - http://blogs.msdn.com/b/gonzalorc/archive/2010/02/07/auto-scaling-in-azure.aspx

Was it helpful?

Solution

You can't set the instance count to zero, but you can suspend and then delete the deployment and then redeploy all programmatically.

OTHER TIPS

Microsoft shipped the Autoscaling Application Block (Wasabi) which will guard your budget by changing instance counts based on timetables. It offers many other features, including an optimizing stabilizer that will take care of the hourly boundaries (concretely, it will limit scaling up operations to the beginning of the hour and scaling down operations to the end of the hour).

See my detailed answer with supported scenarios on this thread.

Steve covered your first bullet point.

For the second: if you suspend your deployment, you are still billed for it. You have to delete the deployment to stop the accrual of compute-hours.

Alternatively, you could use Lokad.CQRS or Lokad.Cloud to combine the tasks that don't need to run all the time on a single compute instance.

Of course, this approach is not universally applicable and depending on the specifics of your application it may not be suitable for your case.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top