You can think of AWS Elastic Beanstalk as being a sort of automated version of EC2--that is, it uses EC2 on the backend for the servers, but you don't have to worry about manually provisioning serves, expanding servers when you hit capacity, and so on. Basically, you give Beanstalk your application and it will "scale" it for you. In fact, you aren't charged for Beanstalk itself--you are charged for the AWS resources you're using, such as S3, SNS, and EC2.
So to answer your questions:
- If you want control over scaling and resource control, EC2 is what you want--but keep in mind, this leads to a lot of administrative work, and if you aren't familiar with the concepts at hand, you may get a little lost. Plus, it might not be worth the time and effort to do so. Beanstalk gives you scalability without micromanagement.
- MySQL Micro RDS instances start at $0.025 an hour, while Small EC2 instances start at $0.020 an hour. However, the RDS service provide several useful features, such as auto-scaling, automated backups, database optimization, and so on. It's really up to you if you want either or. You'll need to run the numbers yourself and decide how much time you want to spend dealing with the DB.
- You will almost certainly need to use a DNS provider to setup a CNAME on your domain. Coincidentally, there's an AWS service--Route 53--that does this. IIRC, there are also several third party services that can bridge this gap for you.
Hope this helps!