AWS Elastic Beanstalk is an AWS managed service for web applications. Elastic beanstalk is a pre-configured EC2 server that can directly take up your application code and environment configurations and use it to automatically provision and deploy the required resources within AWS to run the web application. Unlike EC-2 which is Infrastructure as a service, Elastic beanstalk is a Platform As A service (PAAS) as it allows users to directly us a pre-configured server for their application. Of course you can deploy applications without ever having to use elastic beanstalk but that would mean having to chose the appropriate service from the vast array of services offered by AWS, manually provisioning these AWS resources and stitching them up together to form a complete web-application. Elastic beanstalk abstracts the underlying configuration work and allows you as a user to focus on more pressing matters.
This raises a concern that if elastic beanstalk configures most of the resources itself the and abstracts the underlying details. Can developers change configuration if needed? The answer is Yes. Elastic Beanstalk is provided to make application deployment simpler but at no level will it restrict the developers from changing any configurations.
AWS Elastic Beanstalk Features:
- Application: Elastic Beanstalk directly takes in out project code. So Elastic Beanstalk application is named the same as your project home directory.
- Application Environments: Users may want their application to run on different environments like DEV, UAT and PROD. You can crate and configure different environments to run application on different stages.
- Environment Health: One of the most lucrative features about running application on AWS or most of the other cloud platforms is the automated health checks. AWS runs automatic health checks on all EC-2 deployments (Elastic Beanstalk is a managed EC-2 service) which can be monitored from AWS console. For example, in case of web applications AWS will regularly, as scheduled by the developers, ping the application to check if the response is status code 200 and the application is running as expected. Health check responses:
- Red: Application failed all health tests.
- Yellow: Application failed some of the health tests.
- Grey: Application is updating.
- Green: Application passed health check successfully.
- Isolated: All environments within a single application are isolated from each other (independent of each others’ running states). Needless to say two different applications are also isolated.
- Scalability: Using Auto-Scaling within Elastic beanstalk makes the application dynamically scalable.
- Elastic Load Balancing: All the web requests to the application are not directly relayed to application instances. They first hit the Elastic Load Balancer (ELB), which, as the name suggests, balances the load across all the application instances.
- Language support: Elastic Beanstalk supports the applications developed with Java, .NET, PHP, Node.js, Python, Ruby, Go, and Docker on familiar servers such as Apache, Nginx, Passenger, and IIS.
- Pricing: There is no extra charge for using Elastic Beanstalk. Users ar only required to pay for the services and resources provisioned by Elastic Beanstalk Service.
- Automatic Provisioning: Elastic Beanstalk takes away the burden of choosing the right services and configuring their security groups to work together.
- Impossible to Outgrow: AWS claims that since Elastic Beanstalk uses Auto Scaling feature it can, in theory, handle any amount of internet traffic.
AWS Elastic Beanstalk Commands:
AWS provides a set of commands that can be run on AWS-CLI (AWS Command Line Interface) to manage your services. Much like you’d manage from your AWS Console. Following is a list of commands that can be run for managing the AWS Elastic Beanstalk service.
In simple words Elastic Beanstalk is an automatic application deployment service. It is the easiest possible way to deploy your applications on AWS even with possibly no prior experience on the platform.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
- Launching an Application on AWS Beanstalk
- Introduction to AWS Elastic Block Store(EBS)
- Introduction to AWS Elastic File System(EFS)
- Elastic Load Balancer in AWS
- AWS EBS (Elastic Block Store) Snapshot
- Introduction to AWS Simple Storage Service (AWS S3)
- Difference between AWS Cloudwatch and AWS Cloudtrail
- Introduction to Amazon Elastic Container Registry
- Introduction to Amazon Elastic Container Service (ECS)
- What is Elastic Compute Cloud (EC2)?
- What is Elastic Stack and Elasticsearch?
- Introduction to AWS Batch
- Introduction to AWS Compute
- Introduction to AWS Amplify
- Identity and Access Management (IAM) in Amazon Web Services (AWS)
- Top 10 Reasons to Learn AWS - Services And Benefits
- Difference Between Google Cloud and AWS
- AWS Cloud Support Associate Interview Experience
- AWS - Types of Databases
- Difference between AWS and Heroku
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.