Thanks. Can you please explain 3rd point. How is EC2 complicated than Heroku?
Deployment on EC2: Write app. Provision EC2 instance. Ensure instance has all the software you need (Framework, nginx, etc), and install it if needed. Pull code from repository. Start all necessary processes. Scaling with EC2: Repeat deployment steps (but this should be easier because you know what needs to be done with the image you've selected).
Heroku is easier and removes the headaches of running your own server. If you like running your own server - and know how to secure and optimize it - then EC2 (or linode, rackspace, etc) is a good option.