I'm working on an application which will run on multiple Amazon EC2 instances. I wish to incorporate auto update feature for my application. The updater should update all the Ec2 instances. Also, there is a central server which governs the creation/termination of EC2 instances as per load. The central server creates a EC2 new instance from a pre-configured custom AMI (custom image which has our application pre-installed).
Also, once there is an update, the pre-configured AMI needs to be updated too else it would create new instances which are not updated.
Should the central server notify all the ec2 instances for an update and then the instances update themselves?Or should the application on Ec2 instance have a check for periodically updating themselves? Also how should the Amazon custom AMI be updated? Should a new instance be created from it, updated and then a new AMI be re-created and then new images be created from this AMI? What is the best way to incorporate an auto update feature for this architecture?
The central server is written in Java and the application running on the cloud is written in C++. Is there a good framework available that can be used for this architecture?
Please let me know on what I could be missing in the design and how it would help me to have a nice, extensible and fail safe auto update architecture.