Elastic Beanstalk
Developer Guide (API Version 2010-12-01)

Develop, Test, and Deploy

The following diagram illustrates a typical software development life cycle that includes deploying your application to Elastic Beanstalk.

Software Development Life Cycle

After developing and testing your application locally, you typically deploy your application to AWS Elastic Beanstalk. After deployment, your application will be live at a URL such as

If you want to replace the URL with a custom domain name, you can use Amazon Route 53, a highly available and scalable Domain Name System (DNS) web service. You can point your domain name to the Amazon Route 53 CNAME <yourappname> Contact your DNS provider to set this up. For information about how to map your root domain to your Elastic Load Balancer, see Using Elastic Beanstalk with Amazon Route 53 to Map Your Domain to Your Load Balancer.

Because your application is live, you should consider setting up multiple environments, such as a testing environment and a production environment. You can use the AWS Toolkit for Eclipse to set up different AWS accounts for testing, staging, and production. For information about managing multiple accounts, see Managing Multiple AWS Accounts.

After you remotely test and debug your Elastic Beanstalk application, you can make any updates and then redeploy it to Elastic Beanstalk. After you are satisfied with all of your changes, you can upload the latest version to your production environment. The following sections explain each stage of the software development life cycle.

Create Project

The AWS Toolkit provides an AWS Java web project template for use in Eclipse. The template creates a web tools platform (WTP) dynamic web project that includes the AWS SDK for Java in the project's classpath. Your AWS account credentials and a simple index.jsp file are provided to help you get started. The following instructions assume you have installed both the Eclipse IDE for Java EE Developers and the AWS Toolkit plug-in. For more information, see Setting Up the AWS Toolkit for Eclipse.


For information about what versions of Java are supported, see Supported Platforms.

To create a new AWS Java web project in Eclipse

  1. In Eclipse, make sure the toolbar and the AWS icon are visible.

    AWS Icon in Eclipse Toolbar
  2. On the toolbar, click the arrow next to the AWS icon and choose New AWS Java Web Project.

    New AWS Java Web Project Menu Item
  3. In the New AWS Java Web Project wizard, click Project name, and then enter the name of your AWS Java Web Project.

    New Java AWS Web Project Window
  4. Select the AWS account you want to use to deploy your application. If you haven't already configured an account, click Configure AWS accounts to add a new account. For instructions on how to add a new account, go to Managing Multiple AWS Accounts.

  5. Select the application you want to start from.

  6. Click Finish.

A new AWS Java web project is created inside your Eclipse workspace. To help you get started developing your project, a basic index.jsp file is included inside your WebContent folder. Your AWS security credentials are included in the file inside your src folder.

Test Locally

You can test and debug your application before you deploy it to Elastic Beanstalk using the built-in WTP tools.

To test and debug your application locally

  1. If Eclipse isn't displaying Project Explorer view, do one of the following:

    • In the Java EE perspective, click the Window menu, click Show View, and then click Project Explorer.

    • In the AWS Management perspective, click the Window menu, click Show View, expand General, and then click Project Explorer.

  2. In the Project Explorer tab, right-click your Java web project, choose Run As, Run On Server.


    If the Run on Server option does not appear, ensure that you have the Web Tools Platform Eclipse extensions installed. The WTP is included with Eclipse if you install the Eclipse IDE for Java EE Developers. The tools must be installed when your project is created for the option to appear.

  3. In the Run On Server wizard, click Manually define a new server.

    Elastic Beanstalk Run On Server Window
  4. Under Select the server type, expand Apache, and then click Tomcat v6.0 Server or Tomcat v7.0 Server.

  5. Click Next.

  6. You might be prompted to install Apache. If you are using Microsoft Windows, you can click Download and Install to install the software. After you install the software, click Finish.


    You might need to manually create a Tomcat server. This includes going directly to to download Apache Tomcat, extracting the compressed file containing Apache Tomcat onto your computer, and then adding the Apache Tomcat runtimes. For more information, go to the "Creating an Apache Tomcat Server" topic of the Eclipse online documentation at

    After you create a Tomcat server and add the Apache Tomcat runtimes, go to Step 2 in these procedures.

    Your application should be visible on the localhost.


Environment properties that are typically provided by Elastic Beanstalk, such as RDS_HOSTNAME (when using RDS), are not available to applications running locally.

After you test your application, you can deploy to Elastic Beanstalk.

Deploy to AWS Elastic Beanstalk

The Elastic Beanstalk server is an Eclipse WTP server with added functionality for restarting, publishing, and terminating your Java web application. The Elastic Beanstalk server in Eclipse represents an Elastic Beanstalk environment. An environment is a running instance of an application on the AWS platform.

Define Your Server

Before deploying your application, you must define your server and configure your application.

To define your Java web application server

  1. In Eclipse, right-click your Java web project in the Project Explorer view. Choose Amazon Web Services, Deploy to AWS Elastic Beanstalk.

  2. In the Run On Server wizard, select Manually define a new server.

    Elastic Beanstalk Run On Server Window
  3. Under Select the server type, expand Amazon Web Services, and then click Elastic Beanstalk for Tomcat 6 or Elastic Beanstalk for Tomcat 7.

  4. If necessary, enter the server's host name and server name in the provided fields. Click Next.

You have defined your AWS Java web application server. You must use the Configure Application and Environment options to configure your AWS Java web application before deployment.


Each application has a configuration and a version. A specific application instance is called an environment. An environment can have only one version at a time, but you can have multiple simultaneous environments running the same or different versions. AWS resources created for an environment can include one Elastic Load Balancing load balancer, an Auto Scaling group, and one or more Amazon EC2 instances.

To configure your Amazon web application

  1. In the Configure Application and Environment view of the Run On Server wizard, click Region, and then select your Amazon Web Services region.

    Elastic Beanstalk Run on Server Window
  2. Enter an application name and, if desired, provide an application description.

  3. Enter an environment name and, if desired, provide an environment description. The environment name must be unique within your AWS account.

  4. Select the Type of environment that you want.

    You can select either Load Balanced or a Single Instance environment. For more information, see Environment Types.


    For single-instance environments, load balancing, autoscaling, and the health check URL settings don't apply.

  5. Click Next.

  6. Click Deploy with a key pair.

    Elastic Beanstalk Run on Server Window
  7. Right-click anywhere inside the key pair list menu and select New Key Pair.

  8. For Key Pair Name, enter a key pair name. For Private Key Directory, enter a private key directory or click Browse and select a directory. Click OK and select the newly created key pair in the key pair list menu.

  9. Select Use incremental deployment to deploy only the changed files. An incremental deployment is faster because you are updating only the files that changed instead of all the files.

  10. Select an instance profile.

    If you do not have an instance profile, select Create a default instance profile. For information about using instance profiles with Elastic Beanstalk, see Using IAM Roles with Elastic Beanstalk.

  11. Click Finish.

After you finish the wizard, you are prompted to enter a new version label for your application version, and a new server appears in the Server view. Your Java web project will be exported as a .war file, uploaded to Amazon S3, and registered as a new application version with Elastic Beanstalk. The Elastic Beanstalk deployment feature monitors your environment until it becomes available with the newly deployed code and opens your application in a web browser when it's ready.

Debug/View Logs

To investigate any issues, you can view logs. For information about viewing logs, see Instance Logs. If you need to test remotely, you can connect to your EC2 instances. For instructions on how to connect to your instance, see Listing and Connecting to Server Instances.

Edit the Application and Redeploy

Now that you have tested your application, it is easy to edit and redeploy it and to see the results in moments. Typically, when you redeploy your application, all of the files get updated. However, if you choose to do an incremental deployment, the toolkit updates the modified files, making your deployment faster.

To choose to use incremental deployments

  1. If Eclipse isn't displaying AWS Explorer view, in the menu choose Window, Show View, AWS Explorer. In the AWS Explorer pane, expand the Elastic Beanstalk node and your application node.

  2. Double-click your Elastic Beanstalk environment.

  3. In the Overview tab, expand the AWS Elastic Beanstalk Deployment tab, and then select Use Incremental Deployments.

To edit and redeploy your Java web application

  1. In Eclipse, locate and double-click the index.jsp file in the Project Explorer or Package Explorer view. Edit the source contained in the file.

  2. Right-click your Java web project in the Project Explorer or Package Explorer view and choose Amazon Web Services, Deploy to AWS Elastic Beanstalk.

  3. In the Run On Server wizard, select Choose an existing server, and click Finish.


    If you launched a new environment using the AWS Management Console, you will need to import your existing environments into Eclipse. For more information, see Importing Existing Environments into Eclipse.

When the application has been deployed successfully, index.jsp is displayed in Eclipse and shows any edits you made.

Deploy to Production

When you are satisfied with all of the changes that you want to make to your application, you can deploy your application to your production environment. To deploy the existing version of the application to production with zero downtime, follow the steps at Deploying a new Application Version with Zero Downtime (CNAME swap). You can also create a new environment inside Eclipse, but you will need to specify a new version for your application. For instructions on deploying to Elastic Beanstalk inside Eclipse, see Deploy to AWS Elastic Beanstalk.