The creation of an AMI when a new node(server) is deployed is not automatic by default. You could certainly make it happen by using a AWS SDK of your choice. Image type depends on what type of EC2 instance you are using. AWS best practices recommends having your instance in different regions connected via auto scaling and launch configurations using an ELB so that you are highly available. You could also dosnapshots if thats what you are looking for.
Updated Answer:
It depends how much time you want to spend doing this. You could use Cloudformation, and Infrastructure as code methodologies to create your environment programmatically. i.e. Things like Ansible, Docker, etc...
You could also bootstrap an ec2 when deploying one using user-data to copy repo's, configure, etc...
Probably the fastest way is to create an AMI of your working EC2 instance, and then create new EC2 instances from that AMI, instead of starting from a fresh instance everytime. There are also AWS tools like Elastic Beanstalk depending on your stack that could greatly reduce time spent.
It also depends on your architecture, the more EC2 instances you have, you will have to consider things like HA and fault tolerance, which then makes you configure autoscaling and launch configurations, etc.