In terms of general AWS configuration of resources such as Jasper, we like to ensure that there is a capable server for each Availablity zone within a region. To this end, it would be important to:
- Share the configuration (repositry) across multiple instances, and
- Share session information between instances.
I have looked for documentation on this in the community website an through Google and have found little information on how to do this. My guess is that I need to share an ELB between instances, however this seems likey to fail if a wrong zone goes down.
We have installed from the AWS AMI https://aws.amazon.com/marketplace/pp/B00G9PRRDS.
Good question !! There is some information on Clustering in the JasperServer Ultimate Guide (HTML) or (Download PDF) check the whole Chapter 10 that tlks about Clustering and HA is not AWS specific but is the same for AWS.
Essentially JRS relies on the clustering of the Application Server, in this case Tomcat and a load balancer on top (in this case an ELB) your load balancer has to be confugured for sticky sessiones. Read more about session management and replication in JRS in the above guide.
Then each JRS instace is pointed to the same repository DB so they can talk to each other and present the end user the same repository content.
The repository DB should have it's own fault tolerance sicne it's shared by all the JRS instances.
In AWS since the AMI installs JRS for you and install postgres locally as a repository DB you will need to:
1) replicate/clone a clean repository DB into another instace (RDS maybe??) JRS supports Postgres, MSSQL Server and Oracle as a repo DB
2) configure all your EC2 instaces to point to the new repo DB see this article http://community.jaspersoft.com/wiki/procedure-reconfigure-jasperreports...
3) configure your ELB and tomcat instaces to work in the cluster here is an article I found which looks pretty good http://www.tanzirmusabbir.com/2013/06/elastic-load-balancing-elb-with-ja...
3) Configure Jasperserver so it knows is in a cluster and behaves aproperly see App Server Configuration in the guide above. And don't forget to tell the JRS Schedueler that is in a cluster
If all is good, you should be good to go :)