Which solution will meet these requirements with the LEAST operational overhead?
Deploy an Amazon EC2 instance to host an API that sends data to an Amazon Kinesis data stream. Create an Amazon Kinesis Data Firehose delivery stream that uses the Kinesis data stream as a data source. Use AWS Lambda functions to transform the data. Use the Kinesis Data Firehose delivery stream to send the data to Amazon S3.
Deploy an Amazon EC2 instance to host an API that sends data to AWS Glue. Stop source/destination checking on the EC2 instance. Use AWS Glue to transform the data and to send the data to Amazon S3.
Configure an Amazon API Gateway API to send data to an Amazon Kinesis data stream. Create an Amazon Kinesis Data Firehose delivery stream that uses the Kinesis data stream as a data source. Use AWS Lambda functions to transform the data. Use the Kinesis Data Firehose delivery stream to send the data to Amazon S3.
Configure an Amazon API Gateway API to send data to AWS Glue. Use AWS Lambda functions to transform the data. Use AWS Glue to send the data to Amazon S3.
Explanations:
While this option involves using Kinesis and Lambda for transformation, deploying an EC2 instance increases operational overhead, as it requires management of the instance.
This option uses AWS Glue but still requires an EC2 instance to host the API, which adds complexity and operational overhead, particularly around EC2 management.
This solution uses Amazon API Gateway for the API, Kinesis for real-time data streaming, and AWS Lambda for transformation, all of which are fully managed services, minimizing overhead.
This option requires AWS Glue for transformation and sending data, which may increase complexity without leveraging a fully managed streaming solution like Kinesis for real-time data.