Suppose if the user develops an application, the first step will be developing the application in the eclipse. The application is then packaged and uploaded in the EC2 instance with the firewalls and keys. Post-uploading, it is deployed by logging into the instance, setting up the run-time environment and copying the app from the local system. After that we enter the AMI Creation stage where we work on the running instance and use the AMI for auto scaling. In auto scaling, we work on the command line (API tools). The user needs to focus only on development, whereas Amazon Elastic Beanstalk (official PaaS Platform) takes care of the other stages.
Why Amazon Elastic Beanstalk?
The Elastic Beanstalk helps in Easy & Quick deployment of applications. It automatically handles the deployment details. It is highly reliable, scalable and cost-effective as well. It can be extended to support multiple development stacks.
Amazon Elastic Beanstalk Functionality
The PaaS for the developer with web applications targets different platforms like Java, .Net, Node.js, PHP, Python & ruby Stack. It helps in creation of application using any editor or IDE (e.g. Eclipse, Visual Studio) and Package your deployable code. We can also configure the elastic load balancer or it is managed automatically.
Another advantage is that we get full control of Amazon resources. If it launches an EC2 instance, we can have root access to it. It will also create and manage the AMI automatically.
For example, if we create an application and deploy in the elastic beanstalk and after a month we deploy the war.file again in the elastic beanstalk, it will start launching the new version. After moving to production, we can always rollback to previous version.
The advantages are:
- Easy to Use
- Automated Scalability
- Complete control
- Free of Cost
Why use Elastic Beanstalk over own AMI/App?
The Primary reasons are:
- Automated (de) provisioning of environments
- Automated version deployment (including rollback)
- Managed Environment setting
- Built-in monitoring and notifications
- Basic log-file rotation to Amazon S3
- Easy troubleshooting
When we create elastic beanstalk it will create an instance since the user needs to give the package application. For managing source code it is advisable to go to S3 and enable the versioning.
How does the Elastic Beanstalk work?
Elastic Beanstalk would have a host manager. It will then launch EC2 instances, launching elastic load balancer, configuring auto-scaling and storing the versions in S3. If it is Java, it will always have an Amazon AMI and also a Tomcat application as a part of it. Each EC2 instance will have a Tomcat application as a part of it. It will then keep launching the EC2 instances which will be a part of Elastic Load Balancer and auto scaling. It will also provide the URL to access the application. It will then keep generating the new version in the S3 also.
Accessing Elastic Beanstalk
The Elastic Beanstalk is based on the following elements:
- AWS Management Console
- AWS Toolkit for Eclipse, Visual Studio
- Command Line Tools
- SDKs and API
Here are the steps to be followed while launching Elastic Beanstalk:
- From the console window, we can select the platform. We choose Tomcat.
- Click on the launch now button
- It will then start creating the environment.
- We then go to configuration which will have scaling, instances and notification configurations.
- We can also choose the environment type which will be based on ‘load balancing auto scaling’ or ‘single instance’; we go with the former.
- We then specify the maximum/minimum instance, zones supported, cool down period, trigger measurement, unit of measurement, measurement period, breach duration, upper threshold, upper breach scale increment, lower threshold and lower breach scale increment.
- We can also specify the instance type, EC2 security groups, EC2 key pair, instance profile, monitoring interval and custom AMI ID.
- The load balancer section helps the user configure listener port, protocol, secure listener port, protocol, SSL certificate ID, EC2 Instance health check and the sessions time-out.
- Once the EC2 instance is launched, it will deploy the application.
- We then upload the tomcat default .war file.
- Once deployed, we can access using the URL generated.
- After visiting the URL, the user can access Servlets and JSP examples.
Got a question for us? Mention them in the comments section and we will get back to you.