Every time I reboot my Ubuntu based EC2 instances, they do not automatically get the IP so I have to associate them manually from the admin panel. Each instance should have a single IP assigned.
Is there any way to make this auto?
When you reboot an EC2 instance, nothing changes with the IP addresses, so your question as currently phrased is invalid.
Perhaps you are talking about stopping and starting an EBS boot instance which had an Elastic IP address associated with it?
If you have a non-VPC EC2 instance with an Elastic IP address associated with it, and you stop that instance, then yes, the Elastic IP address will no longer be associated to it when it is restarted.
You have a few directions you can go depending on your particular situation:
Here's an article I wrote on more differences between reboot and stop/start of EBS boot instances: