AWS Elastic Beanstalk Documentation

AWS Elastic Beanstalk is designed to get web applications up and running on AWS. Developers upload their application code and the service handles details such as resource provisioning, load balancing, auto-scaling, and monitoring. Elastic Beanstalk is ideal if you have a PHP, Java, Python, Ruby, Node.js, .NET, Go, or Docker web application. Elastic Beanstalk uses core AWS services such as Amazon EC2, Amazon Elastic Container Service (Amazon ECS), Auto Scaling, and Elastic Load Balancing to support applications that need to scale to serve a large number of users. 

Application Platforms

AWS Elastic Beanstalk supports web applications written in many languages and frameworks. It requires minimal code changes to go from development machine to the cloud. You can choose from a variety of application platforms such as Java, .NET, Node.js, PHP, Ruby, Python, Go, and Docker to deploy your web applications.

Application Deployment Options

AWS Elastic Beanstalk is designed to help you deploy your code through the AWS Management Console, Elastic Beanstalk Command Line Interface, Visual Studio, and Eclipse. You can pick from multiple deployment policies – all at once, rolling, rolling with an additional batch, immutable, and blue/green. These policy choices help you to choose between speed and safety of deploying your applications while reducing the administrative burden.

Monitoring

AWS Elastic Beanstalk provides a unified user interface to monitor and manage the health of your applications.

Application Health

Elastic Beanstalk collects key metrics and attributes to determine the health of your application. The Elastic Beanstalk Health Dashboard helps you to visualize overall application health and customize application health checks, health permissions, and health reporting in one unified interface.

Monitoring, Logging, and Tracing

Elastic Beanstalk is integrated with Amazon CloudWatch and AWS X-Ray. You can leverage monitoring dashboard to view key performance metrics such as latency, CPU utilization, and response codes. You can also set up CloudWatch alarms to get notified when metrics exceed chosen thresholds.

Management and Updates

You can choose to have AWS Elastic Beanstalk update to the latest version of your Elastic Beanstalk environment using Managed Platform Updates. The Immutable deployment mechanism helps to apply updates for new patches and minor platform versions in a safe manner to minimize end users impact. For on-going management, you can also customize application properties, create alarms, and enable e-mail notifications via Amazon Simple Notification Service (Amazon SNS).

Scaling

AWS Elastic Beanstalk leverages Elastic Load Balancing and Auto Scaling to scale your application in and out based on your application's specific needs. In addition, multiple availability zones are designed to give you an option to improve application reliability and availability by running in more than one zone. 

Customization

With AWS Elastic Beanstalk, you can select the AWS resources, such as Amazon EC2 instance type including Spot instances, that are optimal for your application. Additionally, Elastic Beanstalk lets you retain control over the AWS resources powering your application. If you decide you want to take over some (or all) of the elements of your infrastructure, you can do so by using Elastic Beanstalk's management capabilities.

Additional Information

For additional information about service controls, security features and functionalities, including, as applicable, information about storing, retrieving, modifying, restricting, and deleting data, please see https://docs.aws.amazon.com/index.html. This additional information does not form part of the Documentation for purposes of the AWS Customer Agreement available at http://aws.amazon.com/agreement, or other agreement between you and AWS governing your use of AWS’s services.