AWS Elastic Beanstalk can be used to quickly deploy and manage applications in the AWS Cloud.
Developers upload applications and Elastic Beanstalk handles the deployment details of capacity provisioning, load balancing, auto-scaling, and application health monitoring.
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.
In addition, multiple availability zones give you an option to improve application reliability and availability by running in more than one zone.
Considered a Platform as a Service (PaaS) solution.
Supports Java, .NET, PHP, Node.js, Python, Ruby, Go, and Docker web applications.
Supports the following languages and development stacks:
- Apache Tomcat for Java applications.
- Apache HTTP Server for PHP applications.
- Apache HTTP Server for Python applications.
- Nginx or Apache HTTP Server for Node.js applications.
- Passenger or Puma for Ruby applications.
- Microsoft IIS 7.5, 8.0, and 8.5 for .NET applications.
- Java SE.
Integrates with VPC.
Integrates with IAM.
Can provision most database instances.
Allows full control of the underlying resources.
Stores your application files and, optionally, server log files in Amazon S3.
Application data can also be stored on S3.
Multiple environments are supported to enable versioning.
Changes from Git repositories are replicated.
Linux and Windows 2008 R2 AMI support.
Code is deployed using a WAR file or Git repository.
Use the AWS toolkit for Visual Studio and the AWS toolkit for Eclipse to deploy Elastic Beanstalk.
Fault tolerance within a single region.
By default applications are publicly accessible.
Provides integration with CloudWatch.
Can adjust application server settings.
Can access logs without logging into application servers.
Can use CloudFormation to deploy Elastic Beanstalk.
There is no additional charge for Elastic Beanstalk – you pay only for the AWS resources needed to store and run your applications.