An organization is setting up a web application with the JEE stack. The application uses the
JBoss app server and MySQL DB. The application has a logging module which logs all the
activities whenever a business function of the JEE application is called. The logging activity takes
some time due to the large size of the log file. If the application wants to setup a scalable
infrastructure which of the below mentioned options will help achieve this setup?
A.
Host the log files on EBS with PIOPS which will have higher I/O.
B.
Host logging and the app server on separate servers such that they are both in the same zone.
C.
Host logging and the app server on the same instance so that the network latency will be shorter.
D.
Create a separate module for logging and using SQS compartmentalize the module such that all
calls to logging are asynchronous.
Explanation:
The organization can always launch multiple EC2 instances in the same region across multiple
AZs for HA and DR. The AWS architecture practice recommends compartmentalizing the
functionality such that they can both run in parallel without affecting the performance of the main
application. In this scenario logging takes a longer time due to the large size of the log file. Thus,
it is recommended that the organization should separate them out and make separate modules
and make asynchronous calls among them. This way the application can scale as per the
requirement and the performance will not bear the impact of logging.
http://www.awsarchitectureblog.com/2014/03/aws-and-compartmentalization.html
D