How should the company move the data to Amazon S3 to meet these requirements?
Use an Amazon CloudWatch metric stream to send the EC2 Auto Scaling status data to Amazon Kinesis Data Firehose. Store the data in Amazon S3.
Launch an Amazon EMR cluster to collect the EC2 Auto Scaling status data and send the data to Amazon Kinesis Data Firehose. Store the data in Amazon S3.
Create an Amazon EventBridge rule to invoke an AWS Lambda function on a schedule. Configure the Lambda function to send the EC2 Auto Scaling status data directly to Amazon S3.
Use a bootstrap script during the launch of an EC2 instance to install Amazon Kinesis Agent. Configure Kinesis Agent to collect the EC2 Auto Scaling status data and send the data to Amazon Kinesis Data Firehose. Store the data in Amazon S3.
Explanations:
Using Amazon CloudWatch metric streams allows for efficient real-time data streaming. It can send EC2 Auto Scaling status data to Amazon Kinesis Data Firehose, which can then be configured to store the data directly in Amazon S3. This solution is serverless, minimizes latency, and does not impact EC2 instance launch speeds.
Launching an Amazon EMR cluster is not a serverless approach and introduces complexity, cost, and potential delays in processing. It also does not provide near-real-time updates efficiently compared to the CloudWatch and Kinesis combination.
While using EventBridge and a Lambda function could theoretically gather data, it does not provide a direct and efficient stream of EC2 Auto Scaling events. Scheduling might introduce delays, and Lambda could miss events between executions, leading to incomplete data.
This option requires the installation of the Kinesis Agent on each EC2 instance, which is not serverless and could delay instance launches. Additionally, using a bootstrap script introduces operational overhead and complexity that is not necessary for this use case.