alphaspirit - Fotolia


Elastic Beanstalk handles AWS application deployment

AWS Elastic Beanstalk frees up developers by easing deployment, regardless of language or server, and managing the necessary infrastructure.

AWS Elastic Beanstalk allows users to quickly deploy applications in a scalable manner, with minimal configuration and provisioning efforts. The product supports various types of application languages, such as Node.js, PHP, Python and Ruby; all of which can be deployed on various servers, such as Apache, Tomcat and Nginx. It allows development teams to focus on application building, rather than infrastructure management efforts.

This tip explains how to deploy an application in an AWS Elastic Beanstalk environment with the following factors:

In addition to ease of deployment, Amazon Web Services (AWS) Elastic Beanstalk offers complete access to underlying resources, monitoring and notification support, access to log files without logging into instances, the ability to adjust application server settings and version deployment or rollback. AWS users also can build PHP applications on Amazon Elastic Compute Cloud (EC2) instances using AWS Elastic Beanstalk, and then perform further version deployment on the existing stack.

Using Elastic Beanstalk for AWS application deployment

Log into your AWS Management Console and navigate to the Elastic Beanstalk service. To deploy a sample application, choose a platform from the middle of the screen and click Launch Now. To deploy a custom application with Elastic Beanstalk, click on Create New Application at the top-right corner of the console screen.

Provide a name and description of your AWS application deployment, and then select between one of two environment types: Web server and worker. In this case, we'll choose "Web Server Environment."

Next, choose the environment platform and environment type -- single Web server setup or multi-Web server setup using Auto Scaling with ELB. For this example, we will use PHP as the environment platform and Auto Scaling with ELB as the environment type.  

Upload the application to Elastic Beanstalk or provide an Amazon Simple Storage Service (S3) URL as the application pick-up location. Next, provide a name, description and URL of the environment. To ensure the URL is available, use the Check Availability button.

AWS Elastic Beanstalk environment information
AWS Elastic Beanstalk environment information

If there is a need for an Amazon Relational Database Service (RDS) instance, or to provision resources in a virtual private cloud (VPC), select the relevant option in the additional resources tab.

AWS Elastic Beanstalk additional resources
AWS Elastic Beanstalk additional resources

Next, provide configuration details. These allow users to choose various parameters related to the environment, including instance type, key pair, load balancing-related parameters and notification parameters.

AWS Elastic Beanstalk configuration details
AWS Elastic Beanstalk configuration details

Because the deployment will take place in a VPC, select the subnets for ELB and EC2, as well as security groups for EC2 and visibility for ELB.

AWS Elastic Beanstalk VPC configuration
AWS Elastic Beanstalk VPC configuration

Users can attach an Identity and Access Management (IAM) role to instances by providing a suitable role and service role. If a new service role is created, the IAM role creation window will open, and users can grant the appropriate permissions to the IAM role.

It's important to review configurations before moving forward. After a review, users can initiate and track the progress of application creation. And once the application is successfully created, users can browse the application on the chosen URL.

To deploy a new version on the existing Elastic Beanstalk application, a user must create his/her latest application bundle file and upload it back to Elastic Beanstalk, which will handle the complete AWS application deployment. To do this, return to the main screen of the Elastic Beanstalk application and select Upload, and then Deploy. This allows users to upload the next revision and deploy it on existing instances.

Upload and deploy application in Elastic Beanstalk
Upload and deploy application in Elastic Beanstalk

That's all it takes to deploy a new application build. You can browse the updated application on the same URL.

Next Steps

Popular expert tips include Beanstalk, AWS Educate

Developers use Beanstalk to monitor app health

Beanstalk pushing AWS PaaS revolution

Dig Deeper on AWS tools for development