AWS was designed to be flexible. It allows developers to create applications using the tools of their choice. But that flexibility comes at a price: Managing the whole software stack can be complicated.
Amazon CTO Werner Vogels acknowledges that some customers want something simpler, a platform like Heroku for Ruby on Rails applications or phpfog for hosted PHP applications.
"Developers have continuously asked us to create similar platforms to simplify development on AWS," Vogels explained in a blog post. "However, given that there are probably as many different approaches to development as there are developers, instead of creating a particular platform, we are launching AWS Elastic Beanstalk, an application development container that can be the basis for the development of many different development platforms.
At the moment, Elastic Beanstalk has only one container, for Java developers using the Linux/Apache Tomcat stack, but more will follow. For example, AWS is working with Engine Yard, a Ruby on Rails cloud platform, on a Ruby on Rails container.
"Elastic Beanstalk is easy to begin and impossible to outgrow," said AWS VP Adam Selipsky in a statement. "It automatically scales up or down as needed and developers don’t need to worry about the configuration required to set up their infrastructure on AWS."
Elastic Beanstalk simplifies the process of cloud application deployment by automatically creating the AWS resources and application stack required to run the application. Vogels says that it frees developers from having to worry about server capacity, load balancing, scaling, and version control.
The service works by allowing developers to upload their application using the AWS Management Console, the AWS Toolkit for Eclipse, or the Elastic Beanstalk command line tools or API. It then manages deployment and infrastructure provisioning. The application is made available in a few minutes through a customized URL and is monitored for performance.
Vogels says that Elastic Beanstalk was designed to support other programming platforms. "This is extremely important as the AWS developer ecosystem has always been very rich and we want to keep it that way," he wrote. "Our goal is to ensure every developer's favorite platform is always available on AWS so they can stop worrying about deploying and operating scalable and fault-tolerant application and focus on application development."