We've deployed our AEM environment into AWS and things are working well but we're looking to implement Auto Scaling across our Author, Publisher & Dispatcher instances. We've followed the standard process of creating an AMI of each instance, used those AMI's to create Launch Configurations then created our Auto Scaling Groups. The issue we're having is that when a new instance is provisioned via the Auto Scaling Group, the underlying AEM config file contains the hardcoded Private IP of the original instance in which the AMI was created from. This IP of course conflicts with the newly generated Private IP given to us by AWS when the Auto Scaling instance has spun-up.
Here is an example:
AMI is created from the initial Author instance which contains 192.168.11.80 as the hardcoded static IP in the local AEM config file.
Launch Configuration is created using the newly created AMI.
Auto Scaling Group is created using the newly created Launch Configuration.
Auto Scaling Group automatically provisions a new Author instance.
Newly created Author instance has 192.168.11.80 as the hardcoded static IP in the local AEM config file which conflicts with the newly generated Private IP given to us by AWS when the Auto Scaling instance has spun-up.
Don’t work with fixed ip’s in auto scaling groups. Use something like Consul. But there is much more to it than that. There is the issue of configuring your replication agents whenever a new Instance is added and when an instance is removed. You also need a way to copy your repository from live instances to new instances.
Not something to take lightly.
There were some good presentations about this in the last two Adobe Immerse events.