What should a solutions architect recommend?
Use Amazon Kinesis Data Streams to capture the data from the websites Kinesis Data Firehose to persist the data on Amazon S3, and Amazon Athena to query the data.
Use Amazon Kinesis Data Streams to capture the data from the websites. Kinesis Data Analytics to query the data, and Kinesis Data Firehose to persist the data on Amazon S3.
Use Amazon Simple Queue Service (Amazon SQS) to capture the data from the websites, keep the fleet of EC2 instances, and change to a bigger instance type in the Auto Scaling group configuration.
Use Amazon Simple Notification Service (Amazon SNS) to receive data from the websites and proxy the messages to AWS Lambda functions that execute the queries and persist the data. Change Amazon RDS to Amazon Aurora Serverless to persist the data.
Explanations:
Kinesis Data Streams captures the data, but Athena is more suitable for querying data stored in S3. RDS is needed for SQL queries, not Athena.
Kinesis Data Streams captures the data, Kinesis Data Analytics processes the stream for real-time analytics, and Kinesis Data Firehose persists data to S3, which is decoupled from the EC2 instances.
Using SQS and larger EC2 instances doesn’t decouple the infrastructure. It still relies on EC2 instances and scaling, which doesn’t meet the decoupling requirement.
SNS and Lambda might add complexity without fully decoupling the infrastructure. RDS is still used for persistence, which doesn’t fully meet the decoupling goal.