Amazon Web Services (AWS) comprises over one hundred services, each of which exposes an area of functionality. While the variety of services offers flexibility for how you want to manage your AWS infrastructure, it can be challenging to figure out which services to use and how to provision them.
With Elastic Beanstalk, you can quickly deploy and manage applications in the AWS Cloud without worrying about the infrastructure that runs those applications. AWS Elastic Beanstalk reduces management complexity without restricting choice or control. You simply upload your application, and Elastic Beanstalk automatically handles the details of capacity provisioning, load balancing, scaling, and application health monitoring. Elastic Beanstalk uses highly reliable and scalable services that are available in the AWS Free Tier.
When to Use
To use Elastic Beanstalk, you create an application, upload an application version in the form of an application source bundle (for example, a Java .war file) to Elastic Beanstalk, and then provide some information about the application. Elastic Beanstalk automatically launches an environment and creates and configures the AWS resources needed to run your code. After your environment is launched, you can then manage your environment and deploy new application versions.
After you create and deploy your application, information about the application—including metrics, events, and environment status—is available through the AWS Management Console, APIs, or Command Line Interfaces, including the unified AWS CLI.
Features
• Wide Selection of Application Platforms: AWS Elastic Beanstalk supports web applications written in many popular languages and frameworks.You can choose from variety of application platforms such as Java, .NET, Node.js, PHP, Ruby, Python, Go, and Docker to deploy your web applications.
• Variety of Application Deployment Options: AWS Elastic Beanstalk allows you to deploy your code through the AWS Management Console, Elastic Beanstalk Command Line Interface,Visual Studio, and Eclipse.
• Monitoring: AWS Elastic Beanstalk provides a unified user interface to monitor and manage the health of your applications.
• Scaling: AWS Elastic Beanstalk leverages Elastic Load Balancing and Auto Scaling to automatically scale your application in and out based on your application’s specific needs.
• Customization: With AWS Elastic Beanstalk, you have the freedom to select the AWS resources, such as Amazon EC2 instance type, that are optimal for your application.
Benefits
• Fast and simple to begin : Elastic Beanstalk is the fastest and simplest way to deploy your application on AWS.Within minutes, your application will be ready to use without any infrastructure or resource configuration work on your part.
• Developer productivity: Elastic Beanstalk provisions and operates the infrastructure and manages the application stack for you, so you don’t have to spend the time or develop the expertise.
• Impossible to outgrow: Elastic Beanstalk automatically scales your application up and down based on your application’s specific need using easily adjustable Auto Scaling settings.
• Complete resource control: You have the freedom to select the AWS resources, such as Amazon EC2 instance type, that are optimal for your application.
Getting Started
The first of the many beginning steps to learn the Elastic Beanstalk can be found under the below link.
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/GettingStarted.html
Video Tutorial
https://www.youtube.com/watch?v=96DJ2Og90hU
Best Practices
Some of the best practices can be found in the below links
https://www.cloudconformity.com/conformity-rules/ElasticBeanstalk/
https://aws.amazon.com/blogs/aws/category/aws-elastic-beanstalk/
Pricing
There is no additional charge for AWS Elastic Beanstalk. You pay for AWS resources (e.g. EC2 instances or S3 buckets) you create to store and run your application. You only pay for what you use, as you use it; there are no minimum fees and no upfront commitments.
https://aws.amazon.com/elasticbeanstalk/pricing/