alphaspirit - Fotolia
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:
- Deployment type -- Web servers in an Auto Scaling group using Elastic Load Balancer (ELB)
- Platform -- PHP
- Sample source code location -- Sample demo PHP application from AWS labs GitHub.
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.
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.
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.
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.
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.
That's all it takes to deploy a new application build. You can browse the updated application on the same URL.
Popular expert tips include Beanstalk, AWS Educate
Developers use Beanstalk to monitor app health
Beanstalk pushing AWS PaaS revolution