AWS Elastic Beanstalk
April 19, 2016
AWS Elastic Beanstalk
Score 9 out of 10
Overall Satisfaction with AWS Elastic Beanstalk
It is the main tool that we to deploy our website. We host our main back-end server as well as host our database. In addition, I have deployed many personal applications on AWS Elastic Beanstalk. It's incredibly easy to deploy, build, and scale, and I plan to use it for all my future projects. The speed and reliability are top notch and I would recommend it over a product such as Heroku.
- Easy to deploy. It's incredibly easy to build a war file and deploy it to Elastic Beanstalk. It's painless to iterate on our product in this aspect.
- Easy to scale. It takes only a short amount of time to do any upgrades to a server. The longest part is to back everything up, but it has only been a safety feature and never actually needed.
- Easy to monitor. We are able to track performance with a simple dashboard and message/email alerts if an alarm is ever triggered.
- How to more easily integrate with other other AWS services. There are plenty out there, but it's not quite as seamless as I feel like it should be to mix and match products.
- Make backing up easier when scaling the server. It took quite a bit of time to make sure we had everything set up in case something went wrong.
- When you are first starting to use AWS, the dashboard can be very intimidating. There are countless products all with names that aren't very indicative of what they actually do.
- The ROI of AWS Elastic Beanstalk has been great. I plan to use it as my main solution going forward. If you're trying to build a large-scale application, the price is only a fraction of the value you actually receive giving it a huge ROI.
- One downside that we ran into is that we would sometimes upgrade our server as a crutch instead of refactoring code and paying back technical debt. These problems should compound and you should always be aware if this is happening.
- The biggest positive impact is scalability. We are a rapidly growing startup, and having the ability to quickly and easily upgrade and scale our servers has been huge. As we continue to grow our customer base and product features, the ability to not worry about this has been huge.
The other main competitor that I have used would probably be Heroku. While Heroku is incredibly simple and easy to get a sample web app online, its dashboard and product connectivity didn't feel quite as seamless as AWS Elastic Beanstalk. AWS Elastic Beanstalk has a higher up front cost to learn and deploy, but its ability to scale and grow and be transparent afterwards is really its selling point. Heroku felt expensive, and I never really knew what I was getting from it.
AWS Elastic Beanstalk is definitely the best when trying to build large applications. It has the flexibility to start out small and reduce costs, but then it can easily be scaled and parsed out so that it can handle countless users. I believe that Netflix even recently started using AWS as it's solution. The times when it is less appropriate is if you are wanting to create a very simple website, are not trying to grow your website, or are very inexperienced with software development. You don't need a power drill when a hammer will do.