Elastic Beanstalk is a great product that provides tools for running you web application.
You can deploy your application as archive or docker container.
Elastic Beanstalk works on top of the AWS EC2 and provides autoscaling, logging, monitoring for you out of the box.
Setting up docker application that works with database takes no more than 1 hour.
Most of cases are well-documented.
I think that AWS EB is good for start when you don't want to spend a time for setting up environment, load balancers and so on. And it suits mostly for single-container apps.
You can set up different environments for one application: dev, testing, staging, live and so on.
There is list of different deployment approaches.
1. Deploy from docker registries described too complicated in documentation: I've tried deploy app from Dockerhub and AWS Container Service. I've spend about 1 hour for setting up both of cases: there are a lot of articles in documentation that answers only on part of questions. But you can find very good screencasts on Youtube.
2. If you are setting up database via Elastic Beanstalk interface - it manages all issues transparently for you. And there are advantages and disadvantages here. Disadvantages: you can not change any settings, for example, you are not able to rename database.
3. As I said AWS EB is quite good for start. If you want to run one app - you have to run one instance of EC2. But if you want to run several apps on one instance - it would be difficult (if possible at all). I mean that you can't utilize resources well.
I've used AWS EB for web APIs.
It was easy to start. EB provides blue/green deployment out of the box.