Which solution will meet this requirement with the LEAST operational overhead?
Configure a CloudWatch Logs subscription to stream the logs to Amazon OpenSearch Service (Amazon Elasticsearch Service).
Create an AWS Lambda function. Use the log group to invoke the function to write the logs to Amazon OpenSearch Service (Amazon Elasticsearch Service).
Create an Amazon Kinesis Data Firehose delivery stream. Configure the log group as the delivery streams sources. Configure Amazon OpenSearch Service (Amazon Elasticsearch Service) as the delivery stream’s destination.
Install and configure Amazon Kinesis Agent on each application server to deliver the logs to Amazon Kinesis Data Streams. Configure Kinesis Data Streams to deliver the logs to Amazon OpenSearch Service (Amazon Elasticsearch Service).
Explanations:
Configuring a CloudWatch Logs subscription to stream logs directly to Amazon OpenSearch Service allows for near-real-time ingestion with minimal operational overhead. It eliminates the need for additional services or custom code, as the integration is managed within the AWS ecosystem.
Creating an AWS Lambda function to process logs adds operational overhead due to the need to manage the function, monitor its performance, and handle potential errors. Additionally, it introduces latency compared to a direct stream solution.
While using Amazon Kinesis Data Firehose can facilitate near-real-time streaming of logs, it introduces additional operational complexity. Configuring and managing Kinesis Data Firehose requires more setup and monitoring compared to a direct CloudWatch Logs subscription.
Installing and configuring the Amazon Kinesis Agent on each application server involves significant operational overhead, as it requires installation and maintenance on each server. This option also introduces more points of failure and is not as seamless as the direct streaming solution.