Elastic Beanstalk is a great tool for the devs who wants a quick way to spin up web application environments which have ELB, ASG, RDS and DNS, also offer an easy way to deploy codes and manage the floating dns.
I have been using it for a few weeks. And here are a few gotchas I think you should be aware of:
- Elastic Beanstalk always creates a default security group for your instance. And the rules are based its guess. It always come back after you manually removed it from the configurations no matter you want it or not. The fix is to use .ebextensions to manage your Beanstalk configurations.
- It is good that Elastic Beanstalk propagates the environment tags to the AWS resources within it. But unfortunately, it does not allow you to update the environments tags once you created it. So be careful when you clone an environment, you can not change the tags!
- Do not build RDS within Elastic Beanstalk, as it will terminate the RDS when you terminate your environment. So if you want to share RDS between different environment, you’d better build a standalone one.
- Elastic Beanstalk currently only supports simple and scheduled scaling for auto scaling group. If you want to use step scaling, then you have to think twice.
- Elastic Beanstalk manages the DNS of the environment for you, it uses beanstalk.com domain in Route53 I believe. The environment DNS is the CNAME of the Elastic Load Balancer. If you wish to use your own domain name, you either point it to the beanstalk DNS or the ELB DNS.