You can create an Amazon Machine Image (AMI) to recover from an unexpected event or create a new Controller from the same image.
The AMI image should be created for the Controller, including required optimizations, and an auto-scaling group should be created based on the AMI. You can configure the Elastic Load Balancer (ELB) to send traffic to instances in the auto-scaling group, which will consist of one EC2 instance at a time.
Create an AMI and Auto Scaling Group
To ensure that you can recover from any interruptions, you need to create an AMI that includes the Controller. Then, you need to create an auto scaling group based on the AMI.
Creating an AMI and auto scaling group involves the following steps:
Step 1: Shut Down the Enterprise Console
You must stop the Enterprise Console before creating an AMI:
This ensures that all jobs and services are stopped in order to create a clean image.
Step 2: Create an AMI
You can create an AMI to use to deploy a new Controller without having to go through the installation steps again.
A new AMI should be created whenever the Controller version is upgraded, or configuration changes are made. This ensures that the changes are propagated to the new EC2 instance, in the event that you need to move to a different availability zone, for example. At the same time, previous AMI instances should be retained as well, in case a rollback is required.
- Stop the Controller Appserver once optimizations have been applied to it.
- Click Create Image to create an AMI for the Controller.

Step 3: Create the Launch Configuration
Once the AMI is created, you can create an auto scaling group that uses it. But first, you need to create the launch configuration:
- Select the appropriate instance type for the app server of your AMI.

- Specify a name for the launch configuration.

- Specify storage configuration.

- Associate it with the existing security group for Splunk AppDynamics application servers.

Step 4: Create an Auto Scaling Group
You should create an auto scaling group based on this AMI to ensure that one node is running at any given time.
To create an auto scaling group:
Specify a name for the auto scaling group, enable traffic from the load balancer, and map the target groups created earlier.
Start with zero instances, as you will need to add your existing instance to the group later.
Keep the group at its initial size of zero, as you do not want to add more than one Controller at any point in time.

Accept the default values for the rest of the settings, and create the auto scaling group.
Once the auto scaling group is successfully created, edit the properties to specify the max allowable instances as 1 (up from 0).
Go back to the list of EC2 instances, and add the EC2 instance for the Controller Appserver to the new auto scaling group.

Updating the AMI
The AMI should be updated whenever changes are made to the controller EC2 instance. For example:
- When a new license file is dropped on the Controller.
- When O/S configuration changes are made.
- When Controller configuration changes are made, either via the Enterprise Console or directly to domain.xml or other configuration files.