We've got a site where the pages need to get updated every once in a while. The site has approximately 8 EC2 instances running at any moment, but occasionally it gets much larger. We use a load balancer and autoscaling to create more instances. The pages are just plain files on disk; there's no content management system. The web server is Jetty.
If I modify a page, how can I deploy it to all current and future instances?
Obviously, I can't use a management tool like Fabric because that won't update the AMIs from which future instances will be built. It would also be a mistake to create a new AMI and deploy it because, first, that's a cumbersome process, and second, it would kill off all current user sessions on existing instances.
I'm thinking that the instances need to pull the site's pages from somewhere, and check for updates every once in a while.
I thought of putting the pages on S3, but that's a non-starter because 1) S3 has no way of notifying instances when pages are changed, 2) so you have to poll S3 continuously, 3) which is expensive, and 4) you have to do it for every page individually.
What's the simplest way to do this? What's the best way, if best != simple?