Amazon Elastic Beanstalk Review!
Updated August 10, 2019
Amazon Elastic Beanstalk Review!
Score 8 out of 10
Overall Satisfaction with AWS Elastic Beanstalk
AWS Elastic Beanstalk is a great tool to use for supercharging the speed to deploy basic applications that are fine running in fairly generic, but high-quality configurations. In using ELB, most of the complicated tasks of server setup are performed by AWS, so your developers are able to focus their efforts on developing your application and less time worrying about how to configure the deployment.
- Removes tedious, error-prone work from team focus for server configuration and environment setup.
- AWS creates new stacks when underlying software requires security updates, or frameworks release new versions.
- Greatly improves speed-to-production for many applications.
- Free resource on top of AWS; it costs nothing additional to use Elastic Beanstalk over the cost of the underlying instances and resources.
- Limited to the frameworks and configurations that AWS supports. There is no native way to use Elastic Beanstalk to deploy a Go application behind Nginx, for example.
- It's not always clear what's changed on an underlying system when AWS updates an EB stack; the new version is announced, but AWS does not say what specifically changed in the underlying configuration. This can have unintended consequences and result in additional work in order to figure out what changes were made.
- Elastic Beanstalk removes countless hours from development team responsibility, freeing up those resources to instead focus on building the products that our customers want to use.
- As a business that is already embedded into using EC2 instances, it's essentially free to leverage the work that AWS performs on configuring the Elastic Beanstalk stacks.
- With Elastic Beanstalk, while there is still a responsibility to ensure that applications can work with updated underlying dependencies, it's much easier when AWS handled the heavy lifting of updating the stacks.
AWS Elastic Beanstalk is a great option for an organization that's already invested in the AWS ecosystem. The greater the number of complementary features needed by the application (e.g. integrating with Amazon's Elastic Load Balancer, databases, etc), the greater the reward from leveraging Elastic Beanstalk. In our experience, Elastic Beanstalk is cheaper than other services like Heroku. It's on-par with offerings from Azure and Google Cloud; the use case there is driven by buy-in around AWS.
Elastic Beanstalk is a great fit for a product that's already open to using Amazon Web Services, but has a team that does not want to work with environment setup. Furthermore, it's really only a fit for situations where the configuration needed from the team fits within a stack that Elastic Beanstalk offers. Even if you're interested in using one of the stacks they do support, you have more ability to modify configurations if you're handling all the setup and configuration on your own.
AWS Elastic Beanstalk Feature Ratings
Using AWS Elastic Beanstalk
Like to use
Easy to use
Quick to learn
- Deploying and versioning code is very simple; Elastic Beanstalk maintains a configurable number of deployment instances, and you can rollback to any of them very easily
- Simple configuration options for type of deployment updates (rolling, all at once, immutable); shortens cycles in test while allowing for more complex strategies in production
- Simple auto-scaling support; easily use auto scaling groups to scale based on a number of custom triggers, easily attach policies for setting minimum and maximum numbers of instances
- Deploying to multiple regions unfortunately means deploying each one separately one-at-a-time
- Elastic beanstalk does not natively support sending process termination events to your application, so there is no way to gracefully terminate the application; rather, EB drains the instance at load balancer and then force kills the process
- Figuring out exactly what is running during updates, etc, can be difficult, and viewing consolidated logs to see what EB is running can be cumbersome