Your current log analysis application takes more than four hours to generate a report of the top 10 users of your web application.
You have been asked to implement a system that can report this information in real-time, ensure that the report is always up to date, and handle increases in the number of requests to your web application.
Choose the option that is cost-effective and can fulfill the requirements.
Click on the arrows to vote for the correct answer
A. B. C. D.Answer - C.
When you see Amazon Kinesis as an option, this becomes the ideal option to process data in real-time.
Amazon Kinesis makes it easy to collect, process, and analyze real-time, streaming data so you can get timely insights and react quickly to new information.
Amazon Kinesis offers key capabilities to process streaming data cost-effectively at any scale, along with the flexibility to choose the tools that best suit the requirements of your application.
With Amazon Kinesis, you can ingest real-time data such as application logs, website clickstreams, IoT telemetry data, and more into your databases, data lakes, and data warehouses, or build your own real-time applications using this data.
For more information on AWS Kinesis, please refer to the below link-
https://aws.amazon.com/kinesis/Option A is incorrect because logs in CloudWatch Logs are not in real-time.
Option B is incorrect because you have to pay for S3 buckets and EC2 instances cost, which is not a cost-effective solution.
And the logs may not be in real-time.
Option D is incorrect because it is not cost-efficient to store the logs in RDS MySQL.
The requirement is to generate real-time reports of the top 10 users of a web application and ensure that the report is always up to date, and handle increases in the number of requests to your web application. The solution should be cost-effective as well.
Option A: Publish data to CloudWatch Logs, and configure your application to Autoscale to handle the load on demand.
CloudWatch Logs is a managed service provided by AWS for log management. It allows you to collect, monitor, and store log files from AWS resources such as EC2 instances, Lambda functions, and VPC flow logs. By publishing log data to CloudWatch Logs, you can easily analyze log data in real-time using CloudWatch Logs Insights. However, CloudWatch Logs does not provide a built-in way to analyze log data for specific use cases like identifying the top 10 users of a web application. Therefore, it is not a suitable option for this requirement. Autoscaling can help to handle load on demand, but it does not directly address the requirement of generating real-time reports of the top 10 users of a web application.
Option B: Publish log data to an Amazon S3 bucket. Use AWS CloudFormation to create an Auto Scaling group to scale your post-processing application which is configured to pull down your log files stored an Amazon S3.
Amazon S3 is a highly scalable object storage service provided by AWS. It is suitable for storing large amounts of data, including log files. By publishing log data to an S3 bucket, you can easily analyze log data using other AWS services such as Amazon Athena, AWS Glue, or Amazon EMR. CloudFormation is an AWS service that allows you to create and manage AWS resources using templates. By using CloudFormation to create an Auto Scaling group, you can ensure that your post-processing application scales automatically based on the demand. The post-processing application can be configured to pull down log files stored in an S3 bucket and analyze the log data to generate real-time reports of the top 10 users of your web application. This solution is suitable for the requirement, and it is cost-effective as well since you only pay for the S3 storage and the resources used by the post-processing application.
Option C: Post your log data to an Amazon Kinesis data stream, and subscribe your log-processing application so that is configured to process your logging data.
Amazon Kinesis is a managed service provided by AWS for real-time data streaming. It allows you to collect, process, and analyze data streams such as log data, clickstreams, and social media feeds. By posting log data to an Amazon Kinesis data stream, you can process log data in real-time using Kinesis Data Analytics or other AWS services. The log-processing application can be subscribed to the Kinesis data stream, and it can process the log data to generate real-time reports of the top 10 users of your web application. This solution is suitable for the requirement of generating real-time reports, but it may not be cost-effective since you are charged based on the number of Kinesis data stream shards used and the amount of data ingested.
Option D: Create a multi-AZ Amazon RDS MySQL cluster, post the logging data to MySQL, and run a map reduce job to retrieve the required information on user counts.
Amazon RDS is a managed database service provided by AWS. It allows you to easily deploy and manage relational databases such as MySQL, PostgreSQL, and Oracle. By creating a multi-AZ Amazon RDS MySQL cluster, you can ensure high availability and durability for your database. However, posting log data to a relational database like MySQL may not be suitable for real-time log analysis since relational databases are optimized for transactional processing rather than analytical processing. Additionally, running a map reduce job to retrieve the required information on user counts may take