Amazon Elastic Beanstalk provides a fast and simple way to get web applications up and running on Amazon Web Services. Developers simply upload their application code and the service automatically handles all the 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 Amazon Web Services services such as Amazon EC2, Amazon Elastic Container Service (Amazon ECS), Auto Scaling, and Elastic Load Balancing to easily support applications that need to scale to serve millions of users.
Wide Selection of Application Platforms
Wide Selection of Application Platforms
Amazon Elastic Beanstalk supports web applications written in many popular languages and frameworks. It requires no or minimal code changes to go from development machine to the cloud. 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
Variety of Application Deployment Options
Amazon Elastic Beanstalk allows you to deploy your code through the Amazon Web Services 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 enable you to choose between speed and safety of deploying your applications while reducing the administrative burden.
Monitoring
Amazon Elastic Beanstalk provides a unified user interface to monitor and manage the health of your applications.
Application Health
Elastic Beanstalk collects 40+ key metrics and attributes to determine the health of your application. The Elastic Beanstalk Health Dashboard allows 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 Amazon 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 your chosen thresholds.
Management and Updates
Management and Updates
You can choose to have Amazon Elastic Beanstalk automatically update to the latest version of your Elastic Beanstalk environment using Managed Platform Updates. The Immutable deployment mechanism ensures these updates for new patches and minor platform versions are done 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
Scaling
Amazon 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 availability zone.
Customization
Customization
With Amazon Elastic Beanstalk, you have the freedom to select the Amazon Web Services resources, such as Amazon EC2 instance type including Spot instances, that are optimal for your application. Additionally, Elastic Beanstalk lets you "open the hood" and retain full control over the Amazon Web Services 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 seamlessly by using Elastic Beanstalk's management capabilities.