Being fairly new to the AWS ecosystem, is there any reason I wouldn't want to use Elastic Beanstalk for my python+django+yeoman web app (still being prototyped, but want to be ready to scale quickly as soon as it's released)?
I looked into Elastic Beanstalk but decided not to use it. My reason was the additional learning curve that would be associated with it.
- My web application needs a large number of software packages installed, many with specific versions (tomcat, java, firefox, mysql, lots of utilities). To get Elastic beanstalk machines into the correct state requires learning the specific configuration format they use for package information. It isn't just
aptlike I'm used to.
- Elastic beanstalk only allows five configuration parameters to be passed to the machine. My config file has hundreds of items in it. It appears that you would need to pass in information to your web app that would tell it where to look for additional configuration. I was considering writing the configuration to the database and using the limited beanstalk configuration to tell it how to contact that database.
- Elastic beanstalk sounds nice if you really do need to scale dynamically, but it isn't too hard to scale without it. You'll just have to bring up additional machines manually (or resize your existing instances larger) instead of having something manage the number of machines for you.