Overall Satisfaction with AWS Elastic Beanstalk
We primarily use AWS Elastic Beanstalk (EBS) for client production websites. The EBS is set up to autoscale, so it works well for when our client's site traffic spikes. Additionally, our development team uses the Atlassian Bamboo to build and deploy to EBS.
- Scalability: The ability to autoscale based on traffic helps with availability and overall cost.
- Amazon RDS: The RDS can be set up as a part of the EBS configuration or separately. This process to connect a separate RDS or external DB can be challenging, mainly due to security groups and permissions.
- Application Bundle: When updating an EBS, an application bundle needs to be created. The application bundle is a ZIP file of the entire website. This would be bothersome if you only need to change one code file. But if this file is part of a website that was built on a multi-file/folder framework, you will be required to zip the entire site and push the zip file to an an S3 bucket for deployment. Single file updates are not possible.
- Cost: AWS charges on demand. EBS will only spin up new servers as needed. This prevents the DevOps team running additional servers when not needed.
- Performance: The admin will be able to set threshold limits. This guarantees the site will be able to scale and support the bandwidth needs.
I selected these solutions because they are the closest to being able to set up separate server or VM instances. As far as performance and scalability, Heroku does offer an autoscale option, but the base cost to have the autoscale in place, sets Heroku behind EBS. Digital Ocean and Rackspace are reliable and are good solutions, but without an on-demand autoscale, the cost would be too much.