Scale Java Applications with AWS Elastic Beanstalk

Amazon just announced AWS Elastic Beanstalk, an even easier way for you to quickly deploy and manage applications in the AWS cloud. AWS Elastic Beanstalk will make it even easier for you to create, deploy, and operate web applications at any scale.

The first release of Elastic Beanstalk is built for Java developers using the Apache Tomcat stack. You simply upload your code and AWS takes care of the rest. AWS creates and configures all of the AWS resources (Amazon EC2 instances, an Elastic Load Balancer, and an Auto Scaling Group) needed to run your application. Simply write your Java code, compile it, package it up into a WAR, and upload it to the Tomcat environment via the AWS Management Console. Your application will be up and running on AWS within minutes.

Some (impressive) features include:

Elastic Beanstalk is built on top of the proven AWS infrastructure. It takes full advantage of Amazon EC2, Elastic Load Balancing, Amazon CloudWatch, Auto Scaling, and other AWS services. You get all of the economy and scalability of AWS in a form that's easier and quicker to deploy than ever before.

With Elastic Beanstalk you can choose to gradually assert control over a number of aspects of your application. You can start by tuning a number of parameters (see my post on the Elastic Beanstalk Console for more information about this). You can choose the EC2 instance type that provides the optimal amount of RAM and CPU power for your application. You can log in to the EC2 instances to troubleshoot application issues, and you can even take the default Elastic Beanstalk AMI (Amazon Machine Image), customize it, and then configure Amazon Beanstalk to use it for your application. This gradual assertion of control extends all the way to "eleven" -- you can choose to move your application off of Elastic Beanstalk and manage the raw components yourself if you so choose.

Elastic Beanstalk was designed to support multiple languages and application environments. We are already working with solution providers to make this happen.

Each of your Elastic Beanstalk applications will be run on one or more EC2 instances that are provisioned just for your application. Applications running on Elastic Beanstalk have the same degree of security as those running on an EC2 instance that you launch yourself.

You can build an application that makes use of Elastic Beanstalk along with other services that you deploy on EC2 without having to worry about network latency across a wide-area network. You can launch the services in the same Region as your Elastic Beanstalk application. The ability to efficiently access existing services running on EC2 instances gives you additional flexibility and even more architectural and implementation options.

The Elastic Beanstalk AMI is based on the Amazon Linux AMI running the Apache Web Server, Tomcat, and the Enterprise Edition of the Java platform. There is no additional charge for Elastic Beanstalk – you only pay for the underlying AWS resources.