I'm looking for a cloud computing service with the following requirements:
- no need to manage servers
- instant availability
- automatic scaling
- ability to run tasks for at least a couple of minutes
Google App Engine seems to meet all of these requirements with the exception that processes can only run for 30 seconds.
My application is a website that performs some heavy-duty calculations for the users when requested. I expect the load to be near zero for half the time, and at a maximum of hundreds of simultaneous tasks being run.
Does something like this exist?
Edit:
These are the services I've already looked at, and why they won't work for me:
- Amazon EC2 - requires server management, and I can't go from 0 to 1 servers in a matter of seconds
- Amazon MapReduce - it takes a couple minutes to start up. If it was available in a matter of seconds, this would be what I'd use
- Microsoft Azure - as Alan said, it still requires server management
- Google App Engine - tasks can only last 30 seconds
I believe Amazon's EC2 fits your requirements.
Amazon EC2
Rackspace's Mosso would be another option for you aside from the aforementioned Amazon EC2 and Microsoft Azure platforms.
I've used EC2 and it's worked out well for me. It doesn't have any built-in tools for automatically launching new servers based on server load. For that, though, there are third party companies like RightScale and CloudKick to help you manage your cloud servers.
You could use Microsoft Azure which is free while its in CTP, till the fall of this year.
Windows Azure, once released, may be able to fill your needs. It's lower level than Google App Engine and but it should manage the scaling and availability for you. It has two kinds of processes - web and worker. The web process is for front-ends and the worker process is for background processing. Sounds like it's exactly what you are looking for.
With a little machine setup, you can also do the same thing with Amazon EC2 and an add-on service.
Amazon Elastic MapReduce will do this for you:
http://aws.amazon.com/elasticmapreduce/
You will have to set the number of servers and other high-level parameters, but for running big compute jobs is probably the best you're going to find.