Amazon Beanstalk

This is exactly what the world was waiting for! Amazon published Beanstalk, their first PaaS offering. Beanstalk allows customers to easily deploy standard Java web apps to the AWS cloud.

Beanstalk builds on top of Amazon’s existing services. The applications run on Tomcat, which itself runs on an EC2 virtual machine instance. Scaling is provided by Elastic Load Balancer. For datastore, you can use the existing Amazon offerings: SimpleDB for cloud-style storage, RDS for MySQL, or other solutions running on EC2.

From a customer perspective, the great thing is you can take an existing project and push it to the cloud. As long as you use standard JDBC connectivity and, for example, with RDS (which is MySQL), you can easily take the application somewhere else.

The small drawback is that you pay for certain resources even if you don’t really use them. Just to have the web app online, you need to have at least the EC2 micro instance running. On the other hand, experience from Google App Engine has proved that in order to serve real Java web apps, you need to have your dedicated JVM running all the time. This is due to the fact that most frameworks take so long to startup that you can’t really do it on-demand, as the first customer pops in and requests a page.